Rust has been selected as the Most Loved programming language at StackOverflow Developer Survey for five consecutive years! No other language commands so much respect.
Rank | 2016 | 2017 | 2018 | 2019 | 2020 |
1 | Rust | Rust | Rust | Rust | Rust |
2 | Swift | Smalltalk | Kotlin | Python/TS | TypeScript |
3 | F# | TypeScript | Python | Kotlin | Python |
4 | Scala | Swift | TypeScript | WebAssembly | Kotlin |
5 | Go | Go | Go | Swift | Go |
6 | Clojure | Python | Swift | Clojure | Julia |
7 | React | Elixir | JavaScript | Elixir | Dart |
8 | Haskell | C# | C# | Go | C# |
9 | Python | Scala | F#/Clojure | C# | Swift |
10 | C# | Clojure/JS | Bash/Shell | JavaScript | JavaScript |
And for good reasons. Rust is greatly lauded for:
- memory safety guaranteed by the compiler (type system) and making garbage collection unnecessary
- close-to-the-metal native code performance
- efficient multi-core concurrency
- zero-cost abstractions
These strengths are Smalltalk’s weaknesses, but Smalltalk’s strengths are also Rust’s weaknesses:
- supremely simple object-oriented programming model (suitable for children and beginners)
- supremely scalable object-oriented programming model (Alan Kay called Smalltalk a “software internet”)
- flexibility of dynamic typing and late binding
- super productivity and flexibility due to live coding (up to 5X more productive!)
- portability of language virtual machine (byte code like in JVM and CLR)
- convenience of image-based computing (persistable containerized environment)
(While multi-core concurrency is possible in Smalltalk as demonstrated by the RoarVM, unfortunately this is an experimental project that has lain fallow for a decade.)
Both programming languages are very useful in their respective domains, but neither can be used universally for all applications. The nice thing, however, is that these languages are perfectly complementary. Between them, there isn’t anything you can’t do.
If you need critical, real-time performance, Rust is your ticket, although programming is considerably more complicated. For just about everything else, Smalltalk is tickety-boo: web, desktop, mobile, data science, machine learning, Internet of Things, robotics, virtual reality, enterprise business computing, and so on. And it’s much easier, too.
It’s worth noting that in 2017, StackOverflow’s survey voted Smalltalk as the second Most Loved language after Rust. Why it disappeared from all subsequent surveys is anybody’s guess.