On Wednesday, 2 May 2012 at 01:11:52 UTC, Alex Rønne Petersen
wrote:
On 02-05-2012 03:08, ixid wrote:
The idea of D3 is a worrying one- it suggests a number of
things that
would not be good for the success and adoption of the
language. That the
language is experimental and more of a pet project, that D2
has a
shelf-life and will be abandoned. I can see D going in two
directions:
it can gradually grow and progressively gain areas where it's
the
standard choice or it will be a fairly small community of fans
of an
eternal language project. Python 2 and 3 has been a very messy
split,
while languages with a greater sense of continuity do better
for it in
my view, having one standard version of that language.
Breaking changes
may be desirable but I don't think labelling that as v2/v3 is
a good
idea, make it one thing with one suggested version.
I agree wholeheartedly. This whole "D3" excuse for not fixing
design issues in the language is going to hurt us in the long
run.
What are the aims of D3 that aren't aims of D2? What could be
done then
that can't be done now? Wouldn't it be better to make breaking
changes
sooner rather than later?
Yes and no. In theory, it's good to stabilize the language now
and make a new version of it later which has breaking changes.
In practice, that's annoying as hell. We've already seen how
slow the transition from D1 to D2 is (not was; it's still
happening!). D2 to D3 is going to be even slower (see in
particular your Python 2 vs 3 example) simply because more and
more people are going to be using D2 and therefore can't afford
to port their applications to D3.
Honestly I think that the big problem going from D1 -> D2 was the
issues with Tango. Hell, Tango in general seemed to just cause
problems, what with the incompatible runtime and all.
D3 would be fine, iff it was easy to port D2 across and easy to
continue using D2 code. A big problem with Python2 -> Python3 is
the fact that it is a nightmare to have both running side-by-side.
I don't really think that D3 is a good idea, it would probably be
better to gradually deprecate code going forward and replace the
broken syntax and non backwards-compatible code.
Another useful could be to have a pragma(version, 2) so the
compiler compiles with version 2 rules, no porting needed, just a
single line near the top.
--
James Miller