April 10, 2007
The more I read about D, the more I fall in love with it. It contains almost everything I ever wanted to
see in a programming language, and I've been coding for 25 years now: from 6502 assembler to C/C+
+ (Zortech! ;-), C#, a bit of Java, Scheme and Prolog, SQL, and "Logix" - an inhouse visual mostly
functional language which my team created for videogame designers/artists. Logix was used to create
some special effects and mini-games on Playstation 3. It was amazing to see that artists with no
programming skills could create incredible stuff given the right visuals / notation...

Anyway, D looks really great, but I'm spoiled with todays popular RAD tools such as integrated debugging, edit-and-continue, code completion, parameter tooltips, refactoring, fast navigation, call graphs, builtin version control, etc... as found in e.g. Visual Studio 2005 + Resharper 2.5 or Eclipse/ IntelliJ IDEA. It's also handy to have a huge standard framework such as DOTNET or J2SE/EE, or even STL/boost. It's not really necessary: my first videogames did not use any code from the OS, it was 100% pure self written assembly code directly talking to the hardware, but that was a century ago ;-)

So as soon as I want to get started with D I find myself stuck (also because of my RSI... I just refuse to type a symbol all over again ;-). It is as if I got this brand new car engine that looks to outperform all others, but I can't find the correct tires, suspension, etc. Frustrating.

One thing I don't like about current IDEs: they still work on the text level, which is horrible for
refactoring in a team (think extreme programming). For example renaming a symbol should be one
change under version control, but it currently means that all source files refering to the symbol (by
name!) must be modified, potentially giving a lot of merge conflicts and co-workers shouting not to
rename a symbol anymore, just leave the bad names... The advantage of a pure drag-drop-connect-
the-dots visual programming language like Logix is that it can work very close to the AST, directly
linking to statements/functions by "pointer/identifier", so a symbolname never matters for the
computer, only for a human, and a rename is just one modification to the symbol and not to its
references. Of course we programmers don't want to work with visual graphs (screen clutter!), we want
to see code, but I think we might also benefit from writing code closer to the AST; after all, code
completion and all those handy code snippets are a bit like that: you insert a foreach loop using a
single keystroke, and fill in the symbols, but its still just text. Why not insert a foreach statetement in a
high-level AST, and regard the text as a representation/tagged navigation of the (high level) AST,
instead of translating the text into the AST... I heared some old LISP editors worked like that, but I never
saw one.

So maybe it would be a good idea to develop and IDE just as (r)evolutionary as D is? Or does it already exist, meaning I just wasted half an hour typing this email ;-)

Keep up the amazing work,
Peter








July 27, 2007
On Tue, 10 Apr 2007 23:23:17 +0100, Peter Verswyvelen <bf3@telenet-WITHOUT-THIS-ANTI-SPAM.be> wrote:

> The more I read about D, the more I fall in love with it. It contains almost everything I ever wanted to
> see in a programming language, and I've been coding for 25 years now: from 6502 assembler to C/C+
> + (Zortech! ;-), C#, a bit of Java, Scheme and Prolog, SQL, and "Logix" - an inhouse visual mostly
> functional language which my team created for videogame designers/artists. Logix was used to create
> some special effects and mini-games on Playstation 3. It was amazing to see that artists with no
> programming skills could create incredible stuff given the right visuals / notation...
>
> Anyway, D looks really great, but I'm spoiled with todays popular RAD tools such as integrated
> debugging, edit-and-continue, code completion, parameter tooltips, refactoring, fast navigation, call
> graphs, builtin version control, etc... as found in e.g. Visual Studio 2005 + Resharper 2.5 or Eclipse/
> IntelliJ IDEA. It's also handy to have a huge standard framework such as DOTNET or J2SE/EE, or even
> STL/boost. It's not really necessary: my first videogames did not use any code from the OS, it was 100%
> pure self written assembly code directly talking to the hardware, but that was a century ago ;-)
>
> So as soon as I want to get started with D I find myself stuck (also because of my RSI... I just refuse to
> type a symbol all over again ;-). It is as if I got this brand new car engine that looks to outperform all
> others, but I can't find the correct tires, suspension, etc. Frustrating.
>
> One thing I don't like about current IDEs: they still work on the text level, which is horrible for
> refactoring in a team (think extreme programming). For example renaming a symbol should be one
> change under version control, but it currently means that all source files refering to the symbol (by
> name!) must be modified, potentially giving a lot of merge conflicts and co-workers shouting not to
> rename a symbol anymore, just leave the bad names... The advantage of a pure drag-drop-connect-
> the-dots visual programming language like Logix is that it can work very close to the AST, directly
> linking to statements/functions by "pointer/identifier", so a symbolname never matters for the
> computer, only for a human, and a rename is just one modification to the symbol and not to its
> references. Of course we programmers don't want to work with visual graphs (screen clutter!), we want
> to see code, but I think we might also benefit from writing code closer to the AST; after all, code
> completion and all those handy code snippets are a bit like that: you insert a foreach loop using a
> single keystroke, and fill in the symbols, but its still just text. Why not insert a foreach statetement in a
> high-level AST, and regard the text as a representation/tagged navigation of the (high level) AST,
> instead of translating the text into the AST... I heared some old LISP editors worked like that, but I never
> saw one.
>
> So maybe it would be a good idea to develop and IDE just as (r)evolutionary as D is? Or does it already
> exist, meaning I just wasted half an hour typing this email ;-)
>
> Keep up the amazing work,
> Peter
>

I use CodeBlocks at the moment, (grab a nightly build at www.codeblocks.org), that seems pretty good, though the code completion doesn't span throughout the source code yet (ie. works partially).
I think there is a subversion plugin for codeblocks, but I haven't used it yet.

Cheers.

Ralph Eastwood