Hacker News new | ask | show | jobs
by hurril 22 days ago
This rests entirely on the same same sort of conservative attitude towards new experiences that holds the other half of the development world back. The Java world. People generally do not want to learn new things, they want "faster horses", which incidentally is what C# and Java is these days.

This is why we can't have nice things.

Java with Streams and "functions" is a lot better than what I left behind 15 years ago. But it is still extremely primitive compared to what F#, Rust and Scala offers. And I know this because I have spent 10+ years EACH using all of these in anger. So 20+ years.

1 comments

Agreed it is the "We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp." approach.

Thing is, for 99% of corporate software, it hardly makes a difference, even more so with AI generated stuff going forward.

So yeah, we can't have nice things, especially when money and profit are part of it.

This is just not true, the last bit you say. That is the same old trope about F#, Rust or Scala being niche, things people that don't have to earn money or feed children can do. I worked 100% in those languages from 2012 through 2023.

But sure, with AI, maybe this will matter less because people don't care about the code anymore.

I would not place Rust in the same bucket as Scala or F# in terms of industry adoption.

F# is as it is.

Scala in 2026, especially after Scala 3, isn't doing great either.

Most Scala companies, nowadays also do Java and Kotlin, and in countries like Netherlands, according to discussions on Reddit, most consulting offers seems to have vanished.

Rust hit jackpot with the adoption across all major OS vendors and hyperscalers, being slowly certified for deployment into high integrity computing, and landing on the Linux kernel.

However even with all that, just look at Android, where Google proudly talks about their Rust adoption, yet Rust is not officially supported for app development, Java and Kotlin are, with NDK still only allowing C and C++, and that is mostly for game developers anyway.

I am not. I am saying that had I been a good little Java/ C# developer, then I would never have learned Rust and all of the things that come with that.

Scala is not doing great, probably because they took too long to get 3 finished and good.

Yes. Companies are going back to Java because this is what all the convervative guys and girls want to use. That fact is what I am criticizing. You want fast horses, you don't want nice things.

So now you have Maven, semi-typed code intermingled with container logic because you cannot abstract over anything, you have millions of lines of impenetrable tests. Just like we all did in 2006. You all love this because learning things is not your forte :) That other stuff is for academics and niche.

Unfortunately there is this alternative universe where languages like Lisp, and Smalltalk would have taken over mainstream, and by association languages like Standard ML.

I still fondly remember my introduction to ML ecosystem via Caml Light, OCaml was still Objective Caml, and Haskell was still getting beyond Miranda.

Instead as you well put it we keep we talking about faster horses, with the leading horse being C, and how to replace it by another one.

Or at least that was the path, until vibe coding became a thing, hopefully the bubble will burst.

Right and C has a special place in my heart. I have never coded C in anger, but the weird thing about coding in Java is how low level all the implementations are. I've had this debate/ conversation with people over the years and I realize that if I am the only one at a certain position, then I am wrong and not everyone else.

But I claim that Rust is actually a high level language. Higher level than Java. My argument is that in Rust (, F# and Scala) you can encode in structure, what has to be operational code in Java.

So in the stronger languages you can reason about larger swaths about domain concepts easily, whereas in Java you have to trust the test panel on faith and wade through deep sections of "magic code" (compare with magic numbers. Why is there a 427/ these 7 lines of logic here? What does it do?)