justme wrote:
grauzone Wrote:
bearophile wrote:
BCS:
A though on the comma operator: if the comma operator were
defined to give a tuple type and be implicitly castable to any
suffix of it's self, then you could get both the comma
expression usage that Walter wants as well as all the fun
things that tuple expressions give.
D2 has enough warts now, so it's much better to not add some
more. Languages must be tidy, when possible. It's often better to
not have a feature that having a dirty one.
I think in this case, it's more about cleaning up and polishing,
than adding "warts".
The big danger is, that this may require incompatible language
changes, which won't be possible anymore after D2. D3? Anyone who
talks about D3 must be kidding.
On the other hand, one could introduce "fixed tuples" as a new feature,
that doesn't touch the old tuples. It would be annoying, but allows for
perfect backwards compatibility.
So D3 won't ever appear? At least in many open source projects the
final released is tagged one to two weeks before the final release.
Distributions have then time to repackage the release. Meanwhile, the
core developers are already enthusiastically implementing wild new
features after a long feature freeze.
D3 would just mean "incompatible to D2". The "final" version of D1 (dmd
1.000) was released on Jan 2, 2007, and the first version of D2 (dmd
2.000) on Jun 17, 2007. Can't let that happen again.
But adding features after finalization in a backward compatible way
would be nice. Other languages can do it too, why not D?
It's similar kind of tick-tock as Intel has with their CPU line (1
smaller process -> 2 improved core -> goto 1). In successful software
projects they have alpha/beta period, feature freeze, stabilization
period, release, new alpha/beta period etc. Concurrently new bugfix
releases come out just like with D. I haven't heard of new features
lately so D2 must be stabilizing now.
That isn't the case. Have a look at the "New/Changed Features" section
in the changelog: http://www.digitalmars.com/d/2.0/changelog.html