On 19 January 2012 22:52, deadalnix <deadalnix@gmail.com> wrote:
You write some code and they face an error. As you are new to the language, unless you are crazy, you'll asume that the mistake comes from you and not from the compiler (this is an usual experience in other languages : I almost never encounter compiler bugs).

So you begin to dig more and more in every documentation you can find and try several alternatives. You also search on the web for article about a similar problem and face a desert. After 1, 2 or 3 hours you decide to post on this newgroup. At this point, your program as made no significant progress.

After several hours again (probaly one or two days later in fact) you discover in the newgroups that you faced a compiler/phobos bug and that you have to use a dirty hack or another way to do your stuff. At this point, you program has made no progress, and worse, you know you have to recode a part of it.

Repeat the process 2 or 3 times. Give up and go back to java, C#, python or whatever.

We need a more reliable technology for the compiler and the standard lib. I would say that even if it require to break some existing code (like to solve the toString issue and make it const compilant). This have to be annonced in advance, but shouldn't stop us. The code base will only grow (and if it stop to grow, we can consider the language as actually dead). So the earlier we fix thoses, the better.

As a new comer, I really felt this. I intended to write a program in 1 evening, it was about 100 lines. It took me over a week, thanks to the reasons you listed and more.
I don't know why I didn't give up (probably because of how much I hate C++), but the experience for a new comer is not good.

With regard to breaking changes, I know people are radically against it, but I wonder, how many major/commercial programs are there written in D? How many people are financially invested?
How many are small or hobby programs by contrast? and... as an early adapter to D, do you accept that you might have to make some minor modifications to your existing program due to a spec change?
If I had an active project, and I had more experience with D (such that I wasn't a frustrated newcomer), I would not mind mending my code due to breaking changes one little bit where it was clear that the fix was for good reason.

I personally think getting the experience right, for new comers, and in general, far outweighs asking some experienced people with mature projects to make some small changes occasionally. I am quite sad that a lot of the broken things in there now are un-fixable.