On Tuesday, 3 November 2015 at 08:08:28 UTC, yawniek wrote:
i have seen many PR's and also Forum entries that deal with the problem of newer features of the compiler not being able and then patching or working around that to support older compiler versions.

since it is really easy to keep up with compiler versions and even switch (and not many features are being removed from dmd) what are good reasons to keep backward compatiblity?

the latest example i saw was replacing groupBy by a loop to keep compatiblity with 2.066.
while not a big thing, it adds up.

Why do we keep backward compatibility ? The answer is dead simple: people need it.

The assumption that it's easy to upgrade is totally false. Upgrading to a newer version is costly. You need to test it, maybe repackage / redeploy new applications / library and monitor that every still runs smoothly. This has a cost, and the bigger you are, the higher the cost.


since still a lot of useful features do get added into phobos at a fairly fast pace, would it not be better to to keep targeting just the two most recent versions and moving
the ecosystem a little bit further.

Unless the new release has a definitive advantage for you, like a much-needed feature, that cost isn't justified, and you're better off spending time / money on things that matter to you (like new features).


For people entering the world of D it would be much more encouraging to read a lot of concise code using all the nice features we have instead of just lipstick'd C.

If 2.066 is just lipstick'd C to you, you had already spend too much time having fun with D and not enough using C ;)

One thing important for people entering the D world (or any world) is as little friction as possible. And if things don't work out of the box it's a lot of friction. Backward compatibility help with that as well.

Reply via email to