When will D1 be finished?

Derek Parnell derek at psych.ward
Mon May 11 17:39:59 PDT 2009


On Mon, 11 May 2009 16:25:24 -0700, Walter Bright wrote:

> Derek Parnell wrote:
>> D1 is not complete. That has nothing to do with the bugs it still contains.
>> It is not complete because there is documented functionality for which no
>> implementation has yet been attempted. This assumes that the documentation
>> is complete and accurate.
>> 
>> The D-Team should be dedicating resources to ensuring that the D1
>> implementation and D1 documentation are in alignment with each other. By
>> dedicating, I mean that is all that this D1-subteam of the D-Team work on -
>> no D2 work at all. Any D1 fixes that need to be propagated to D2 should be
>> done by the D2-subteam. Priority should be given to getting D1 completed.
> 
> Please help me understand - why is contract inheritance preventing you 
> from using D1? Exported templates haven't stopped anyone from using C++ 
> compilers from Microsoft/Sun/Intel/etc. I don't think anyone has made a 
> feature complete C99 compiler, either.

Contract inheritance is NOT preventing me use D1. I have never, not once,
said that it has. 

Is Contract Inheritance documented as being a part of D1's functionality?
If yes, then is it implemented? If yes, then well done. If no, then is the
documentation wrong or is DMD v1 incomplete? 

If Contract Inheritance is not documented as being a part of D1's
functionality then why are we talking about it?

I do NOT automatically associate completeness with worthiness. D1 is stable
enough to use for production applications. I have never, not once, said
otherwise. 

My thinking re completeness is just this ...

  Docs say X is a function point of D1.
  DMD v1 does not implement X.
  Therefore, DMD v1 is not a complete implementation of D1.

That has NOTHING WHATSOEVER to do with deciding to use DMD v1 for important
applications. It is an observation, not a criticism or a complaint.

If was to complain, and I'm not, I might mention that sometimes the
impression I get is that the D-team feels that DMD v1 is as complete as its
ever going to be but won't admit it.

If DMD v1 is intending to ever be a complete implementation of D1, then IMO
there needs to be a concerted effort to reach a completed stage in DMD v1,
independently of any work happening in the D2 arena.

If this is not the intention, IMO, it ought to be stated clearly in the DMD
v1 documentation that DMD v1 is not the definitive D1 implementation. That
would slow down the rate of people complaining about it being incomplete.

>> Unless of course, D1 is just a prototype for D2 and will thus be discarded
>> the instant that D2 is released.
>> 
>> What are the support plans for D1 after D2 is released? (I consider current
>> D2 releases as beta editions at best).
> 
> D1 will continue to be supported as long as there is a significant 
> userbase for it. I've said this many times.

Times change. People change. Policies change. Readers of this newsgroup
change. I just wanted confirmation of what the current policy was. 

Is this policy recorded in the DMD v1 documentation? I couldn't find it.

> I also fail to understand this perception that D1 is abandoned. Every 
> month an update is released for it that fixes a load of problems. D1 has 
> led the way in ports to other platforms.

I have never said, not once, that D1 *is* abandoned. Stability and
completeness are not the same thing, as you well know. In fact, I'm amazed
at the amount of repairs that you are able to achieve, given the small
resource pool that is available. All kudos to your good selves.

What I have said was that D1 /might/ be abandoned in the future, if and
only if, D1 is to be considered as merely a prototype for D2. However, from
your recent comments I'm now convinced that you do not see D1 as merely a
prototype.

D2 is evolving from D1. D2 will be so significantly different from D1 as to
almost class it as a different language. I'm sure that a lot of D1 code
will not compile under D2, or if it does will have changed semantics.

But that is not an issue for me either; just an observation and not a
complaint.

> What isn't being done with D1 is adding a boatload of new features - 
> because that would destroy any pretense of it being a stable release.

Of course. Totally justifiable too. I am not asking for anything 'new' to
be added to D1. But I do see that D1 and DMD v1 are not the same thing
(yet).


Ok, so what is stopping me using D1? Below are some off-the-cuff ideas and
it may be that I'm mistaken in my beliefs, so take that into consideration.

* I like what D2 has to offer, so I'll wait for that. I'm not in a hurry to
use D as there is no current or approaching project that requires it.

* Phobos has missing functionality, which means I have needed to write that
code myself. (Adding the functionality to D1 Phobos is not an option
because D1 is 'closed' for additions.)

* Tango is too 'weird' for me to use. I'm not keen about the
Everything-Is-An-Object style of coding. A personal preference, to be sure.

* Tango means I need to do a special installation of DMD plus it assumes an
older version of DMD.

* I'm too busy to invest in something that I will need to rework for D2.

I really like D. I want to use it. But ... oh well, maybe I should just
'bite the bullet' and begin my next D project using D1 anyway. I can only
learn from the experience, right?

-- 
Derek Parnell
Melbourne, Australia
skype: derek.j.parnell



More information about the Digitalmars-d mailing list