dmd support for IDEs and the D tool chain

Justin Johansson no at spam.com
Fri Oct 16 12:15:17 PDT 2009


Jacob Carlborg Wrote:

> 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

Excellent.  This is beginning to look like a Manifesto!

"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."

You are right.  That (the json) is just a bit of lipstick.

Justin Johansson





More information about the Digitalmars-d mailing list