On Wednesday, 28 November 2012 at 13:31:36 UTC, Jacob Carlborg wrote:
On 2012-11-28 13:46, Andrei Alexandrescu wrote:

Yep. Rails 4 breaks Rails 3 code. Not Rails 3.061 breaks Rails 3.060
code :o).

I've talked about that before. D doesn't have a versioning scheme that makes any sense. It's just a number that gets incremented without any meaning. Except that a greater number indicates a later version. Also changes to the language, compiler, runtime and standard library always happen in the same release.

When people refer to D1, D2, D3, and eventually D4, etc, what they should be referring to is a major version upgrade that will purposefully contain breaking changes, and will inevitably introduce a whole new set of bugs.

Usually increments to a minor version mean increasing stability, not decreasing stability or unknown stability!

Major version increments means that breaking changes may be introduced on purpose for a good reason, and it may mean new bugs will be introduced as well.

The major/minor versioning system has been in use for ages. Many people rely on it, including myself. I use different packages, that I purposely keep at a certain major revision number, and I always happily update to the next minor version, because it introduces bug fixes, not breaking changes. I only migrate to the next major revision only after it has matured over a few minor increments.

Again, sometimes I jump on the next breaking major revision, because it's for non-critical work, or for a new feature that I really need today. The point is that I can identify what is breaking and what is not just by looking at the version number, and I can pick and choose which version I think fits the stability model for my situation.

In any case, I did suggest re-thinking how a language can be made to change in significant ways over time. The major.minor version concept may be too simplistic for this, but holy crap, it's at least a good start since we don't even have that!

Something has to change, and it has to change quickly.

--rt

Reply via email to