www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - [OT] Scala Resurrection

reply ryuukk_ <ryuukk.dev gmail.com> writes:
How a community is able to diagnose its issues and shortcomings, 
work on them and plan for the future!

There is lot to learn from this post, i think it can be helpful 
and useful

https://degoes.net/articles/scala-resurrection
Jan 25 2023
next sibling parent reply bachmeier <no spam.net> writes:
On Wednesday, 25 January 2023 at 14:57:01 UTC, ryuukk_ wrote:
 How a community is able to diagnose its issues and 
 shortcomings, work on them and plan for the future!

 There is lot to learn from this post, i think it can be helpful 
 and useful

 https://degoes.net/articles/scala-resurrection
Oh, I think this community has done a more than sufficient job of documenting the shortcomings, and probably even invented a few that aren't there. It always comes back to the same problem - a lack of labor.
Jan 25 2023
parent reply RTM <riven baryonides.ru> writes:
On Wednesday, 25 January 2023 at 19:35:10 UTC, bachmeier wrote:

 It always comes back to the same problem - a lack of labor.
Lack of labor is a second-order symptom. First-order symptom is a lack of motivation. The cause is this: D2 can’t be fully fixed because of backwards compatibility (important clients, big codebase). D3 can’t be created because of D/D2/Tango/Phobos PTSD. Stalemate.
Jan 25 2023
next sibling parent "H. S. Teoh" <hsteoh qfbox.info> writes:
On Wed, Jan 25, 2023 at 08:31:13PM +0000, RTM via Digitalmars-d wrote:
 On Wednesday, 25 January 2023 at 19:35:10 UTC, bachmeier wrote:
 
 It always comes back to the same problem - a lack of labor.
Lack of labor is a second-order symptom. First-order symptom is a lack of motivation. The cause is this: D2 can’t be fully fixed because of backwards compatibility (important clients, big codebase). D3 can’t be created because of D/D2/Tango/Phobos PTSD. Stalemate.
IMO, Tango/Phobos PTSD is exaggerated. The Tango/Phobos incident hasn't mattered for at least a decade, and it actually sounds kinda funny when people insist on bringing it back up from the dead. I would totally support D3. As long as there's some kind of backward compatibility mechanism (something akin to Rust editions) old code would continue to work. And some code is worth breaking, if the breakage would improve the quality of the code. T -- A mathematician learns more and more about less and less, until he knows everything about nothing; whereas a philospher learns less and less about more and more, until he knows nothing about everything.
Jan 25 2023
prev sibling parent reply bachmeier <no spam.net> writes:
On Wednesday, 25 January 2023 at 20:31:13 UTC, RTM wrote:
 On Wednesday, 25 January 2023 at 19:35:10 UTC, bachmeier wrote:

 It always comes back to the same problem - a lack of labor.
Lack of labor is a second-order symptom. First-order symptom is a lack of motivation. The cause is this: D2 can’t be fully fixed because of backwards compatibility (important clients, big codebase). D3 can’t be created because of D/D2/Tango/Phobos PTSD. Stalemate.
There is a ton of work that can be done. Everyone instantly jumps to language changes, which frankly are irrelevant in terms of D seeing wider adoption. The language is already good enough. Maybe not for every use case, but definitely good enough to see much heavier usage. None of the things you've listed explains problems with the tooling, lack of blogging and YouTubing about D, lack of certain libraries, etc.
Jan 25 2023
parent reply ryuukk_ <ryuukk.dev gmail.com> writes:
On Wednesday, 25 January 2023 at 23:45:58 UTC, bachmeier wrote:
 There is a ton of work that can be done. Everyone instantly 
 jumps to language changes, which frankly are irrelevant in 
 terms of D seeing wider adoption. The language is already good 
 enough. Maybe not for every use case, but definitely good 
 enough to see much heavier usage.
