Final by default?

H. S. Teoh hsteoh at quickfur.ath.cx
Wed Mar 12 21:46:45 PDT 2014


On Thu, Mar 13, 2014 at 03:17:39AM +0000, Vladimir Panteleev wrote:
> On Thursday, 13 March 2014 at 03:15:25 UTC, Andrei Alexandrescu
> wrote:
> >I believe so, and I have many examples. Most people who don't hang
> >out in the forum just want to get work done without minding every
> >single language advocacy subtlety, and breakages prevent them from
> >getting work done.
> 
> I see. That's quite insightful, thanks.

Just to add another data point, FWIW: recently due to being busy with
other matters I haven't been able to keep up with this forum, or do very
much with D, but I do still write D code every now and then, and I do
have some existing D code that I use regularly. Not long ago, a subtle
(or not-so-subtle!) change in File.ByLine caused my code to break in a
major, visible way -- the code didn't fail to compile, but the semantics
changed. I found this extremely upsetting, because things like file I/O
are something one expects to be stable in the long term, not reinvented
every other release. (In fact, I posted about this in another thread, as
some of you may recall.)

The change in question was a Phobos refactoring that, arguably, improved
the quality of the code by eliminating some ugly hacks that were
ostensibly causing "buggy" behaviour.  However, my code had come to
depend on that "buggy" behaviour, and having it break like that while I
was trying to "get work done" was not a pleasant experience, in spite of
the fact that I am generally sympathetic to those clamoring to gradual
language refinement via deprecation and redesign. (I even pushed for
such breakages at times.) I can only imagine the reaction of someone who
doesn't frequent this forum experiencing something like this upon
upgrading DMD.

So I'd say the cost of breakage is very real, and is not something to be
lightly dismissed. If I found it hard to swallow in spite of being
sympathetic to those who want the language to improve by occasionally
breakage of deprecated features, how much more will "normal" D users
feel when things break from under their existing code?

(Now of course I'm not saying we shouldn't ever introduce any breaking
changes -- I know of at least one occasion where I was actually
*pleased* by a particular breaking change -- but I'm saying that we need
to weigh the costs carefully and tread very lightly, because this is
just the kind of thing that will turn people away from D.)


T

-- 
They pretend to pay us, and we pretend to work. -- Russian saying


More information about the Digitalmars-d mailing list