www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Is it time for D 3.0?

reply Paul D. Anderson <paul.d.removethis.anderson comcast.andthis.net> writes:
I posted this comment already in the phobos/tango thread but I thought it might
be of more general interest.

With all the changes being discussed -- many of the breaking changes -- is it
time to move on to D version 3.0?

It seems to me a natural division exists between 2.0, when we had to choose
between tango and phobos; and 3.0, when we got to use them both.

Some of the other recent discussions here, template syntax, for example, could
fall on the other side of the 2.0/3.0 divide.

I'm sure Walter and others have discussed when and how the move to 3.0 will
occur. Just wondering if this important change should be a factor.

Paul
Oct 13 2008
next sibling parent reply dsimcha <dsimcha yahoo.com> writes:
== Quote from Paul D. Anderson
(paul.d.removethis.anderson comcast.andthis.net)'s
article
 I posted this comment already in the phobos/tango thread but I thought it might

 With all the changes being discussed -- many of the breaking changes -- is it

 It seems to me a natural division exists between 2.0, when we had to choose

 Some of the other recent discussions here, template syntax, for example, could

 I'm sure Walter and others have discussed when and how the move to 3.0 will

 Paul

My 2 cents is that I think, in hindsight, it might have been a mistake to declare a 1.0 release when so many breaking changes to the language spec were still to be made. D1 seems like it's an artificially stable spec for people who needed a stable spec. However, it was released before the "real" spec was finalized and will likely have little future once D2 is finalized. I don't think the same mistake should be made by releasing D2 as yet another artificially stable spec when there is still likely to be massive code breakage in a subsequent release.
Oct 13 2008
parent reply KennyTM~ <kennytm gmail.com> writes:
dsimcha wrote:
 == Quote from Paul D. Anderson
(paul.d.removethis.anderson comcast.andthis.net)'s
 article
 I posted this comment already in the phobos/tango thread but I thought it might

 With all the changes being discussed -- many of the breaking changes -- is it

 It seems to me a natural division exists between 2.0, when we had to choose

 Some of the other recent discussions here, template syntax, for example, could

 I'm sure Walter and others have discussed when and how the move to 3.0 will

 Paul

My 2 cents is that I think, in hindsight, it might have been a mistake to declare a 1.0 release when so many breaking changes to the language spec were still to be made. D1 seems like it's an artificially stable spec for people who needed a stable spec. However, it was released before the "real" spec was finalized and will likely have little future once D2 is finalized. I don't think the same mistake should be made by releasing D2 as yet another artificially stable spec when there is still likely to be massive code breakage in a subsequent release.

I believe the D1 spec is stable enough, only that dmd is not stable. The only spec-relating changed to 1.0 since Jun 17th (v2.000 was released) are: * Added aliases string, wstring, and dstring to ease compatiblity with 2.0. (v1.016) * Added __VENDOR__ and __VERSION__. (v1.017) * The .init property for a variable is now based on its type, not its initializer. (v1.017, breaking) * Added 0x78 Codeview extension for type dchar. (v1.019) * Added extern (System) (v1.019) * Multiple module static constructors/destructors allowed. (v1.021) * Data items in static data segment >= 16 bytes in size are now paragraph aligned. (v1.023) * Re-enabled auto interfaces. (v1.027)
Oct 13 2008
next sibling parent KennyTM~ <kennytm gmail.com> writes:
KennyTM~ wrote:
 dsimcha wrote:
 == Quote from Paul D. Anderson 
 (paul.d.removethis.anderson comcast.andthis.net)'s
 article
 I posted this comment already in the phobos/tango thread but I 
 thought it might

 With all the changes being discussed -- many of the breaking changes 
 -- is it

 It seems to me a natural division exists between 2.0, when we had to 
 choose

 Some of the other recent discussions here, template syntax, for 
 example, could

 I'm sure Walter and others have discussed when and how the move to 
 3.0 will

 Paul

