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.
Virtually every HN thread for years has comments condemning C and C++ developers. Not a single one of those lunatics seems to understand most C and C++ developers have managers and company policies they must navigate. What do you think is going to happen when someone gives this straw man to their boss?
If people are going to be demonized for trying Rust and switching to something else, for whatever reason, the net effect will be people will avoid Rust and find something nicer like Swift, Nim, Pony, and Zig.
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.
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/ [2] https://scala-native.org/en/stable/
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)
The point was non-technical merits matter just as much, if not more.
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.
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.
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.
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.