November 18, 2021

On Thursday, 18 November 2021 at 13:29:59 UTC, Adam D Ruppe wrote:

>

It isn't like D1 was some stable target and D2 was a radical change in development. No, D1 came out only 6 months before D2.

Well, IIRC, the old D1 website made a point of D1 being a simplified C++ family language, and having no templates was essential to that simplicity philosophy. That is the impression I got.

I felt that Walter tried to collect the most common patterns he felt people used in C++ (right or wrong) and tried to make those patterns simpler in D1 than in C++.

D2 was a pretty radical change in philosophy in my opinion.

November 18, 2021
On Thursday, 18 November 2021 at 14:05:37 UTC, Ola Fosheim Grøstad wrote:
> Well, IIRC, the old D1 website made a point of D1 being a simplified C++ family language, and having no templates was essential to that simplicity philosophy.

D1 has templates its entire life. Remember, D1 was created just a few months before D2.

D itself got templates in more-or-less the modern form we have today in January 2004, release #77.

It had templates in any form since D 0.40, released Sep 8, 2002. So even if you incorrectly pretend "D1" = any D version prior making strings immutable (which was D 2.06; Oct 2007. Jan 2007 is when D1 came out btw), it is still *almost* accurate to say D has always had templates, since D's initial public release was December 2001, less than a year before templates were added.

It is true that Walter was skeptical about templates in the olden day, but it had nothing to do with D2.

> D2 was a pretty radical change in philosophy in my opinion.

The history is easy to look up, you don't need to have uninformed opinions.
November 18, 2021

On Thursday, 18 November 2021 at 14:23:35 UTC, Adam D Ruppe wrote:

