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