There are some language features that should not be neglected, the ones that are considered obvious to have in most modern languages, to name just one: Tagged Union with Pattern matching Having to still advocate for it in and still seeing this much resistance in 2023 is kinda sad, to be honest
Jan 25 2023
parent reply Siarhei Siamashka <siarhei.siamashka gmail.com> writes:
On Thursday, 26 January 2023 at 03:09:47 UTC, ryuukk_ wrote:
 On Wednesday, 25 January 2023 at 23:45:58 UTC, bachmeier wrote:
 There is a ton of work that can be done. Everyone instantly 
 jumps to language changes, which frankly are irrelevant in 
 terms of D seeing wider adoption. The language is already good 
 enough. Maybe not for every use case, but definitely good 
 enough to see much heavier usage.
There are some language features that should not be neglected, the ones that are considered obvious to have in most modern languages, to name just one: Tagged Union with Pattern matching Having to still advocate for it in and still seeing this much resistance in 2023 is kinda sad, to be honest
I'm not sure what kind of resistance you are talking about, but it would be useful to have some reassurance that the existing language features (which are already "good enough" as stated by bachmeier) won't be broken. There are some useful language features that are missing. For example, I want to be able to return multiple values from a function and assign them to multiple variables, which is a feature that is implemented by pretty much every other programming language (even C++17 in the form of "structured binding"). But if somebody says that we can have it in D only in a way that breaks the existing software, then this won't make me happy and you will see some "resistance". Today D2 is useful for developing software. But it's like building a house on a sleeping volcano. Even if everything is relatively calm right now, nobody knows when it is going to erupt and cause massive damage to the existing ecosystem. Also here's a quote from the linked Scala post: "As part of this transformation, Scala 3 needs to commit to backward compatibility, like Java, Go, and all other commercial programming languages. There can never again be a “Scala 3”-style boil-the-ocean, greenfield language rewrite. It’s time for the language to stabilize, and for the focus to shift to commercial interests, including bug fixes, improved performance, enhanced tool support, and optimizing."
Jan 26 2023
next sibling parent FeepingCreature <feepingcreature gmail.com> writes:
On Thursday, 26 January 2023 at 11:30:02 UTC, Siarhei Siamashka 
wrote:
 Today D2 is useful for developing software. But it's like 
 building a house on a sleeping volcano. Even if everything is 
 relatively calm right now, nobody knows when it is going to 
 erupt and cause massive damage to the existing ecosystem. Also 
 here's a quote from the linked Scala post:

     "As part of this transformation, Scala 3 needs to commit to 
 backward
     compatibility, like Java, Go, and all other commercial 
 programming
     languages. There can never again be a “Scala 3”-style 
 boil-the-ocean,
     greenfield language rewrite. It’s time for the language to 
 stabilize,
     and for the focus to shift to commercial interests, 
 including bug fixes,
     improved performance, enhanced tool support, and 
 optimizing."
As an employee at a commercial interest, I honestly disagree. D has too much stuff. It needs to slim things down and commit to a cohesive vision. If that means breaking our code, we'll deal. I see it as less building a house on a volcano and more joining a colony set in a toxic waste dump. If the house is irradiated and the kitchen chairs are made out of asbestos, by golly we'll have to tear it down. So long as it improves the health of the whole, I'm all for it. (Of course, it's a question of cost-benefit.)
Jan 26 2023
prev sibling next sibling parent Ki Rill <rill.ki yahoo.com> writes:
On Thursday, 26 January 2023 at 11:30:02 UTC, Siarhei Siamashka 
wrote:
 Today D2 is useful for developing software. But it's like 
 building a house on a sleeping volcano. Even if everything is 
 relatively calm right now, nobody knows when it is going to 
 erupt and cause massive damage to the existing ecosystem. Also 
 here's a quote from the linked Scala post:

     "As part of this transformation, Scala 3 needs to commit to 
 backward
     compatibility, like Java, Go, and all other commercial 
 programming
     languages. There can never again be a “Scala 3”-style 
 boil-the-ocean,
     greenfield language rewrite. It’s time for the language to 
 stabilize,
     and for the focus to shift to commercial interests, 
 including bug fixes,
     improved performance, enhanced tool support, and 
 optimizing."
