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