
Poll: Rubyists, what server-side language should I learn in 2017? - itsderek23
I&#x27;ve primarily been a one-trick pony for years on the server-side with Ruby, but I&#x27;m curious what languages other folks are using on the server-side for production apps.<p>What are you using to complement Ruby in production?
======
jfaucett
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.

------
itamarst
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/)

------
mod
I would vote JS or Clojure.

I like Clojure more, but Javascript seems more versatile and is a more
employable skill.

------
smilesnd
C, it is the only language you need.

~~~
Lordarminius
What do you think of the claims that Rust is set to replace C?

~~~
smilesnd
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.

------
iLemming
Clojure. I guarantee - you're gonna like it.

~~~
borge
Agreed! I started learning Clojure about 2 years ago, and it has become my
favorite language!

The biggest complaint I have is about the error messages (and the laaaarge
stack trace), but I've heard they are working on it.

------
haidrali
Node Js I have heard of a lot

------
itsderek23
Rust

------
itsderek23
NodeJS

~~~
Lordarminius
Why NodeJS instead of Go ?

------
itsderek23
Go

~~~
Lordarminius
why Go instead of NodeJS?

------
lobo_tuerto
Elixir.