That's what I would like D to focus on. Stabilizing itself, enhancing its features and fixing bugs. I have always thought that new features are too easily accepted into the language. We do not need more bureaucratic processes, but rather a measure that will segregate what is needed or fits the language and what does not, no matter how convenient that awesome feature might be. But I guess it has to do with the philosophy of D; although, what's the philosophy of D? Need to do some reading... --- I have never written any compiler code, so I maybe biased since I do not know the state of D in that realm... But, what I would like to see is a gradual progression and improvement of D: D2.99 => D3.00 No jumping from D2 to D3 and breaking existing code. We do have a deprecating cycle/procedure, don't we? Let's gradually improve. A few quotes: ``` The language should be as simple as possible, then you should be able to do complex things with it. - Eskil Steenberg. Bottomless wonders spring from simple rules repeated without end. - Benoit Mandelbrot. C is a great example of this. So many complex and powerful systems created that still run the world today. If C could, D can too. Valuation can change over time. I don't remember where it came from, but it reminds me, what we build should be robust and withstand time; just like C did it, but the D way. Everything that works is pretty simple. Confidence is competence - actually knowing what you're doing. I interpret this quote this way: D must become competent at a one or two things before people become confident in the language. I think D does great on the GC part. To be the best is the lonely rocky road. You need to have the passion to be with it both for ups and downs. - Kunal Desai. Well, D is the best. So it's natural we struggle a little, but it gets better over time. Don't style-drift. Pick what works for you and practice it perfect. Don't be temped to go elsewhere. - Jason Leavitt. We shouldn't be torn apart by the plethora of new features and techniques that are devised nowadays. D was innovating years ago, maybe it's time for D shift its focus on improving the ecosystem, whilst watching what happens on the other side of a river, and gradually adopt what works. Because: Either way, those who try to follow the trends have on their hard drives dozens of scripts that they can't run anymore. ``` --- Thank you for your hard work, D dev team!
Jan 26 2023
prev sibling parent Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Thursday, 26 January 2023 at 11:30:02 UTC, Siarhei Siamashka 
wrote:
 There are some useful language features that are missing. For 
 example, I want to be able to return multiple values from a 
 function and assign them to multiple variables, which is a 
 feature that is implemented by pretty much every other 
 programming language (even C++17 in the form of "structured 
 binding"). But if somebody says that we can have it in D only 
 in a way that breaks the existing software, then this won't 
 make me happy and you will see some "resistance".
I believe tuples and structured binding in C++ is just syntactical sugar over returning a struct, so I don't think it should be considered a breaking change. Anyway, the landscape is changing, I think for many programmers baseline. So for a language to stand out it either has to match the most useful features of those languages or add something truly unique. experience too, so that raises the bar for all other languages. The seemingly ever-increasing use of cloud/GPU for heavy lifting makes that more pronounced too. And this trend will continue as GPUs and compilers targeting GPUs become more and more flexible.
Jan 29 2023
prev sibling parent Bienlein <jeti789 web.de> writes:
On Wednesday, 25 January 2023 at 14:57:01 UTC, ryuukk_ wrote:
 How a community is able to diagnose its issues and 
 shortcomings, work on them and plan for the future!

 There is lot to learn from this post, i think it can be helpful 
 and useful

 https://degoes.net/articles/scala-resurrection
To me Scala is the perfect example of how you can run into self-induced mental overload caused by an overly complicated programming language that tries to do too many things till you in the end start to believe that a programming language is the essence of life. D has a much better feature balance than Scala. Besides, Scala 3 is a good example of how a new language version can wrack the whole language.
Jan 26 2023