3 ms·
My favorite language, it's the best, trust me! More seriously: what are your goals in learning a new language? If it's new skills or ways of thinking, go for s
by itamarst 10y ago
My favorite language, it's the best, trust me!
More seriously: what are your goals in learning a new language? If it's new skills or ways of thinking, go for something that's quite different from Ruby in some educational way. Clojure, Elixir or Haskell will teach you rather more than Go will, each in their own way.
* All three are functional, so no mutability by default.
* Clojure has software transactional memory (as does Haskell, I believe?), and it's a Lisp so you can create macros and customize the language.
* Haskell has a very powerful type system.
* Elixir use Erlang's agent-based runtime and functionality, which e.g. lets you do hotswapped code upgrades on a running server.
Go has a stupid type system (e.g. Java's is much better) and a concurrency system that doesn't help with any of the hard problems in concurrency. On the other hand, Go might be a more marketable skill than any of the ones I recommended for educational purposes.
So it depends on your goals.
More ideas on choosing which technology to learn more broadly: https://codewithoutrules.com/2016/04/27/which-technology/ https://codewithoutrules.com/2016/04/27/which-technology/