www.digitalmars.com         C & C++   DMDScript  

D - Falling in love with D, but...

reply Peter Verswyvelen <bf3 telenet-WITHOUT-THIS-ANTI-SPAM.be> writes:
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
Apr 10 2007
parent "Ralph Eastwood" <tcmreastwood ntlworld.com> writes:
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
Jul 27 2007