My 2 cents is that I think, in hindsight, it might have been a mistake to declare a 1.0 release when so many breaking changes to the language spec were still to be made. D1 seems like it's an artificially stable spec for people who needed a stable spec. However, it was released before the "real" spec was finalized and will likely have little future once D2 is finalized. I don't think the same mistake should be made by releasing D2 as yet another artificially stable spec when there is still likely to be massive code breakage in a subsequent release.

I believe the D1 spec is stable enough, only that dmd is not stable. The only spec-relating changed to 1.0 since Jun 17th (v2.000 was released) are: * Added aliases string, wstring, and dstring to ease compatiblity with 2.0. (v1.016) * Added __VENDOR__ and __VERSION__. (v1.017) * The .init property for a variable is now based on its type, not its initializer. (v1.017, breaking) * Added 0x78 Codeview extension for type dchar. (v1.019) * Added extern (System) (v1.019) * Multiple module static constructors/destructors allowed. (v1.021) * Data items in static data segment >= 16 bytes in size are now paragraph aligned. (v1.023) * Re-enabled auto interfaces. (v1.027)

I hit the wrong button :) * Added compile time error for comparing class types against null (v1.028) * Added version identifier D_PIC when -fPIC switch is used (v1.031) * Added .__vptr and .__monitor properties for class objects for use in the internal runtime library (v1.032) * Now supports array operations (v1.034, which Walter claims "It should have been there") So there is probably just one breaking change (.init), and others are more likely bug fixes or really minor enhancements (__VENDOR__?), so I could say the spec itself is pretty stable.
Oct 13 2008
prev sibling parent reply dsimcha <dsimcha yahoo.com> writes:
== Quote from KennyTM~ (kennytm gmail.com)'s article
 dsimcha wrote:
 == Quote from Paul D. Anderson
(paul.d.removethis.anderson comcast.andthis.net)'s
 article
 I posted this comment already in the phobos/tango thread but I thought it might

 With all the changes being discussed -- many of the breaking changes -- is it

 It seems to me a natural division exists between 2.0, when we had to choose

 Some of the other recent discussions here, template syntax, for example, could

 I'm sure Walter and others have discussed when and how the move to 3.0 will

 Paul

My 2 cents is that I think, in hindsight, it might have been a mistake to declare a 1.0 release when so many breaking changes to the language spec were still to be made. D1 seems like it's an artificially stable spec for people who needed a stable spec. However, it was released before the "real" spec was finalized and will likely have little future once D2 is finalized. I don't think the same mistake should be made by releasing D2 as yet another artificially stable spec when there is still likely to be massive code breakage in a subsequent release.

only spec-relating changed to 1.0 since Jun 17th (v2.000 was released) are: * Added aliases string, wstring, and dstring to ease compatiblity with 2.0. (v1.016) * Added __VENDOR__ and __VERSION__. (v1.017) * The .init property for a variable is now based on its type, not its initializer. (v1.017, breaking) * Added 0x78 Codeview extension for type dchar. (v1.019) * Added extern (System) (v1.019) * Multiple module static constructors/destructors allowed. (v1.021) * Data items in static data segment >= 16 bytes in size are now paragraph aligned. (v1.023) * Re-enabled auto interfaces. (v1.027)

Sorry for the misunderstanding. I wasn't referring to the stability of the D1 spec, but the spec for the D trunk. Yes, on the "trunk spec", in this case D2, breaking changes are fine to a degree, but D1 and D2 appear to be diverging significantly. My point is that it might have been premature to declare a meaningful stable branch that doesn't end up as almost a separate language from the trunk.
Oct 13 2008
parent KennyTM~ <kennytm gmail.com> writes:
dsimcha wrote:
 == Quote from KennyTM~ (kennytm gmail.com)'s article
 dsimcha wrote:
 == Quote from Paul D. Anderson
(paul.d.removethis.anderson comcast.andthis.net)'s
 article
 I posted this comment already in the phobos/tango thread but I thought it might

 With all the changes being discussed -- many of the breaking changes -- is it

 It seems to me a natural division exists between 2.0, when we had to choose

 Some of the other recent discussions here, template syntax, for example, could

 I'm sure Walter and others have discussed when and how the move to 3.0 will

 Paul

