D Editions
Federico
uncino at proton.me
Fri Jun 7 15:01:03 UTC 2024
On Friday, 7 June 2024 at 00:53:51 UTC, Atila Neves wrote:
> On Thursday, 6 June 2024 at 04:21:23 UTC, Federico wrote:
>> On Thursday, 30 May 2024 at 18:31:48 UTC, Atila Neves wrote:
>>> https://github.com/atilaneves/DIPs/blob/editions/editions.md
>>>
>>> Destroy!
>>
>>
>> I hope you will tolerate this unsolicited intrusion of mine,
>
> There's a "Destroy!" right there, so I can't see how the
> "intrusion" would have been unsolicited. ;)
>
>> Let me explain: the primary requirement for a programming
>> language is not its flexibility, power, ease of learning, etc.
>> No, the primary requirement is its stability and the certainty
>> that code written for a release will be compiled by all
>> compilers and libraries that support it.
>
> I agree that should be a goal.
>
>> And this is what makes D unusable (and indeed practically
>> unused).
>
> What makes you think that? Especially since in a world where
> those things are true I wouldn't have my current job(s).
>
> As soon as it is born, a fork of its system library...
>> as soon as it starts to receive support from major IDEs, a
>> fork of the language. Now I see your willingness to make it
>> "dynamically scalable"... my friends, this way, you're going
>> nowhere.
>>
>> Let's talk about the initiative related to this thread: it
>> doesn't work.
>> It's not acceptable that using the same language, I would
>> write code that wouldn't be compiled by the machine of the
>> programmer at the desk next to mine. This would be possible if
>> I were programming in C and he in D, but if we both work in
>> Dv2, the language standard must be the same for everyone.
>
> I agree. What in the proposal makes you think that it wouldn't
> work?
>
>> Of course, there can be a Dv3, Dv4... Dv2001, but someone has
>> to standardize each version and, once done, there must be a
>> freeze that prevents changes (except for debugging).
>
> Those would be editions.
>
>> From experience, I would find it very difficult to convince a
>> company to use code written in D.
>
> I would also find it difficult to convince most companies to
> use Haskell or Clojure, but I'm not sure how that's relevant.
Unsolicited because, having abandoned the study of this language,
I am not part of the community. Abandoned with great regret, I
must add.
I am a very concrete person, Atila, so I judge things by
results and not by potential, or at least I do so when enough
time has passed to say that a final assessment can be made.
Now, should D have achieved significant penetration, at least
in terms of potential? Absolutely yes, as I have already said,
this language represents the natural evolution of C and is
suitable for any field.
Of course, there are some incomprehensible choices, but no
one is forced to use those features. The "core" of the language
is what any C programmer would want to have in their hands...
Bright did an extraordinary job!
And yet it did not happen. The penetration of D is modest to
say the least, despite being the ideal candidate for the
migration of C programmers seeking a more modern environment
without significantly sacrificing efficiency already two decades
ago, this affirmation did not happen.
It is correct to say that D has underperformed its potential.
And we must not think that we C programmers did not desire an
evolution of the tool. Many switched to C++ (not me because I
find it inelegant and very inefficient) and more recently to
Rust, in this case deservedly.
And here begins D's problem: D is superior to C++, it is more
elegant, more efficient, and its implementation of the
object-oriented paradigm is more "natural" than what we can find
in C++. And yet there was almost no migration from C/C++ to D!
Why? The first serious blow came with the Phobos-Tango affair.
Incomprehensible!
No one likes everything about the official libraries of C,
just as I imagine is the case with any other language, but for
this reason, no one wakes up tomorrow morning and creates a fork.
What happens is the addition of other libraries while leaving the
official ones unchanged.
There is no "stdlib_v2" that implements functions with syntax
and semantics different from the standard stdlib.h.
Let's come to the present day.
D finally acquires support from the professional development
environment for Microsoft, which is not Visual Studio Code but
Visual Studio Pro/Enterprise, the plugin for the other
professional programming environment on Linux, the Jetbrains
IDEs, starts to work... and what does your community do? A nice
fork of the language! Instead of writing E, which would be
rational, they start developing modifications to the main
language. And that's not all, because the maintainer of the
Jetbrains plugin declares on GitHub that he wants to follow
OpenD. So we will have a D language for Windows and a D language
for Linux. Fantastic, ideal for protecting software investments!
At that point, I, a novice language student, come here to the
official forum to try to understand what is happening, and I find
this magnificent thread discussing the dynamic scalability of the
language.
The only possible reaction: put D aside, albeit with much
regret.
Why this would not work I have explained: if you want to
safeguard investments, there cannot be "dynamic evolution." The
correct (and accepted by companies) way to evolve a language is
to convene a conference at intervals of 3 to 6 years, more
precisely when there are new developments in the computer
paradigm that render the previous version obsolete, find a
synthesis of the various proposals, and produce ONE document that
describes the next step to which ALL compilers claiming
compliance with that version must adhere.
It is true, there are successful languages that do not follow
this "discrete" evolution scheme, such as C#/.NET Framework and
the already mentioned Rust. But there is a notable difference:
the governance and/or the strength given by the already acquired
adopter base.
C# means Microsoft, just as Swift translates to Apple, Go to
Google, and so on.
In these cases, it is the weight of the company behind the
language that ensures both the critical mass of users and the
security of the path taken.
Rust's story is a bit different. Rust was widely adopted
because it seriously addressed security needs just when software
security was experiencing the worst crisis in its history. In
this case, it is the mass of its users that guarantees both the
future and the support in development tools (with the absence of
Visual Studio because Microsoft certainly does not view it
sympathetically).
Now Atila, despite its not short lifespan an
its undeniable qualities, D does not find itself in any of
those fortunate conditions. On the contrary, it seems to me, it
still has to offer developers a reason for its adoption, which
certainly cannot pass through uncertainty about the path followed.
I apologize for having made it unbearably long.
More information about the dip.ideas
mailing list