On 5/1/2015 2:28 AM, Vladimir Panteleev wrote:
I was in the "break my code" camp for a long time, but this has gradually
changed as the amount of D code I've written grew. Let me tell you, it's totally
not fun when you need to quickly fix a D program you wrote 3 years ago because
something is on fire and it needs fixing now, and discover you have to make a
bunch of changes just to get it to compile again. The alternative is using an
older compiler, and DVM helps with that - but this doesn't work if the fix is in
a library which is not compatible with older compiler versions.

I've had the mispleasure several times of reaching back to update some older D code of mine, that works fine, and finding not only will it not compile, I have to re-architect parts of it.

The situation was so bad I wound up creating:

    https://github.com/DigitalMars/undeaD

and if *I* find this annoying, irritating, disheartening, etc., I can only imagine how others feel about it.

Sometimes the older code is complex, underdocumented, and I don't remember how it worked or how it needs to be re-architected. But it does work, it just doesn't compile anymore.

Imagine you find some cool D library, download it, and find it doesn't compile. How many of you are going to fix it? Or are you just going to chuck it to /dev/null?

How many users have we lost because of this?

This really blows. And things like that isnan => isNaN really has GOT TO STOP. Just today I found it broke some older piece of code I had that's perfectly correct.

We need to be working on things that MATTER. What happens with every Reddit post about D? No matter the topic, it always becomes about D not being usable without the GC.

A big piece of the fix for that is going through Phobos and fixing code that returns gc allocated arrays with algorithms that return ranges.

Why am I the only one working on that? I don't remember anyone having a problem with isnan.

I'm willing to break existing code for a large benefit. Not a small one. And certainly not when the benefit is zero, like the isnan renaming. And I'm willing to break code that relied on bugs in the compiler.

Reply via email to