June 12, 2017
Guillaume Piolat wrote:

> On Sunday, 11 June 2017 at 17:59:54 UTC, ketmar wrote:
>>> Well, no thanks.
>>> The very same strategy halved the community for D1/D2 split and almost killed D.
>>
>> as you can see, D is alive and kicking, and nothing disasterous or fatal happens.
>
> https://forum.dlang.org/search?q=%22D2%22+destroyed+author%3AWalter+author%3ABright&search=Search

so what? "nearly destroyed" != "destroyed". as i said, D is alive and ok, nothing fatal happens. backing fear of changes with "last time it almost destroyed us" won't do any good in the long term: it will ultimately end with having no changes at all, D will stagnate and die.

changing is a natural thing for evolution, even breaking change. evaluating was what done wrong/inoptimal, and improving on that it the thing that will keep D not only alive, but will make it better and better. otherwise, accumulated legacy will inevitably turn D into another C++, and somebody will create E (or something ;-). why don't create E outselves, and call it D3 instead?
June 11, 2017
On Sunday, 11 June 2017 at 22:53:44 UTC, ketmar wrote:
>
> so what? "nearly destroyed" != "destroyed". as i said, D is alive and ok, nothing fatal happens. backing fear of changes with "last time it almost destroyed us" won't do any good in the long term: it will ultimately end with having no changes at all, D will stagnate and die.
>
> changing is a natural thing for evolution, even breaking change. evaluating was what done wrong/inoptimal, and improving on that it the thing that will keep D not only alive, but will make it better and better. otherwise, accumulated legacy will inevitably turn D into another C++, and somebody will create E (or something ;-). why don't create E outselves, and call it D3 instead?

