I've been following D for a while, and I've lost some of my interest too for several reasons.

The continuous redesign. When I started to implement s/g, I checked what opportunities I have, what the language specification tells, and what others did to achieve a similar goal. Then I implemented my own version, but by the time I was almost finished, I saw some major features are being altered. (scope - allocation, Ranges, operator overloading, struct constructors, array referencing, property, etc.). I know D is a language being developed, but when core functionality is being altered all the time, it's really hard to design/implement new libraries. At least D users (especially for newbies) should be informed of the state of the progress, not only through mailing list since the have lot's of proposals those are dropped immediately. ex: The language reference should be up to date as much as possible and *HILIGHT* the features being redesigned and what are the proposals (in 1-2 words). I'm sure Walter, Andrei, and the other (key) developers have a todo-list (and some time-tables) for the proposed modifications. (If no, D is Doomed for sure, since after a while no one knows what's finished and what is still to be implemented, and what was the planned feature)

For example, some time back, there was a proposal about altering the property. There`s also been a voting, but now there's no sign of this anywhere (except for the forum). I liked the property idea a lot, but I cannot use it, i cannot even design my code to later update it using properties as there's no sign of its currnet state. I know the current property implementation is based on omitting the () signs, but I'm not using it, as it was meant to be changed, but when and how ??? The same stands for the scoped variables. I've started to use it to allocate class instances of (small)matrices on the stack, but than i've read, it will go. So I have to redesign things to use structs instead of classes to have them on the stack, but using struct requires other type of initialization mechanism, as they have no default constructor to overload. And now the construction of the struct is being altered as well. And so on...

I don't require a language with all the features completed, but altering the core features makes it impossible to create new/stable libraries. I can go quite well without the opPow, and other operator overloading stuffs. I will update the library if they are present in the language and call the my appropriate function ( 1+2 additional lines to the source) but how to design anything if basic semantics are changing ?!

Lack of IDE (minor issue). It's not a big problem, actually I can go quite well without an IDE, or without a debugger either (good old printf:) in most cases. (I've seen there were made great progresses in this as well)

Missing stable, compiler with enhanced optimization features (minor issue). I've tried to reimplement some of my older algorithm from c++, but finally I haven't even tried most of them, as I didn't see any optimization in the asm codes for my simplest range. (The popFront, front, empty function calls were not inlined at all - though i didn't experienced with it too much as I could not find an appropriate IDE/debugger to check the asm code and insert breakpoints) I've tried to use gdc, but it only superts D1. The patch/branch to use D2 i have to be built manually. I don't want to compile, patch, etc. a C/C++ project from some unstable source and work for hours to have a
working D compiler. I want to do D.

So for these reason I'm in a passive state and i'm waiting where D goes to. According to my oppinion there are many other programmars following D in a passive way like I do. I like many features of D (and dislike some - but it's ok, cannot have a language that fits all the desires for everybody ), but while it's in a so mutable state, it`s hard to use it. I have to wait while most features are made immutable (and not const, that can be altered through some nasty const_cast proposals :) ).

Regards,
        Gzp

Reply via email to