On Friday, 8 March 2013 at 21:07:23 UTC, Jakob Ovrum wrote:
On Friday, 8 March 2013 at 20:07:50 UTC, Dicebot wrote:
Opinions/proposals?
I completely agree that the needs of users who want stability
over everything are not being met. There's no way to choose to
get just the updates that don't break code (such as
non-breaking bug fixes), and I think you're right in that there
should be a way to do that.
However, I just want to make clear that there's another
(probably rather big) camp out there: the camp that thinks the
current D platform needs a lot of improvement and are more than
willing to accept breaking improvements.
I want more language features to be implemented and cleaned up.
I want Phobos to be changed, cleaned up, trimmed as well as
expanded. All this regardless of the cost of breaking code. I
don't mind fixing broken code if the replacement code is simply
better.
Thankfully, both the language and standard library are
currently being improved in such ways, but not without a fair
amount of inertia from parts of the community (particularly
from Walter) who want stability at all costs.
For example, I don't think the current std.process is adequate
at all and it would feel like a defeat if we have to name the
new one std.process2 and have it live alongside the old trash
(unless it's temporary). What do you think new users will think
when they see or hear about the story around this? Many other
standard modules are in the same position or are going to be in
the same position at some point in the foreseeable future.
I just hope we can find a way to satisfy both camps, both
ensuring the viability of the language at present by providing
a stable interface, as well as securing the future of the
language by iteratively improving upon it without compromising
at every turn. Having LTS releases might be a good way to do
that.
Personally I think we need to consider D3 as breaking. We can
leave out any major changes till then or at least that would be
nice. That way we can use D2 for LTS once we begin on D3.
How ever this will bring back e.g. the old python 2.x vs 3.x
divide which would be a shame. But at the same time it'll mean we
can do some big stuff that would just not be acceptable in
breaking old projects.