Falling in love with D, but...

Peter Verswyvelen bf3 at telenet-WITHOUT-THIS-ANTI-SPAM.be
Tue Apr 10 15:26:40 PDT 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



More information about the Digitalmars-d mailing list