>
  1. So even if you incorrectly pretend "D1" = any D version prior making strings immutable (which was D 2.06; Oct 2007.

So you want me to call it D0.

>

It is true that Walter was skeptical about templates in the olden day, but it had nothing to do with D2.

Ok. Call it D1+ then.

I am referring to the initial philosophy of D being much simpler than C++. I am referring to why I picked up D initially. And how Walter did communicate that simplicity in his messaging on the website.

>

The history is easy to look up, you don't need to have uninformed opinions.

Ok, but that does not really matter. Does it? D1+ is template heavy. There has been a significant change in philosophy and complexity.

That is my viewpoint and opinion. You may claim that it is uninformed, but my opinion is not about versioning or technicalities, it is about how the perception of complexity in the D language has changed over time. Basically a usability perspective.

November 18, 2021
On Thursday, 18 November 2021 at 14:23:35 UTC, Adam D Ruppe wrote:
> On Thursday, 18 November 2021 at 14:05:37 UTC, Ola Fosheim Grøstad wrote:
>> [...]
>
> D1 has templates its entire life. Remember, D1 was created just a few months before D2.
>
> D itself got templates in more-or-less the modern form we have today in January 2004, release #77.
>
> It had templates in any form since D 0.40, released Sep 8, 2002. So even if you incorrectly pretend "D1" = any D version prior making strings immutable (which was D 2.06; Oct 2007. Jan 2007 is when D1 came out btw), it is still *almost* accurate to say D has always had templates, since D's initial public release was December 2001, less than a year before templates were added.
>
> It is true that Walter was skeptical about templates in the olden day, but it had nothing to do with D2.
>
>> [...]
>
> The history is easy to look up, you don't need to have uninformed opinions.

Adam is right, D2 big shift was all about const/immutable for concurrency, as concurrency at that time was the main opportunity goal not to be missed.

/P

November 18, 2021

On Thursday, 18 November 2021 at 15:13:59 UTC, Paolo Invernizzi wrote:

>

Adam is right, D2 big shift was all about const/immutable for concurrency, as concurrency at that time was the main opportunity goal not to be missed.

That is probably technically correct. I've always used D1 to refer to "simple D" and D2 to refer to modern D maximising meta-programming. Never seen "D0" used anywhere before, but if that is needed to avoid noise, then so be it. Let me use that from now on. (You usually include version 0.x in the first version of a language, so this is a very odd thing to require.)

Vision 1: simple language that can compete with C++ in performance

Vision 2: language that can outdo C++ in meta-programming

There is a drastic shift in complexity and development focus. I was attracted to "Vision 1", not "Vision 2". The language I started to use followed "Vision 1", not "Vision 2". "Vision 1" could have reached a polished state if "Vision 2" had not come along.

I am perplexed that anyone could disagree with this viewpoint.

November 18, 2021
On Thursday, 18 November 2021 at 15:29:24 UTC, Ola Fosheim Grøstad wrote:
> On Thursday, 18 November 2021 at 15:13:59 UTC, Paolo Invernizzi wrote:
>> Adam is right, D2 big shift was all about const/immutable for concurrency, as concurrency at that time was the main opportunity goal not to be missed.
>
> That is probably technically correct. I've always used D1 to refer to "simple D" and D2 to refer to modern D maximising meta-programming. Never seen "D0" used anywhere before, but if that is needed to avoid noise, then so be it. Let me use that from now on. (You usually include version 0.x in the first version of a language, so this is a very odd thing to require.)
>
> Vision 1: simple language that can compete with C++ in performance
>
> Vision 2: language that can outdo C++ in meta-programming
>
> There is a drastic shift in complexity and development focus. I was attracted to "Vision 1", not "Vision 2". The language I started to use followed "Vision 1", not "Vision 2". "Vision 1" could have reached a polished state if "Vision 2" had not come along.
>
> I am perplexed that anyone could disagree with this viewpoint.

I'm here since a LONG time [1] and at that time pre D1 was already used in production.

Walter pragmatic way of moving shined in the early stage, but early stage is the moment to experiment things. So you are right, *that* D was the simple language that could compete with C++, given the state of C++ (and processing power) in early 2000.

D2 had a vision, the D Programming Language. Something went wrong with it, something went really really well, and I was for a long time on the "break the compatibility" bandwagon and "fix the language".

Nowadays I agree with Adam, D is in a stagnant history phase, not that is bad (see Elm, for example), it's an opportunity, leverage it. Just stop experimenting, and go for D2 as LTS as it is.

[1] https://forum.dlang.org/post/40BB3D47.9030007@inwind.it


November 18, 2021

On Thursday, 18 November 2021 at 16:05:53 UTC, Paolo Invernizzi wrote:

>

I'm here since a LONG time [1] and at that time pre D1 was already used in production.

Aye, I didn't look at the forums when I used D first. I am more like Abdulhaq, interested, try out, interesting, but cannot use it right now, take break, try it again, but cannot use it right now... etc. I think this could be a quite common pattern for D users (not on the forum).

>

Walter pragmatic way of moving shined in the early stage, but early stage is the moment to experiment things. So you are

If you keep complexity in the design low then you can get quite a long way by going by intuition based on experience, but once the type system is starting to get complex intuition becomes insufficient.

The challenge of language design increases in a nonlinear fashion with ambition.

>

D2 had a vision, the D Programming Language. Something went wrong with it, something went really really well, and I was for a long time on the "break the compatibility" bandwagon and "fix the language".

Nowadays I agree with Adam, D is in a stagnant history phase, not that is bad (see Elm, for example), it's an opportunity, leverage it. Just stop experimenting, and go for D2 as LTS as it is.

Fair enough. I guess that is what Abdulhaq asked for.

For me personally, a language optimized for WASM would be nice, but that might end up being another language than D. WASM will be more important now that Safari also supports WebGL2, I think. (online games etc)

November 18, 2021

On Tuesday, 16 November 2021 at 08:55:27 UTC, Abdulhaq wrote:

>

Is there a set of features that, when fully working, will mean that D2 is now finished? Or will it forever be in a state of ongoing feature development?

We all know that properly finishing and polishing the last 10% of a software project takes 90% of the time. Is there a timescale for that? What platforms will it support?

What is an example of a successful language that would stop feature development?

If D would stop feature development, it wouldn't solve the "billion posts" problem of people not vested in D complaining loudly in the D forums.

November 18, 2021
On Thu, Nov 18, 2021 at 05:21:40PM +0000, Guillaume Piolat via Digitalmars-d wrote:
> On Tuesday, 16 November 2021 at 08:55:27 UTC, Abdulhaq wrote:
> > Is there a set of features that, when fully working, will mean that D2 is now finished? Or will it forever be in a state of ongoing feature development?
> > 
> > We all know that properly finishing and polishing the last 10% of a software project takes 90% of the time. Is there a timescale for that?  What platforms will it support?

Even C has not stopped evolving. And C++.  Why should we stop now?  The time when D stops evolving is the time it's dead.


> What is an example of a successful language that would stop feature development?
> 
> If D would stop feature development, it wouldn't solve the "billion posts" problem of people not vested in D complaining loudly in the D forums.

I suspect these are just the vocal minority. The rest of the happy D users are too busy actually writing code than debating on the forums.


T

-- 
Meat: euphemism for dead animal. -- Flora
November 18, 2021

On Thursday, 18 November 2021 at 17:21:40 UTC, Guillaume Piolat wrote:

>

What is an example of a successful language that would stop feature development?

I think it is a more fair question to ask for an example of a successful system level language without a polished stable branch?

I mean modern C++ compilers are pretty polished. It may take a year to get there after the ISO standard is published, but when it is done, the compiler is shiny with bells and whistles (more compiler options than you wish for).