5 ms·
> I'm convinced Rust will fade away like Scala precisely because criticism and bad experiences are met with poorly constructed straw men. It illustrates how imm
by Ygg2 4y ago
> I'm convinced Rust will fade away like Scala precisely because criticism and bad experiences are met with poorly constructed straw men. It illustrates how immature the language and community are if this is the best argument available.
I doubt it. Scala choices were directly dictated by JVM. No JVM language managed to outpace Java. Java usually adds most interesting features from other such langs and assimilates them.
Rust doesn't let underlying compiler dictate everything.
There is a huge risk in regards to complexity, but community has (so far) been vocal against such things. Yes, Rust community isn't a cult of hivemind pod people. Imagine my shock!
Honestly as a dev coming from higher levels langs (Java), being able to write sensible non-GC code and it not dying in segfaults, UB sheitfuckery, or null pointer bullshit is a gift. Plus no data races? Sign me up.
Scala gives you a better horse (Java + Haskell), Rust gives you a car with a seatbelt.
- infamouscow 4y agoI understand the technical merits of Rust and how it's distinct from the JVM. The point was non-technical merits matter just as much, if not more.
- Ygg2 4y agoTrue, but I already addressed it. So far Rust hasn't entered overly complicated spot for me. Yes, borrow checker is harsh. Lifetime's are a pain. But only way out by other languages are: A) Add GC/RC B) Sweep it under rug, and pray. It seems borrow checker is irreducible complexity. Scala otoh made Trait order implementation matter and allowed custom operators. Compared to those blunders, Rust mistakes are minor.
- 3836293648 4y agoSay that to ?const ?async. If the keyword generics group doesn't accept that they're wrong they've killed Rust.
- zozbot234 4y ago?const ?async is placeholder syntax. They'll bikeshed something better while stabilizing the language feature, much like the existing .await syntax which was chosen very late in development of async.
- 3836293648 4y agoNot according to their blog post yesterday. They were absolutely defending it as the only consistent and reasonable choice
- Ygg2 4y agoWhat? Where did you get that idea? I talked with them on Zulip, they were perfectly reasonable. Even on Reddit they consider alternative syntax like `print<?async, ?const>`. Issue is. They want code generation to solve coloring problem of async. I asked about using `#[maybe(async)]` syntax but they pointed that attribute macros have deficiencies. Can't differentiate on async-ness or lack of it, plus attribute macros lack exhaustiveness check that `match expr` afford.
- Ygg2 4y agoAnd community reacted unanimously against it. If they proceed blindly with it, then yes you will have a point.
- infamouscow 4y agoI don't think the non-technical critique has been addressed at all. It's been downplayed and dismissed to bring the discussion back to the technical accomplishments. What I'm saying is Rust's technical achievements aren't very useful if adoption isn't there. Adoption depends on getting the non-technical things right. Nothing has been said about how to address the pathology seemingly unique to Rust making it suffocatingly toxic. It's the only programming language in recent memory where people scour the Internet condemning people for writing software in any other language. Even when the software is written in Rust, if it's not to some mythical standard, the community will unleash a wave a hate like in the case of Actix. There's memes about the "Rust evangelist strike force" plaguing open-source software authors to "rewrite it in rust". I can't think of any other language that has anything similar. Shrugging this off is an attempt to diminish and minimize the damage, rather than acknowledging the problem. Presenting a false dichotomy solely on technical merits misses the big picture.
- Ygg2 4y ago> I don't think the non-technical critique has been addressed at all. But I talked about syntax already, what do you...? > Nothing has been said about how to address the pathology seemingly unique to Rust making it suffocatingly toxic. It's the only programming language in recent memory where people scour the Internet condemning people for writing software in any other language Social aspects aren't immutable facts of language, but exterior ever changing things. It's like finding a game having helpful community. Only for it to become toxic later as player count increases. Same can be possible in other direction if Rust becomes more professional/boring. And honestly, I don't care about arguing memes and one incident that was widely panned by everyone close to Rust. RIIR isn't something you get branded with when you write your first Hello World, but something actively discouraged. That said as someone that's neither here nor there, anti-Rust backlash is palpable and might work exactly to ingrain said "Evanglism Strike Force" mindset into it. I find myself defending it more, even though I just want to use it. And don't care too much about community.
- ebruchez 4y ago> Scala choices were directly dictated by JVM Initially, yes. But Scala has evolved beyond the JVM, with Scala.js [1] being rock-solid, and Scala Native [2] under development. Neither are truly hampered by the initial JVM roots of Scala. > Scala gives you a better horse Weird analogy ;) [1] https://www.scala-js.org/ https://www.scala-js.org/ [2] https://scala-native.org/en/stable/ https://scala-native.org/en/stable/
- Ygg2 4y ago> Neither are truly hampered by the initial JVM roots of Scala. I'm reminded of a talk ex-Scala guy had, where he rhetorically asked "Scala, if Java cut their nose... Gods what are you doing?!". Stuff like compareTo being an 32 bit int, rather than just 8 bit, because compatibility, and so forth. I doubt they got rid of those nitpicks. Although what pushed me of it was order dependent Traits and implicits everywhere. Plus Arcane type signatures. I haven't kept up with Scala since 2, but if it works for you, it works for you. > Weird analogy - Will get you to your destination, intact - Will shit everywhere (GC) - Knows few useful tricks (Type system) - Not made of metal (not low level)