a 1.0 release when so many breaking changes to the language spec were still to be made. D1 seems like it's an artificially stable spec for people who needed a stable spec. However, it was released before the "real" spec was finalized and will likely have little future once D2 is finalized. I don't think the same mistake should be made by releasing D2 as yet another artificially stable spec when there is still likely to be massive code breakage in a subsequent release.

only spec-relating changed to 1.0 since Jun 17th (v2.000 was released) are: * Added aliases string, wstring, and dstring to ease compatiblity with 2.0. (v1.016) * Added __VENDOR__ and __VERSION__. (v1.017) * The .init property for a variable is now based on its type, not its initializer. (v1.017, breaking) * Added 0x78 Codeview extension for type dchar. (v1.019) * Added extern (System) (v1.019) * Multiple module static constructors/destructors allowed. (v1.021) * Data items in static data segment >= 16 bytes in size are now paragraph aligned. (v1.023) * Re-enabled auto interfaces. (v1.027)

Sorry for the misunderstanding. I wasn't referring to the stability of the D1 spec, but the spec for the D trunk. Yes, on the "trunk spec", in this case D2, breaking changes are fine to a degree, but D1 and D2 appear to be diverging significantly. My point is that it might have been premature to declare a meaningful stable branch that doesn't end up as almost a separate language from the trunk.

OK. I see what you mean then. But the most painful transition from D1 to D2 is just fixing those invariant/const stuff I think, but other than that it is quite easy to change. At least easier than VB6 -> VB.NET. :p (I'm not saying D2 is back-compat, though.)
Oct 13 2008
prev sibling next sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Paul D. Anderson" <paul.d.removethis.anderson comcast.andthis.net> wrote in 
message news:gd07uh$2ckt$1 digitalmars.com...
I posted this comment already in the phobos/tango thread but I thought it 
might be of more general interest.

 With all the changes being discussed -- many of the breaking changes -- is 
 it time to move on to D version 3.0?

 It seems to me a natural division exists between 2.0, when we had to 
 choose between tango and phobos; and 3.0, when we got to use them both.

 Some of the other recent discussions here, template syntax, for example, 
 could fall on the other side of the 2.0/3.0 divide.

 I'm sure Walter and others have discussed when and how the move to 3.0 
 will occur. Just wondering if this important change should be a factor.

Maybe, but I'd hate to see the D1/D2 divide end up becoming a D1/D2/D3 divide.
Oct 13 2008
parent KennyTM~ <kennytm gmail.com> writes:
Nick Sabalausky wrote:
 "Paul D. Anderson" <paul.d.removethis.anderson comcast.andthis.net> wrote in 
 message news:gd07uh$2ckt$1 digitalmars.com...
 I posted this comment already in the phobos/tango thread but I thought it 
 might be of more general interest.

 With all the changes being discussed -- many of the breaking changes -- is 
 it time to move on to D version 3.0?

 It seems to me a natural division exists between 2.0, when we had to 
 choose between tango and phobos; and 3.0, when we got to use them both.

 Some of the other recent discussions here, template syntax, for example, 
 could fall on the other side of the 2.0/3.0 divide.

 I'm sure Walter and others have discussed when and how the move to 3.0 
 will occur. Just wondering if this important change should be a factor.

Maybe, but I'd hate to see the D1/D2 divide end up becoming a D1/D2/D3 divide.

This looks kinda like the Debian stable/testing/unstable branches.
Oct 13 2008
prev sibling next sibling parent reply Derek Parnell <derek psych.ward> writes:
On Mon, 13 Oct 2008 15:35:45 -0400, Paul D. Anderson wrote:

 I posted this comment already in the phobos/tango thread but I thought it
might be of more general interest.
 
 With all the changes being discussed -- many of the breaking changes -- is it
time to move on to D version 3.0?
 
 It seems to me a natural division exists between 2.0, when we had to choose
between tango and phobos; and 3.0, when we got to use them both.
 
 Some of the other recent discussions here, template syntax, for example, could
fall on the other side of the 2.0/3.0 divide.
 
 I'm sure Walter and others have discussed when and how the move to 3.0 will
occur. Just wondering if this important change should be a factor.

There is a sort of precedent. Windows 1.0 was a proof-of-concept edition, Windows 2.0 was forgettable, and it was not until Windows 3.0 that is became usable. -- Derek Parnell Melbourne, Australia skype: derek.j.parnell
Oct 13 2008
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
Derek Parnell wrote:
 On Mon, 13 Oct 2008 15:35:45 -0400, Paul D. Anderson wrote:
 
 I posted this comment already in the phobos/tango thread but I thought it
might be of more general interest.

 With all the changes being discussed -- many of the breaking changes -- is it
time to move on to D version 3.0?

 It seems to me a natural division exists between 2.0, when we had to choose
between tango and phobos; and 3.0, when we got to use them both.

 Some of the other recent discussions here, template syntax, for example, could
fall on the other side of the 2.0/3.0 divide.

 I'm sure Walter and others have discussed when and how the move to 3.0 will
occur. Just wondering if this important change should be a factor.

There is a sort of precedent. Windows 1.0 was a proof-of-concept edition, Windows 2.0 was forgettable, and it was not until Windows 3.0 that is became usable.

Wouldn't mind if those involved would make comparable amounts of money :o). Andrei
Oct 13 2008
parent reply Sean Kelly <sean invisibleduck.org> writes:
Andrei Alexandrescu wrote:
 
 Wouldn't mind if those involved would make comparable amounts of money :o).

Perhaps D should move to the Windows release naming model then. D 2008 ;-) Sean
Oct 13 2008
next sibling parent reply John Reimer <terminal.node gmail.com> writes:
Hello Sean,

 Andrei Alexandrescu wrote:
 
 Wouldn't mind if those involved would make comparable amounts of
 money :o).
 

