Friday 13 August 2010

Wanted: prettier D.dev Logo

Hi.

I’m sorry that D.dev is a bit late, but I have been *really* busy with work, despite doing my best to get it closer to being complete whenever I have some free time. Just last night, I managed to make the code completion algorithm able to recursively fetch inherited or aliased members from the symbols tree, which, for me, was quite a nice breakthrough, if you ask me. :) Now, if only my hand-made minimalistic code parser was running decently… but it will soon, trust me.

Now, more to the point. As you probably already noticed in the video and screenshots, this is the stand-in logo I’ve been using for D.dev.

Ddev

Well, it’s very much inspired by the old simple logos for the D language that I have seen a few years ago during D1 development, and thought it would be nice. What I’m wondering is, maybe I could use something a bit more trendy and modern. Something more in line with the logos most IDEs today have. If it could have some degree of consistency with the Tango icon library, even better.

I’m accepting suggestions (preferably in the form of 256x256 png files ;). The best proposal would replace this logo and the author would be given full credit, of course. Oh, and those involved might get to test D.dev early ;). If you’re interested, please send your proposals here.

Any questions or suggestions regarding the actual program, features, and status are welcome in comments section. Or by email too, why not.

Saturday 31 July 2010

D.dev progress: July 2010

Here we are, it’s almost time to make the beta version available to all, but not quite yet. There are too many glitches and bugs and essential features missing. I did however, manage to make the autocompletion work, and it’s about 50% done. I also found out how to make D.dev feature a dual user interface, check out how in the last few seconds of the preview video ;)

D.dev preview video from D.Dev IDE on Vimeo.

Play full-screen in order to have a better view of the text. As always, feedback in the comments section will be very appreciated. :)

Tuesday 13 July 2010

Controversy regarding memory management in D

D 2 is subject to constant redesign and improvement. Or is it? It appears that D is becoming, like C++, a language designed by comitee. With a big difference: at least when C++ is changed, both the relevance of the changes and the impact on the language features are carefully considered.

So, what is happening to D? Well, somebody thought to themselves “This delete keyword is a source of a multitude of errors” and from there decided that it should be banned! Not without a replacement of course. There is a proposal for new functions that would effectively replace the delete keyword. One of them is clear(object), which would destroy the object, copy onto it the initial value Object.init, and construct it again. It sounds more like a reset(object) to me… Another one is a function that does nothing other than destroy the object, which is what delete already does. It seems that the idea is to encourage people to always use the garbage collector and disencourage people from managing the memory manually…

There already is a language with such a logic, it’s called Java. I refuse to allow the prejudices of a minority to turn the powerful and flexible systems language that is D into a mere Java copycat. Naturally, we must find a middleground, and so far, the best counter-proposal is to keep the delete keyword, but forbid it in the SafeD subset. It sounds like the most logical alternative to me.

What do you think? Leave your vote in the poll.

Sunday 11 July 2010

Roadmap, features before 1.0

Here is a summarized roadmap for D.dev. During early beta, all releases will be under Windows only.

  1. Late July/Early August 2010 - First Beta release of D.dev 0.1.
    • Editor, featuring: syntax-highlighting; auto-completion with a few extensions specific for D; standard text search; and bookmarks (with comments).
    • Project management.
    • Compiler support for DMD 2.0. Depending on the author, possibility of bundling it together with D.dev binaries.
    • Bug fix releases to follow up when necessary.
  2. Autumn 2010 – Beta update
    • Begin porting for Linux (internal testing will be done on Ubuntu).
    • Support for GDB 7.1, to be bundled with D.dev from that point forth.
    • Bug fix releases to follow up when necessary.
  3. 2011 – 1.0
    • Begin tests for Git GUI interface and its integration with project management.

Tuesday 29 June 2010

What is D.dev?

D.dev is a simple IDE for the D programming language (if you’re not familiar, try Andrei Alexandrescu’s book), designed especially with ease of use as the main focus, especially for beginners. Efficient use echoes the design philosophy of the language itself. This new IDE will aim to offer the D programming community a lightweight alternative to the existing D IDEs.

D.dev is being designed to function as a frontend for the Digital Mars D compiler, although support for other compilers is a possibility in the future. More specifically, DMD 2.0 will be supported.

D.dev is being written in C++, using the wxWidgets GUI toolkit. The reason I chose C++ (besides familiarity, of course), is that C++ is the language which is best supported in wxWidgets (there are ports for many languages, and even a port for D exists already, although I don’t think it will be maintained for long). The reason I chose to make the user interface wxWidgets is portability: although initial testing will be performed on Windows only, D.dev will later be ported to Linux/GTK+. Hopefully in time for 1.0. :)

If you would like to have an idea of what D.dev will look like, here is a screenshot, which at this point, should be regarded as a mock-up of the user interface:

D.dev screenshot

You will immediately notice that D.dev adopts a Ribbon-like interface (although, allow me to stress this, it is *NOT* the Microsoft Ribbon interface). Needless to say, the interface is still being worked on and panels will likely be removed/reformulated before I even consider a beta release. If you hate the Ribbon, look elsewhere. If you think that there are other things that could be done cleverly with the Ribbon, I welcome your suggestions. The comments section is all yours! :)