www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - All this talk about finalising D2 makes me worried

reply Stewart Gordon <smjg_1998 yahoo.com> writes:
With apologies to Bruno Medeiros....

All this talk about getting D2 finished (and other things like what 
comes next) makes me worried. People talk as if D2 is nearing 
completion: there are even threads about the coming or even requesting 
the release of the finished product that D2 will be.

For a start, finishing D1 off has to come first.  I refer you all back 
to this discussion:

http://www.digitalmars.com/d/archives/digitalmars/D/When_will_D1_be_finished_89749.html
http://www.digitalmars.com/d/archives/digitalmars/D/Re_When_will_D1_be_finished_89913.html
http://www.digitalmars.com/d/archives/digitalmars/D/Re_When_will_D1_be_finished_89874.html

(I don't know why the thread has become split in three.)

I've a further feeling that some have suggested declaring D1 obsolete. 
Except that obsolete would be the wrong word - it would be more a case 
of D1 becoming a project that was started and then abandoned.  Which 
might sound like a good plan to some.  However, I can't at the moment 
think of any D1 spec issue or major bug that doesn't also affect the D2 
line.  As such, abandoning D1 will do nothing to bring closer the time 
when we can freeze the D 2.0 spec.

It is thus in the community's best interests to get D1 finished sooner 
rather than later, as we will then have a D that we can all use and 
third parties can implement.

(Yes, I know I should contribute to the effort.  Trouble is that, now I 
have a job, my time for stuff like this is limited.  But hopefully some 
time I'll find the time to do some work on it.)

Once D1 is done and dusted, _then_ we can shift our efforts to polishing 
D2 ready for finalisation and eventual stable release.  But in any case, 
we need to take things one step at a time.

Stewart.
Jul 15 2009
next sibling parent Robert Fraser <fraserofthenight gmail.com> writes:
Stewart Gordon wrote:
 With apologies to Bruno Medeiros....
 
 All this talk about getting D2 finished (and other things like what 
 comes next) makes me worried. People talk as if D2 is nearing 
 completion: there are even threads about the coming or even requesting 
 the release of the finished product that D2 will be.
 
 For a start, finishing D1 off has to come first.  I refer you all back 
 to this discussion:
 
 http://www.digitalmars.com/d/archives/digitalmars/D/When_will_D1_be
finished_89749.html 
 
 http://www.digitalmars.com/d/archives/digitalmars/D/Re_When_will_D1_be
finished_89913.html 
 
 http://www.digitalmars.com/d/archives/digitalmars/D/Re_When_will_D1_be
finished_89874.html 
 
 
 (I don't know why the thread has become split in three.)
 
 I've a further feeling that some have suggested declaring D1 obsolete. 
 Except that obsolete would be the wrong word - it would be more a case 
 of D1 becoming a project that was started and then abandoned.  Which 
 might sound like a good plan to some.  However, I can't at the moment 
 think of any D1 spec issue or major bug that doesn't also affect the D2 
 line.  As such, abandoning D1 will do nothing to bring closer the time 
 when we can freeze the D 2.0 spec.
 
 It is thus in the community's best interests to get D1 finished sooner 
 rather than later, as we will then have a D that we can all use and 
 third parties can implement.
 
 (Yes, I know I should contribute to the effort.  Trouble is that, now I 
 have a job, my time for stuff like this is limited.  But hopefully some 
 time I'll find the time to do some work on it.)
 
 Once D1 is done and dusted, _then_ we can shift our efforts to polishing 
 D2 ready for finalisation and eventual stable release.  But in any case, 
 we need to take things one step at a time.
 
 Stewart.
This topic has come up over and over, and the results are always the same: D1 will continue to be supported by Walter & co., but no new features will be in it. There _are_ some longstanding D1 issues (contract inheritance, in particular), but all (or nearly all) of these are issues with D2 as well, so hopefully they'll get fixed for both. In 1.045 and 1.046, a few older bugs started to get fixed, so there is definitely a show of some commitment by Walter towards getting stability in _both_ branches of D. Further, the continued development of Tango & other D1-specific tools and libraries shows a strong community commitment to the language. The LDC community also has been hard at work getting D1 bugs fixed, and LDC has already fixed a few that DMD hasn't (and posted patches Walter hasn't looked at...).
Jul 15 2009
prev sibling parent reply "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Wed, 15 Jul 2009 13:22:30 -0400, Stewart Gordon <smjg_1998 yahoo.com>  
wrote:

 With apologies to Bruno Medeiros....

 All this talk about getting D2 finished (and other things like what  
 comes next) makes me worried. People talk as if D2 is nearing  
 completion: there are even threads about the coming or even requesting  
 the release of the finished product that D2 will be.

 For a start, finishing D1 off has to come first.
What bugs in D1 are fixed in D2? I think Walter is fixing D1 and D2 bugs in parallel. I think the expectation that D2 will be released soon is because of Andrei's book. I didn't search for the thread where he said the date, and specifically that D2 should be finished by the time the book is released, but I recall it being sometime this year. In any case, I highly doubt that D2 will be "finished" by the time the book is released. Things are in such a state of flux, and there are so many planned, but unimplemented, features, especially surrounding pure functions and multithreading. I would guess that D2 would be in a feature freeze mode, even if some of the features aren't even implemented, kind of like contracts are for D1. If that's the case, then it leaves the door open to implement those features (and for edition 2 of the book!), even though D2 is "finished". -Steve
Jul 15 2009
next sibling parent reply Bill Baxter <wbaxter gmail.com> writes:
On Wed, Jul 15, 2009 at 6:21 PM, Steven
Schveighoffer<schveiguy yahoo.com> wrote:
 On Wed, 15 Jul 2009 13:22:30 -0400, Stewart Gordon <smjg_1998 yahoo.com>
 wrote:

 With apologies to Bruno Medeiros....

 All this talk about getting D2 finished (and other things like what come=
s
 next) makes me worried. People talk as if D2 is nearing completion: ther=
e
 are even threads about the coming or even requesting the release of the
 finished product that D2 will be.

 For a start, finishing D1 off has to come first.
What bugs in D1 are fixed in D2? =A0I think Walter is fixing D1 and D2 bu=
gs in
 parallel.

 I think the expectation that D2 will be released soon is because of Andre=
i's
 book. =A0I didn't search for the thread where he said the date, and
 specifically that D2 should be finished by the time the book is released,
 but I recall it being sometime this year.

 In any case, I highly doubt that D2 will be "finished" by the time the bo=
ok
 is released. =A0Things are in such a state of flux, and there are so many
 planned, but unimplemented, features, especially surrounding pure functio=
ns
 and multithreading. =A0I would guess that D2 would be in a feature freeze
 mode, even if some of the features aren't even implemented, kind of like
 contracts are for D1. =A0If that's the case, then it leaves the door open=
to
 implement those features (and for edition 2 of the book!), even though D2=
is
 "finished".
Well D1.0 was pretty much an arbitrary line in the sand. D2.0release (or whatever they decide to call it) might as well be too. --bb
Jul 15 2009
parent "Tyro [a.c.edwards]" <nospam home.com> writes:
Bill Baxter wrote:
 On Wed, Jul 15, 2009 at 6:21 PM, Steven
 Schveighoffer<schveiguy yahoo.com> wrote:
 On Wed, 15 Jul 2009 13:22:30 -0400, Stewart Gordon <smjg_1998 yahoo.com>
 wrote:
Well D1.0 was pretty much an arbitrary line in the sand. D2.0release (or whatever they decide to call it) might as well be too.
And if memory serves me correctly, that was the direct result of innumerable request by the community for that line to be drawn. I seriously doubt we want to do the same thing again.
 --bb
Jul 16 2009
prev sibling parent reply Stewart Gordon <smjg_1998 yahoo.com> writes:
Steven Schveighoffer wrote:
 On Wed, 15 Jul 2009 13:22:30 -0400, Stewart Gordon <smjg_1998 yahoo.com> 
 wrote:
 
 With apologies to Bruno Medeiros....

 All this talk about getting D2 finished (and other things like what 
 comes next) makes me worried. People talk as if D2 is nearing 
 completion: there are even threads about the coming or even requesting 
 the release of the finished product that D2 will be.

 For a start, finishing D1 off has to come first.
What bugs in D1 are fixed in D2? I think Walter is fixing D1 and D2 bugs in parallel.
I'm not sure OTTOMH, but I'm sure there are some. Nor am I quite sure of the relevance of this....
 I think the expectation that D2 will be released soon is because of 
 Andrei's book.  I didn't search for the thread where he said the date, 
 and specifically that D2 should be finished by the time the book is 
 released, but I recall it being sometime this year.
 
 In any case, I highly doubt that D2 will be "finished" by the time the 
 book is released. 
IWC the book'll have to work around the ambiguities in the spec. Maybe it can be done....
 Things are in such a state of flux, and there are so many planned, 
 but unimplemented, features, especially surrounding pure functions 
 and multithreading.  I would guess that D2 would be in a feature 
 freeze mode, even if some of the features aren't even implemented, 
 kind of like contracts are for D1.
<snip> Contracts have been implemented for as long as I've known D. Are you thinking of something else, e.g. contract inheritance? A distinction must be made between a feature freeze and a spec freeze. In the run-up to 1.0 I pressed for a feature freeze decision to be reached: http://www.digitalmars.com/d/archives/digitalmars/D/41553.html This was so that the remaining time could be spent making the spec complete and consistent and fixing compiler bugs. Once the spec issues are fixed, a spec freeze can be put in place. This is an issue for anybody wanting to implement D and for any D tools/libraries to reach commercial quality. Sadly, nearly three years on, even D1 isn't quite there yet. http://d.puremagic.com/issues/show_bug.cgi?id=677
 If that's the case, then it leaves the door open to implement those 
 features (and for edition 2 of the book!), even though D2 is 
 "finished".
Maybe D 2.0 can be considered feature-frozen in the near future, but I still feel that this is a bridge we need to get to before crossing it. And then we'll need to make sure the D 2.0 spec is complete and consistent before freezing that, but can start work on D 2.1 in the meantime. The spec freeze on D 2.0 would be part of the definition of finished in the same way. But let's not let this detract from the task of finishing D1. Stewart.
Jul 16 2009
parent reply "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Thu, 16 Jul 2009 12:04:25 -0400, Stewart Gordon <smjg_1998 yahoo.com>  
wrote:

 Steven Schveighoffer wrote:
 On Wed, 15 Jul 2009 13:22:30 -0400, Stewart Gordon  
 <smjg_1998 yahoo.com> wrote:

 With apologies to Bruno Medeiros....

 All this talk about getting D2 finished (and other things like what  
 comes next) makes me worried. People talk as if D2 is nearing  
 completion: there are even threads about the coming or even requesting  
 the release of the finished product that D2 will be.

 For a start, finishing D1 off has to come first.
What bugs in D1 are fixed in D2? I think Walter is fixing D1 and D2 bugs in parallel.
I'm not sure OTTOMH, but I'm sure there are some. Nor am I quite sure of the relevance of this....
What's not finished in D1 that Walter isn't already working on because it's broken in D2 too? My point is, you are worried that D1 won't be finished before D2 is finished, but I'm saying that won't happen if all the bugs in D1 are also in D2. Every release of D2 is coupled with a release of D1, with bugs fixed in both versions. This idea that D1 isn't being worked on seems incorrect to me. -Steve
Jul 16 2009
parent reply Stewart Gordon <smjg_1998 yahoo.com> writes:
Steven Schveighoffer wrote:
<snip>
 What's not finished in D1 that Walter isn't already working on because 
 it's broken in D2 too?
Everything that Walter hasn't yet got round to working on. I guess it's just a matter of what Walter's priorities are.
 My point is, you are worried that D1 won't be finished before D2 is 
 finished,
No I'm not. I'm worried by people seemingly asking for D2's stake in the ground to be placed before D2 is finished, which'll be even worse if even D1 isn't finished by that time.
 but I'm saying that won't happen if all the bugs in D1 are also in 
 D2.
 
 Every release of D2 is coupled with a release of D1, with bugs fixed in 
 both versions.  This idea that D1 isn't being worked on seems incorrect 
 to me.
This idea isn't part of anything I said, so I don't know where you got it from. What I may have said, however, is something to the effect that the bits of D1 being worked on don't seem to be the major ones towards D1 being finished, such as cleaning up the spec. One thing I do know is that it's been ages since anything under issue 677 that I filed has been fixed. Stewart.
Jul 16 2009
parent reply "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Thu, 16 Jul 2009 16:23:30 -0400, Stewart Gordon <smjg_1998 yahoo.com>  
wrote:

 Steven Schveighoffer wrote:
 <snip>
 What's not finished in D1 that Walter isn't already working on because  
 it's broken in D2 too?
Everything that Walter hasn't yet got round to working on. I guess it's just a matter of what Walter's priorities are.
So you think there *are* parts of D1 that are broken or incomplete, yet working properly in D2? An example would be nice.
 My point is, you are worried that D1 won't be finished before D2 is  
 finished,
No I'm not. I'm worried by people seemingly asking for D2's stake in the ground to be placed before D2 is finished, which'll be even worse if even D1 isn't finished by that time.
In order for D2 to be finished, D1 will be finished, because D2's bugs, or incompletions, encompass D1's bugs.
 but I'm saying that won't happen if all the bugs in D1 are also in D2.
  Every release of D2 is coupled with a release of D1, with bugs fixed  
 in both versions.  This idea that D1 isn't being worked on seems  
 incorrect to me.
This idea isn't part of anything I said, so I don't know where you got it from.
I got it from when you said D1 should be finished before D2 is finished. My point is, yeah, that's a given considering all of D1's bugs exist as bugs in D2.
 What I may have said, however, is something to the effect that the bits  
 of D1 being worked on don't seem to be the major ones towards D1 being  
 finished, such as cleaning up the spec.  One thing I do know is that  
 it's been ages since anything under issue 677 that I filed has been  
 fixed.
Large successful D1 projects still seem to exist without a complete spec. I'm not so sure a complete D1 spec would miraculously spark a D revolution. I have a few outstanding bugs myself that could be fixed, but Walter is only one guy. And he's trying to get his vision for D2 working, so he can stop saying "trust me, this way is better" and start saying "see, this way is better, here's the proof". I can understand that. All I'm saying is, you're not going to get an engineer to stop working on the interesting fun project to go dot i's and cross t's on a mostly functional prior project, except for probably bug-fixes. Especially when he does it for free :) -Steve
Jul 16 2009
parent reply Stewart Gordon <smjg_1998 yahoo.com> writes:
Steven Schveighoffer wrote:
 On Thu, 16 Jul 2009 16:23:30 -0400, Stewart Gordon <smjg_1998 yahoo.com> 
 wrote:
 
 Steven Schveighoffer wrote:
 <snip>
 What's not finished in D1 that Walter isn't already working on 
 because it's broken in D2 too?
Everything that Walter hasn't yet got round to working on. I guess it's just a matter of what Walter's priorities are.
So you think there *are* parts of D1 that are broken or incomplete, yet working properly in D2? An example would be nice.
That doesn't factor into what I said at all. <snip>
 I got it from when you said D1 should be finished before D2 is 
 finished.  My point is, yeah, that's a given considering all of D1's 
 bugs exist as bugs in D2.
You're confusing being actually finished with being declared finished. First D1 must be actually finished. Then D2 must be actually finished. This we seem to agree on. Then, and only then, can D2 sensibly be declared finished. Simple. But it seems people are wanting to meddle with this order, and this is what I've been getting at all along. (OK, so my original post did talk of "All this talk about getting D2 finished". I probably just hadn't quite found the right words at that point.)
 What I may have said, however, is something to the effect that the 
 bits of D1 being worked on don't seem to be the major ones towards D1 
 being finished, such as cleaning up the spec.  One thing I do know is 
 that it's been ages since anything under issue 677 that I filed has 
 been fixed.
Large successful D1 projects still seem to exist without a complete spec. I'm not so sure a complete D1 spec would miraculously spark a D revolution.
Simple. Once we have a complete D1 spec, major software companies will be ready to implement D. When a major software company implements D, it'll become more widely known to the masses. This'll also pave the way for D to taken up by the software industry on a significant scale. <snip>
 All I'm saying is, you're not going to get an engineer to stop working 
 on the interesting fun project to go dot i's and cross t's on a mostly 
 functional prior project, except for probably bug-fixes.  Especially 
 when he does it for free :)
Can you think of an undotted i (for as long as we aren't doing this in Turkish) or an uncrossed t that doesn't qualify as a bug? Stewart.
Jul 17 2009
next sibling parent reply Bill Baxter <wbaxter gmail.com> writes:
On Fri, Jul 17, 2009 at 5:36 AM, Stewart Gordon<smjg_1998 yahoo.com> wrote:
 Steven Schveighoffer wrote:
 Simple. =A0Once we have a complete D1 spec, major software companies will=
be
 ready to implement D. =A0When a major software company implements D, it'l=
l
 become more widely known to the masses. =A0This'll also pave the way for =
D to
 taken up by the software industry on a significant scale.
This is delusional. Major software companies aren't going to start implementing D just because the spec is finished. There's no market for it when the original compiler is given away for free. And if someone really thought there was a major market for a D compiler with fewer bugs, I don't think the holes in the spec would stop them from trying to implement it. I mean why do you think we have all this #ifdef mess in cross -platform C/C++ projects? Everyone implemented the spec slightly differently. They clearly were not deterred by the fact that they didn't understand the spec 100%. That's because there was a customer demand for a C++ compiler on their platform, so they wrote one. And they charged their customers $500 or more for it. But those days are gone. You can't make a business out of charging $500 for just a compiler anymore. If anything you've got to go into dev tools like fancy IDEs and such. But even then it's a tough market when you're talking about a niche language. But if D were to become wildly popular... that's a different story. That's what would make major software companies take notice. When customers in large numbers start asking why Major Software Company doesn't support D, or have their own D compiler, then Major Software Company will start to take interest. --bb
Jul 17 2009
parent Stewart Gordon <smjg_1998 yahoo.com> writes:
Bill Baxter wrote:
<snip>
 This is delusional.  Major software companies aren't going to start
 implementing D just because the spec is finished.  There's no market
 for it when the original compiler is given away for free.  And if
 someone really thought there was a major market for a D compiler with
 fewer bugs, I don't think the holes in the spec would stop them from
 trying to implement it.  I mean why do you think we have all this
 #ifdef mess in cross -platform C/C++ projects?  Everyone implemented
 the spec slightly differently.  They clearly were not deterred by the
 fact that they didn't understand the spec 100%. 
But one of D's main design goals is to avoid this. http://www.digitalmars.com/d/1.0/faq.html#q4 http://www.digitalmars.com/d/1.0/faq.html#q7_3 (final sentence) Every hole, ambiguity or inconsistency in the spec is a potential portability issue. If people want the mess C++ is in, they know where to find it. I think one reason that companies will want to implement D is to 'sell' a language that doesn't suffer from this problem. As such, I can imagine some wanting to wait until D lives up to its advertising claims, or to hold back when they sooner or later stumble upon one of D's spec problems.
 That's because there was a customer demand  for a C++ compiler on their
platform, so they
 wrote one.   And they charged their customers $500 or more for it.
 But those days are gone.  You can't make a business out of charging
 $500 for just a compiler anymore.  If anything you've got to go into
 dev tools like fancy IDEs and such.  But even then it's a tough market
 when you're talking about a niche language.
And many of these fancy IDEs will want to include their own compilers, which would compete in quality with DMD and each other. That's also among D's design goals.
 But if D were to become wildly popular... that's a different story.
<snip> And I think many of us are hoping that it will - myself included. Stewart.
Jul 26 2009
prev sibling next sibling parent "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Fri, 17 Jul 2009 08:36:17 -0400, Stewart Gordon <smjg_1998 yahoo.com>  
wrote:

 Steven Schveighoffer wrote:
 I got it from when you said D1 should be finished before D2 is  
 finished.  My point is, yeah, that's a given considering all of D1's  
 bugs exist as bugs in D2.
You're confusing being actually finished with being declared finished.
OK, so you are worried that D2 shouldn't be declared finished until it's finished? What makes you think that will happen? Here's what I think will happen: 1. Walter is satisfied that the set of features he wants to have in D2 are either implemented or well defined (and I hope this includes bug 1961!) 2. He says "no more features." 3. All the "required" features are implemented completely (possibly with bugs). "required" is hard to define, but I trust Walter will know what he thinks is important for an initial release. 4. D2 is declared "stable" (not finished), and no API changes will occur. 5. Bugs are fixed, etc. At the same time, D1 is already in stage 5, so as bugs are fixed in D2, they are also fixed in D1 (since they are loosely based on the same code). I don't have any problem with the state of things, and I don't consider D1 or it's spec being finished a critical part of D's success.
 First D1 must be actually finished.  Then D2 must be actually finished.  
   This we seem to agree on.  Then, and only then, can D2 sensibly be  
 declared finished.  Simple.  But it seems people are wanting to meddle  
 with this order, and this is what I've been getting at all along.
I don't think so. I think people want D2 to be free from breaking changes like D1 is. Without this, it's hard to write code for a moving target. Even if D2 is not "finished," if it's not changing (except for bug fixes) then it's usable for long term projects.
  Large successful D1 projects still seem to exist without a complete  
 spec.  I'm not so sure a complete D1 spec would miraculously spark a D  
 revolution.
Simple. Once we have a complete D1 spec, major software companies will be ready to implement D. When a major software company implements D, it'll become more widely known to the masses. This will also pave the way for D to taken up by the software industry on a significant scale.
What major company is going to write a compiler for D1 when D2 is almost ready for feature-freeze? I think D1 missed that boat.
 <snip>
 All I'm saying is, you're not going to get an engineer to stop working  
 on the interesting fun project to go dot i's and cross t's on a mostly  
 functional prior project, except for probably bug-fixes.  Especially  
 when he does it for free :)
Can you think of an undotted i (for as long as we aren't doing this in Turkish) or an uncrossed t that doesn't qualify as a bug?
No, but as evidenced by the success of large projects like Tango (I've used it to write pretty interesting stuff for my company), the bugs are not show stoppers, similar to how an undotted i does not ruin the meaning of the text containing it, it's just a superficial issue. And spec bugs aren't even close to show stoppers, since they just don't reflect the actual behavior, especially since all compilers right now are based on the reference design (dmd). -Steve
Jul 17 2009
prev sibling next sibling parent Jarrett Billingsley <jarrett.billingsley gmail.com> writes:
On Fri, Jul 17, 2009 at 9:08 AM, Bill Baxter<wbaxter gmail.com> wrote:
 On Fri, Jul 17, 2009 at 5:36 AM, Stewart Gordon<smjg_1998 yahoo.com> wrot=
e:
 Steven Schveighoffer wrote:
 Simple. =A0Once we have a complete D1 spec, major software companies wil=
l be
 ready to implement D. =A0When a major software company implements D, it'=
ll
 become more widely known to the masses. =A0This'll also pave the way for=
D to
 taken up by the software industry on a significant scale.
This is delusional. =A0Major software companies aren't going to start implementing D just because the spec is finished. =A0There's no market for it when the original compiler is given away for free. =A0And if someone really thought there was a major market for a D compiler with fewer bugs, I don't think the holes in the spec would stop them from trying to implement it. =A0I mean why do you think we have all this #ifdef mess in cross -platform C/C++ projects? =A0Everyone implemented the spec slightly differently. =A0They clearly were not deterred by the fact that they didn't understand the spec 100%.
But I thought that's exactly what D was trying to *avoid*: being an implementation nightmare. The very first quote on the front page of the D site is "Maybe it's time for a new language born out of practical experience implementing compilers." If D wants to be easy to implement, shouldn't it have a decent roadmap for doing so? Fleshing out the spec is useful for more than just making new implementations. It also shines light on dark, forgotten corners, exposing potential bugs and incorrect implementation of the spec in the reference compiler. It also brings attention to features which maybe were misdesigned from the start, or which didn't take into account other features, or which have "rotted" as other features were added. Improving the spec is not just a matter of documenting what the compiler does; it improves the language as a whole. And from a personal perspective, I've found that in specifying language features, if it's difficult to explain to others, chances are it's better off either being left out or being redesigned. It's had a very beneficial effect on the quality of my own language.
Jul 17 2009
prev sibling next sibling parent Bill Baxter <wbaxter gmail.com> writes:
On Fri, Jul 17, 2009 at 6:32 AM, Jarrett
Billingsley<jarrett.billingsley gmail.com> wrote:
 On Fri, Jul 17, 2009 at 9:08 AM, Bill Baxter<wbaxter gmail.com> wrote:
 On Fri, Jul 17, 2009 at 5:36 AM, Stewart Gordon<smjg_1998 yahoo.com> wro=
te:
 Steven Schveighoffer wrote:
 Simple. =A0Once we have a complete D1 spec, major software companies wi=
ll be
 ready to implement D. =A0When a major software company implements D, it=
'll
 become more widely known to the masses. =A0This'll also pave the way fo=
r D to
 taken up by the software industry on a significant scale.
This is delusional. =A0Major software companies aren't going to start implementing D just because the spec is finished. =A0There's no market for it when the original compiler is given away for free. =A0And if someone really thought there was a major market for a D compiler with fewer bugs, I don't think the holes in the spec would stop them from trying to implement it. =A0I mean why do you think we have all this #ifdef mess in cross -platform C/C++ projects? =A0Everyone implemented the spec slightly differently. =A0They clearly were not deterred by the fact that they didn't understand the spec 100%.
But I thought that's exactly what D was trying to *avoid*: being an implementation nightmare. =A0The very first quote on the front page of the D site is "Maybe it's time for a new language born out of practical experience implementing compilers." =A0If D wants to be easy to implement, shouldn't it have a decent roadmap for doing so? Fleshing out the spec is useful for more than just making new implementations. =A0It also shines light on dark, forgotten corners, exposing potential bugs and incorrect implementation of the spec in the reference compiler. =A0It also brings attention to features which maybe were misdesigned from the start, or which didn't take into account other features, or which have "rotted" as other features were added. =A0Improving the spec is not just a matter of documenting what the compiler does; it improves the language as a whole. And from a personal perspective, I've found that in specifying language features, if it's difficult to explain to others, chances are it's better off either being left out or being redesigned. =A0It's had a very beneficial effect on the quality of my own language.
Seems to me like popularity of languages tends to precede detailed specifications generally. Having a 100% complete spec has merits I'm sure but it doesn't really correlate much with language adoption as far as I can tell. Having a language and tool chain that work well and make life easy for programmers seems to have much more importance. Is this incorrect from what you've seen? --bb
Jul 17 2009
prev sibling parent Jarrett Billingsley <jarrett.billingsley gmail.com> writes:
On Fri, Jul 17, 2009 at 1:33 PM, Bill Baxter<wbaxter gmail.com> wrote:
 Seems to me like popularity of languages tends to precede detailed
 specifications generally.
 Having a 100% complete spec has merits I'm sure but it doesn't really
 correlate much with language adoption as far as I can tell. =A0Having a
 language and tool chain that work well and make life easy for
 programmers seems to have much more importance. =A0Is this incorrect
 from what you've seen?
It's not incorrect. I'm just saying that rigorously specifying the language can certainly go a long way to making a solid compiler, and therefore a better toolchain.
Jul 17 2009