2008 ;-) Sean

Is that 2008 AD ? :)
Oct 13 2008
parent Sean Kelly <sean invisibleduck.org> writes:
John Reimer wrote:
 Hello Sean,
 
 Andrei Alexandrescu wrote:

 Wouldn't mind if those involved would make comparable amounts of
 money :o).

2008 ;-)

Is that 2008 AD ? :)

In today's economy, all bets are off ;-) Sean
Oct 13 2008
prev sibling next sibling parent Robert Fraser <fraserofthenight gmail.com> writes:
Sean Kelly wrote:
 Andrei Alexandrescu wrote:
 Wouldn't mind if those involved would make comparable amounts of money 
 :o).

Perhaps D should move to the Windows release naming model then. D 2008 ;-) Sean

Enterprise Edition.
Oct 13 2008
prev sibling parent Derek Parnell <derek psych.ward> writes:
On Mon, 13 Oct 2008 15:17:56 -0700, Sean Kelly wrote:

 Andrei Alexandrescu wrote:
 
 Wouldn't mind if those involved would make comparable amounts of money :o).

Perhaps D should move to the Windows release naming model then. D 2008 ;-)

Actually, its been officially announced that the next Microsoft Opsys will be called "Windows 7", the same as its code name. -- Derek Parnell Melbourne, Australia skype: derek.j.parnell
Oct 14 2008
prev sibling next sibling parent reply Jason House <jason.james.house gmail.com> writes:
Paul D. Anderson Wrote:

 I posted this comment already in the phobos/tango thread but I thought it
might be of more general interest.
 
 With all the changes being discussed -- many of the breaking changes -- is it
time to move on to D version 3.0?
 
 It seems to me a natural division exists between 2.0, when we had to choose
between tango and phobos; and 3.0, when we got to use them both.
 
 Some of the other recent discussions here, template syntax, for example, could
fall on the other side of the 2.0/3.0 divide.
 
 I'm sure Walter and others have discussed when and how the move to 3.0 will
occur. Just wondering if this important change should be a factor.
 
 Paul

I'd hate to see D2 be permanently anti-tango, especially since Tango developers favor a stable language. I'd prefer to see druntime, the fix to dynamic closures, etc in D2
Oct 13 2008
parent Paul D. Anderson <paul.d.removethis.anderson comcast.andthis.net> writes:
Jason House Wrote:

 Paul D. Anderson Wrote:
 
 I posted this comment already in the phobos/tango thread but I thought it
