Poll: Rubyists, what server-side language should I learn in 2017?
18 comments
Elixir. Why? Because it has tooling that is up to the high standards you're used to using in Ruby and Rails. It has a great ecosystem, package manager, and build tooling. The documentation is fantastic and filled with examples. It also has type annotation and type checking and being built on top of the Erlang VM its really good at soft realtime apps which is probably most of what you're doing server-side anyway.
I've used other languages mentioned by others here in projects (Go, Clojure, Haskell, Rust) and although many are nice, for instance Rust has many excellent features and a sophisticated build and package management tool to go along with it, and Go can be somewhat useful if you want a UTF8-friendly concurrent and GC'd C, I still don't think they're good fits for the majority of server-side apps.
I've used other languages mentioned by others here in projects (Go, Clojure, Haskell, Rust) and although many are nice, for instance Rust has many excellent features and a sophisticated build and package management tool to go along with it, and Go can be somewhat useful if you want a UTF8-friendly concurrent and GC'd C, I still don't think they're good fits for the majority of server-side apps.
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/
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/
I would vote JS or Clojure.
I like Clojure more, but Javascript seems more versatile and is a more employable skill.
I like Clojure more, but Javascript seems more versatile and is a more employable skill.
C, it is the only language you need.
What do you think of the claims that Rust is set to replace C?
If I remember right C++ was going to replace C. I don't think any language has truly replace another language. Some languages aged out of usage, but I still know the banks around here hiring cobol programmers. Plus while linux keeps using C I believe it will always have a healthy place in programming society.
Node Js I have heard of a lot
Rust
Elixir.
[deleted]
[deleted]
What are you using to complement Ruby in production?