Stick a fork in it

Georg Wrede georg at nospam.org
Thu May 10 03:13:39 PDT 2007


Walter Bright wrote:
> I'm currently working on implementing const/invariant. It's becoming 
> clear that this is a pervasive change, and will cause binary 
> incompatibility with existing code. 

Life on the bleeding edge. That's why we're here, right?

> I'm trying to minimize any source incompatibilities.

Considering the possibly several versions with problems, I don't see 
minimizing source incompatibilities as a priority. Rather, I'd see even 
thinking about them as hampering development. Just do what it takes.

> The first few iterations of const support probably will have lots of 
> problems before it gets usable.

> This means that dmd will have to fork into a 1.x maintenance version and 
> a 2.x beta.

Actually, since we bump the major number here, this would be an 
excellent time to review even other things that we've skipped so far 
because of fear of source incompatibilities.

The next good opportunity for breaking source will be D3.0, which 
probably is a couple of years away. -- And it damn well should, because 
only then can we have a thriving garden of stable and mature libraries, 
and serious apps built on them.

(Why are beaches void of plants? Surely it's not for a lack of moisture, 
sunlight or nutrients. It's because the sea keeps moving the sand before 
any seeds sprout.)


The pride, or the yardstick that libraries are measured with, should be 
how well they utilise the stable fork. Only that gives the stability, 
robustness, predictability, and long-term credibility that are needed 
before any real company risks choosing D for their pivot applications.

We also have to admit that library writers and app builders have 
diametrically opposite views on ease of porting between major language 
versions: library writers prefer language changes that are easy to fix 
(as with automatic source transforms). But app builders really don't see 
that as a priority, because new upgrades of the app are usually written 
with the original language version. It would be un-economical to redo 
your large app just because you want to upgrade to D n+1. (Of course, 
the same companies will use the newest language (stable) version for 
their new apps.)



More information about the Digitalmars-d-announce mailing list