dmd support for IDEs and the D tool chain

Jacob Carlborg doob at me.com
Fri Oct 16 03:06:59 PDT 2009


Here is my thoughts and what I think is needed to build a really good 
IDE and maybe get some attention from the enterprise. It's really not 
enough for the compiler to output some json for an IDE to use, the whole 
tool chain needs to be revised.

Compiler:
  * Written in D
  * Supports all major platform
  * 32 and 64bit support
  * Doesn't have annoying bugs like forward reference errors and problem
    with the linker
  * Built with and IDE in mind
  * Can be built as a (dynamic)library
  * Can build dynamic libraries
  * Supports incremental builds
  * Has clearly separate components, especially the front- and back-end.
  * Has a license that allows it to be built into an IDE and/or shipped
    with an IDE
  * Basically something like LLVM + Clang

Compiler or separate tool:
  * Automatically tracks all dependencies and builds the
    application/library (like DSSS)

GUI library:
  * Written in D
  * Supports all major platforms (mac, linux, win)
  * Uses native controls (as much as possible) to draw its controls
  * Supports (de)serializing controls (Glade, nib)

IDE:
  * Written in D
  * Be able to show syntax and semantic errors as you type
  * Autocompletion
  * Refactoring
  * Building
  * Supports incremental builds
  * Basically something like Eclipse JDT

GUI builder:
  * Supports (de)serializing controls (Glade, nib)
  * Basically something like Interface Builder, Glade


All of the above would be the most optimal. For example, everything 
don't have to be built in D but for building an IDE in D I think that it 
would be easier.

What we have now and what I think is the closest match:

Compiler: LDC
  * Missing most of the mentioned things
  * Needs better platform support
  * At least the back-end is built like this

We have DSSS and xfbuilder (or what it's called)

GUI library: DWT
  * There are some bugs in the mac version
  * Doesn't support (de)serializing controls
  * Not built in a D-way
  * Maybe too heavy

IDE: Descent
  * Missing some features like refactoring
  * Only supports building using an external tool
  * Needs to improve the syntax and semantic errors
  * Needs to improve the performance if possible

GUI builder: Interface Builder, Entice Designer, Glade, whatever Qt uses
  * To my knowledge none of the above supports a GUI library like the
    one mentioned


Any comments, thoughts?

/Jacob Carlborg




More information about the Digitalmars-d mailing list