E already exists (https://en.wikipedia.org/wiki/E_(programming_language) + AmigaE), two things having the same name often doom one of them into obscurity (see SDLang, which originally was called SDL).

There were already a few changes in the language (use of static imports instead of directly accessing functions/libraries, etc), just as we're adding to the language, we can remove rarely used functions by first making them deprecated, then removing them altogether as time passes on.
June 12, 2017
solidstate1991 wrote:

> E already exists (https://en.wikipedia.org/wiki/E_(programming_language) + AmigaE), two things having the same name often doom one of them into obscurity (see SDLang, which originally was called SDL).
and there were several "D"s too. ;-)

> There were already a few changes in the language (use of static imports instead of directly accessing functions/libraries, etc), just as we're adding to the language, we can remove rarely used functions by first making them deprecated, then removing them altogether as time passes on.

sometimes it is hard or even impossible to change something and keep old feature still working. it also require considerably more efforts to support old and new feature set simultaneously. while D2 can continue evolving (and it surely will!), having D3, where keeping old code working is not a concern, can be useful.

nobody says that we should abandon D2 tomorrow and switch everything to D3. it's more about exploring new ways without constant pressure of "don't break the code" mantra.

don't get me wrong, tho: "don't break the code" is good. but it limits possible ways D can evolve (or greatly slows it all down). D3 can be "experimental research project", where some of the dreams can come true. it may won't even reach the state where it will replace D2, instead D2 may adopt some D3 features, and D3 will be scrapped (or restarted). there is nothing wrong with it. also, i don't expect D3 to be developed in "full speed" too.
June 12, 2017
On Saturday, 10 June 2017 at 23:30:18 UTC, Liam McGillivray wrote:
> D is a language with much promise, but it still has many problems that prevent it from being the great replacement for C++ that it was always meant to be.
>
> [...]

I anyone seeing the "i think"  "I think"...statements?

It's not something "you know". He doesn't mention "his" problem with GC.

I would like to know
June 13, 2017
On Sunday, 11 June 2017 at 17:59:54 UTC, ketmar wrote:
> Guillaume Piolat wrote:
>
>> On Saturday, 10 June 2017 at 23:30:18 UTC, Liam McGillivray wrote:
>>> I realize that there are people who want to continue using D as it is, but those people may continue to use D2.
>>
>> Well, no thanks.
>> The very same strategy halved the community for D1/D2 split and almost killed D.
>
> as you can see, D is alive and kicking, and nothing disasterous or fatal happens.
Yes, but could it have been a lot more alive and kicking, hadn't we shot ourselves in the foot with this D1/D2 split?

June 13, 2017
Sebastien Alaiwan wrote:

> On Sunday, 11 June 2017 at 17:59:54 UTC, ketmar wrote:
>> Guillaume Piolat wrote:
>>
>>> On Saturday, 10 June 2017 at 23:30:18 UTC, Liam McGillivray wrote:
>>>> I realize that there are people who want to continue using D as it is, but those people may continue to use D2.
>>>
>>> Well, no thanks.
>>> The very same strategy halved the community for D1/D2 split and almost killed D.
>>
>> as you can see, D is alive and kicking, and nothing disasterous or fatal happens.
> Yes, but could it have been a lot more alive and kicking, hadn't we shot ourselves in the foot with this D1/D2 split?

this question has no answer. can we do better if we will do everything right on the first try? of course!
June 13, 2017
On Tuesday, 13 June 2017 at 06:56:14 UTC, ketmar wrote:
> Sebastien Alaiwan wrote:
>
>> On Sunday, 11 June 2017 at 17:59:54 UTC, ketmar wrote:
>>> Guillaume Piolat wrote:
>>>
>>>> On Saturday, 10 June 2017 at 23:30:18 UTC, Liam McGillivray wrote:
>>>>> I realize that there are people who want to continue using D as it is, but those people may continue to use D2.
>>>>
>>>> Well, no thanks.
>>>> The very same strategy halved the community for D1/D2 split and almost killed D.
>>>
>>> as you can see, D is alive and kicking, and nothing disasterous or fatal happens.
>> Yes, but could it have been a lot more alive and kicking, hadn't we shot ourselves in the foot with this D1/D2 split?
>
> this question has no answer. can we do better if we will do everything right on the first try? of course!

My point precisely was that "not splitting D1/D2" might correspond to "doing things right".

June 13, 2017
Sebastien Alaiwan wrote:

> My point precisely was that "not splitting D1/D2" might correspond to "doing things right".

"not splitting" here means "we're stuck with D1". deprecation cycle of several years (not counting the time required to actually *start* the process) means "no evolution".

i must make myself clear here, i guess: i value "good language" way more than "stable language". i absolutely don't mind fixing my code if it makes it better/more clear/etc. while it's hard to sell "constantly evolving" language to Big Enterprise Wheels, not making breaking changes means cloning worst C++ feature. ;-)
June 13, 2017
On Tuesday, 13 June 2017 at 12:23:19 UTC, ketmar wrote:
> Sebastien Alaiwan wrote:
>
>> My point precisely was that "not splitting D1/D2" might correspond to "doing things right".
>
> "not splitting" here means "we're stuck with D1". deprecation cycle of several years (not counting the time required to actually *start* the process) means "no evolution".
>
> i must make myself clear here, i guess: i value "good language" way more than "stable language". i absolutely don't mind fixing my code if it makes it better/more clear/etc. while it's hard to sell "constantly evolving" language to Big Enterprise Wheels, not making breaking changes means cloning worst C++ feature. ;-)

Companies clearly value C++'s backwards compatibility. However, if there's one lesson from the D1/D2 or the Python 2/Python 3 split, it's that it's hugely disruptive (so much so that I find the idea of D3, at the moment, to be such an obviously terrible idea that I really wanted to avoid commenting on this thread). Nevertheless, C++ is still a constantly evolving language. C++14 looks a lot different from C++98. Maintaining backwards compatibility, however, has significantly increased the complexity.

Thus, I think there's a trade-off. Breaking changes that improve the language may be good in certain circumstances, but Walter/Andrei should try to get the buy-in from big D users beforehand (even with a depreciation cycle). Requiring some kind of broad support from big D users would mean that breaking changes only happen if the the costs of breaking changes are smaller than the improvement to the language.

June 13, 2017
On Tuesday, 13 June 2017 at 13:29:45 UTC, jmh530 wrote:

> Companies clearly value C++'s backwards compatibility. However, if there's one lesson from the D1/D2 or the Python 2/Python 3 split, it's that it's hugely disruptive (so much so that I find

The D1/D2 split was actually a unifier. It was the Phobos/Tango divide that was the problem. D2 healed that rift, brought us a single runtime that both libraries could share, improved Phobos, and was relatively easy for most projects to transition to (Sociomantic's experience was not common), and D1 was eventually retired. We're all better off for it. A vastly different situation than what happened with Python, where you find 2.x releases continuing on and some projects requiring one or the other.

That said, at this stage, I can't imagine a D2/D3 transition being anything other than negatively disruptive.