Debuggers, GUIs and IDEs

January 18th, 2006 | by Aldacron |

Programmers are a picky lot. I often read comments from people who aren’t interested in trying D because of one ‘deal breaker’ or another. I would guess that the top 3 are: no debugger, no GUI library, and no IDE. I fail to see how any of these can be a deal breaker for trying a language. Sure, for production work with a large team it could get in the way. But I wouldn’t bank a project in that environment on a pre-release language anyway. Regardless, the ‘no debugger’ complaint is not entirely true. On Windows, there is some support for debugging D apps with the Visual Studio debugger and with Windbg. You miss the ability to view some D-specific features however. The Digital Mars development system CD ships with a version of Windbg that has better support for D. You can also use gdb on Linux.

On the GUI front, several community projects have sprung up over the last few years. Most of them stalled at one point or another. Currently, there are a handful of active projects. Two of note are wxD and DWT.

wxD is a set of bindings to the wxWidgets library. One interesting aspect of wxD is that D is not compatible with C++ at the binary level. You can link C libraries with a D app out of the box, but not C++ libraries. It takes a bit of effort to create D bindings for a C++ lib.

DWT is a port of (not a binding to) the Java library SWT from the Eclipse project. DWT was one of those GUI projects that stalled. Shawn Liu took it over last year and has made leaps and bounds with it since.

If you are looking to do development with D and need a GUI library, wxD and DWT are your best bets right now. DWT has the advantage of being pure D, meaning all allocations happen in the GC space. Depending on your project, this may be a big factor in deciding which to use.

As far as IDEs go, the pickings are slim. Like the GUI projects, several community projects have sprung up and either disappeared or just died. Aside from stand-alone IDEs, I have also seen plugins for Eclipse and Code::Blocks, and on the newsgroup recently someone announced one for Visual Studio 2005. I can’t really recommend any of these as I’ve never tried them, but one stand-alone IDE generating a lot of buzz lately is Poseidon. Developed by Shawn Liu using DWT, it serves as a testbed and demo of DWT’s progress. From what I gather, several newsgroup regulars have begun using it. Me, I’m still using Crimson Editor in conjunction with Build and the command line. Until D gets an IDE with all of the whiz bang features of Eclipse, I don’t really have any use for one.

4 Responses to “Debuggers, GUIs and IDEs”

  1. By Anonymous on Jan 19, 2006

    I think the D forms library - DFL (DFL page) is also worth mentioning. It’s maintained, progressing and doesn’t blow your code up by 10 megs. It has disadvantages, of course, too: The documentation doesn’t help a lot and it’s Windows only. But then again there’s still time…

  2. By Anonymous on Jan 19, 2006

    I use posiedon mainly because the editor and the compiler are on the same “container”, and when you click on the error it takes you there!

    That’s a good enough reason to use it. I hate having to switch back and forth between the editor window (or multiple editor windows) and the command line! Also I kinda hate the command line.

  3. By Anonymous on Jan 19, 2006

    “no debugger, no GUI library, and no IDE. I fail to see how any of these can be a deal breaker for trying a language.”
    In fairness not having a debugger or a decent gui library will consume alot of coder time, although an IDE is a bit of a nicety I must admit.

  4. By Anonymous on Jan 20, 2006

    as a quick editor, DCode works great.

Post a Comment