might be of more general interest.
 
 With all the changes being discussed -- many of the breaking changes -- is it
time to move on to D version 3.0?
 
 It seems to me a natural division exists between 2.0, when we had to choose
between tango and phobos; and 3.0, when we got to use them both.
 
 Some of the other recent discussions here, template syntax, for example, could
fall on the other side of the 2.0/3.0 divide.
 
 I'm sure Walter and others have discussed when and how the move to 3.0 will
occur. Just wondering if this important change should be a factor.
 
 Paul

I'd hate to see D2 be permanently anti-tango, especially since Tango developers favor a stable language. I'd prefer to see druntime, the fix to dynamic closures, etc in D2

Good point. I think you're right.
Oct 13 2008
prev sibling next sibling parent Jesse Phillips <jessekphillips gmail.com> writes:
On Mon, 13 Oct 2008 15:35:45 -0400, Paul D. Anderson wrote:

 I posted this comment already in the phobos/tango thread but I thought
 it might be of more general interest.
 
 With all the changes being discussed -- many of the breaking changes --
 is it time to move on to D version 3.0?
 
 It seems to me a natural division exists between 2.0, when we had to
 choose between tango and phobos; and 3.0, when we got to use them both.
 
 Some of the other recent discussions here, template syntax, for example,
 could fall on the other side of the 2.0/3.0 divide.
 
 I'm sure Walter and others have discussed when and how the move to 3.0
 will occur. Just wondering if this important change should be a factor.
 
 Paul

Personally I see this a horrible reason to make a divide. Others have mentioned a 1/2/3 divide issue, but frankly I don't see that as avoidable. Look at how many options you have for a GCC versions in a Linux repository. I think DMD should handle many versions of itself a little better (conf file) but that is a different issue. The problem is, who will want to use 2.0? Currently a big problem is the "wild west" syndrome that it has. If this is released having 3.0 the Phobos/Tango merger, people will skip 2.0 to go for Tango. Don't get me wrong, we have many Phobos users; we really want to get rid of this divide as soon as possible, not make it permanent. On to the question of "time for a D3." Consider what happened with this first split. A stable branch (1.0) was to be created that would not allow "breaking changes" (new features are a special breaking change as it might not break past code). 2.0 became the test bed for new very different ideas that really change how the language worked. There had been many bug reports filed before the idea of a split came about. Many people did not think a version break would stop feature crepe of the already posted requests. This would be important in deciding what to split. Another thing to look at is reducing user choice. When someone is creating a new project, you want them to choose the latest release for it. You aren't likely to choose Java 1.4 over 1.6 however, I think in D's case even after a 2.0 release, we will likely see such a discussion being made. This will be the case if the user does not like the way const is done, and if the Tango merge is done in 3.0 that would be another reason. This should be avoided, but not a reason to leave out features in future versions. If a 3.0 is to be considered a clear line should be drawn and the line should not be a radical change for the foreseeable future i.e. when the split is created.
Oct 13 2008
prev sibling parent "Chris R. Miller" <lordsauronthegreat gmail.com> writes:
Paul D. Anderson wrote:
 I posted this comment already in the phobos/tango thread but I thought it
might be of more general interest.
 
 With all the changes being discussed -- many of the breaking changes -- is it
time to move on to D version 3.0?
 
 It seems to me a natural division exists between 2.0, when we had to choose
between tango and phobos; and 3.0, when we got to use them both.
 
 Some of the other recent discussions here, template syntax, for example, could
fall on the other side of the 2.0/3.0 divide.
 
 I'm sure Walter and others have discussed when and how the move to 3.0 will
occur. Just wondering if this important change should be a factor.
 
 Paul

I've always seen the library, be it Tango or Phobos, as separate and entirely different from the version of DMD. I've always been under the impression that the Phobos/Tango resolution wouldn't really involve changing the compiler or language at all - although maybe with the unified runtime someone will take advantage of this and add features like crazy since there will only be one runtime to update instead of two. I don't know about that point. My point is that I don't think that we should start tying the libraries to the compiler.
Oct 13 2008