why a part of D community do not want go to D2 ?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Nov 8 15:42:34 PST 2010


On 11/8/10 2:07 PM, oldtimer wrote:
> Mon, 08 Nov 2010 13:06:23 -0800, Andrei Alexandrescu wrote:
>
>> On 11/8/10 12:48 PM, bearophile wrote:
>>> Andrei:
>>>
>>>> A longer term perception problem is that some might think the
>>>> _design_ of such features has unsolvable issues,
>>>
>>> That's my fear (so it's problem, even if it's just a perceived
>>> imaginary problem). But I am not in a rush, so I am not going
>>> away.
>>>
>>>
>>>> I know of no major design flaws,
>>>
>>> Uhm... For example the whole implementation of nonnullables in D2
>>> is already becoming a big design flaw.
>>
>> I think we have different definitions of what a design flaw is.
>> C++ export was a design flaw. PHP also has several design flaws.
>> The fact that you can't implement non-nullable references in e.g.
>> C++ or Java is not a design flaw in those respective languages.
>>
>> Generally I think the case of non-null references is overstated.
>> It doesn't deserve that much agitation. It's being mentioned as a
>> life or death matter in spite of the simple evidence that many
>> mainstream languages are doing well without it, and without a
>> landslide popular vote for adding it. (And it's not a flaw in their
>> design that they don't make non-null references implementable.)
>>
>
> For some members of the community D has been a learning process; D
> has introduced the members to new features in language design. It has
> been an informal trial and error process. Even Walter has learned a
> lot, which is nice. This has caused at least two problems. The
> requirements have changed and developers expect now more advanced
> functionality. The amount of suggested design ideas has grown, but
> the development speed hasn't scaled as well. The development process
> doesn't scale up since almost no documentation gets written. The
> expectations may be unrealistically high. Sometimes the expectations
> are realistic, but the combination of legacy design choices in D1 and
> D2, TDPL pressure, D2 stabilization pressure, and D2 schedule has
> brought a suboptimal implementation.
>
> The second problem is, the developers now expect more knowledge from
> the language designer. It gets really frustating if we need to start
> teaching him to get better features. This is universal - if your kids
> go to a really bad public school, you might want to start teaching
> them at home or consider some private school (= other language). If
> your lawmakers don't understand the laws they pass, you might
> consider moving to another country (= other language/platform). I can
> say I'm not really convinced. I'm probably not the only one.
>
> It's bad for the publicity that digitalmars can't articulate any kind
> of official *written* roadmap for new features. You don't want to
> dedicate much (financial) effort on projects using the cowboy coding
> paradigm. The project has a trac page. Writing down: "1. 64-bit dmd
> (N months) 2. concurrency fixes (M months) etc." shouldn't take too
> long. If my guess is right, you can even copy'n'paste it straight
> away. But you also need to update it! This is basic project
> management these days.

All very good points. Walter is generally shy to put forth agenda that 
are difficult to estimate and meet. There have been, for example, 
unexpected (and unexpectedly long) setbacks of the 64-bit release due to 
seemingly minor hitches (e.g. C-style variadics). At any rate, I, too, 
think a sort of general agenda would be useful to keep updated.

One simple thing that I've recently done (my free time has been 
relatively scarce lately) was to work on bug reports starting from the 
oldest first. (I solved a bunch, too - it took me a couple of days to go 
through like 70.) The oldest non-enhancement non-lowpri unsolved bug is 
a metric that people will look at, and limiting the age of the oldest 
bug gives people a sense that all reports will be looked at in a fair 
manner.

> One reason why Python/Ruby are so popular is their terse syntax. The
> library based solutions in D2 aren't that cute. Some developers value
> the beauty of code. If the solutions are too ugly, people will switch
> to other languages. Compare Pascal with C, the languages are quite
> similar modulo syntactic changes. The other one won.

I agree in spirit, but beyond some point this all becomes a manner of 
taste. And library solutions scale in many ways much better than 
solutions built into the language - I mean look at Python's "print". I'd 
actually prefer NonNull!T over @T or @nonnull T etc. What I prefer even 
more about NonNull!T is that it uses general language facilities that 
can be used for NonZero!T or Bounded!T etc. as discussed.

> For commercial users of D the feature set matters a lot. If D2 can't
> deliver the power of D1&  Tango, there's nothing you can do.

What I can do is work on D and encourage others to do the same.

> A sane
> corporation would not donate code to Phobos just because its quality
> is worse and it's an empathetic thing to do. Corporations don't work
> this way. Those who are fixing Phobos are individual zealots swimming
> against the stream. They have a very long term technical agenda (D2
> will beat comtemporary technologies in 10+ years), a religious
> agenda, nothing better to do, or some kind of mental illness.
> Corporations aren't interested in very long term technical issues,
> they care about short term solutions (1 to 36 months).
>
> Some of us hoped D2 would solve the ugly corner cases of the language
> and unify a lot of features. Unfortunately not any kind of macro
> system was implemented, templates got even uglier, the alias this
> hack, snake oil template!X syntax shortcut and all kinds of
> unnecessary features were added. Of course also good features were
> added, but overall this just isn't good enough.

I was expecting a number of responses from under the cloak of anonymity 
(i.e. from people whose identity would immediately reveal their agenda), 
and as far as those go this post was surprisingly good up until the last 
paragraphs. Here is unfortunately where the tone of the discourse degrades.

Let's not forget that a lot of good work - including Tango itself - has 
been done by "zealots". It also seems that disingenuously attempting to 
frame D2 contributors as weirdos with a religious agenda, nothing better 
to do, or mentally ill is a display of an emotional position in the 
matter that instantly reduces the quality of any point made and that of 
the dialog in general. This all being told from under anonymity doesn't 
help either.

I understand you would have liked macros, dislike the paren-less 
shortcut notation A!B instead of A!(B), and dislike some untold features 
that you find as unnecessary. It would be great if you substantiated 
these points while leaving the subjective outside. For example, I am 
confused by the shortcut A!B being snake oil or alias this being a hack. 
The former is a mere convenience and the latter is a well-motivated feature.


Andrei


More information about the Digitalmars-d mailing list