4 ms·
So much of language opinion is based on people's progression of languages. My progression (of serious professional usage) looked like this: Java -> Python -> C
by f154hfds 2y ago
So much of language opinion is based on people's progression of languages. My progression (of serious professional usage) looked like this:
Java -> Python -> C++ -> Rust -> Go
I have to say, given this progression going to Rust from C++ was wonderful, and going to Go from Rust was disappointing. I run into serious language issues almost daily. The one I ran into yesterday was that defer's function arguments are evaluated immediately (even if the underlying type is a reference!).
https://go.dev/play/p/zEQ77TIP8Iy https://go.dev/play/p/zEQ77TIP8Iy
Perhaps with a progression Java -> Go -> Rust moving to rust could feel slow and painful.
- 62951413 2y agoI'm curious how one ends up with such ahistorical sequence. I'd expect it to be more aligned with the actual PL history. Mainstream PLs have had a fairly logical progression with each generation solving well understood problems from the previous one. And building on top of the previous generation's abstractions. Turbo Pascal for education, C as professional lingua franca in mid-90s (manual memory management). C++ was all the rage in late 90s (OOP,STL) . Java got hot around 2003 (GC, canonical concurrency library and memory model). Scala grew in popularity around 2010-2012 (FP for the masses, much less verbosity, mainstream ADTs and pattern matching). Kotlin was cobbled together to have the Scala syntactic sugar without the Haskell-on-the-JVM complexity later. And then they came up with golang which completely broke with any intellectual tradition and went back to before the Java heyday. Rust feels like a Scala with pointers so the "C++ => Rust" transition looks analogous to the "Java => Scala" one.
- aaronblohowiak 2y ago>I'm curious how one ends up with such ahistorical sequence. they are all actively in-use.. if gp is earlier in their career, it could all be in last 10 years.
- guappa 2y agoI learnt QuickBasic, VisualBasic, Java, C, Python, Go, C++ in that order. I'd never do a project in go. Go suitable for networking? Really? With no packed structs and no way to set the endianness?