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