Ok I realize it's a dumb question, but I don't know where to start.
I use to program since a few years and I realized only these days that I need to know at least one server side language.
In this period I am learning Spring MVC in an internship, but it's freaking me out and I don't like it so I hope not to use it in the future. Perhaps I need a server side language, so here I am.
My question is: what are the differences between the most used server side languages? I mean Java, PHP and NodeJS.
And in what cases are they used? I don't plan to make really big applications, but at the same time I want something significant in my CV.
PS: I know that at the end it's all up to me, but I'd like to hear some advices from people who work in back end development.
This was answered pretty concisely on HackerNews recently when a developer talked about going back to PHP for server side ops:
Today my language usage looks like this:
Web services / APIs: Node.js [1]
Front-ends that require easily modifiable templates and quick command line scripts: PHP [2]
When I need speed and low latency for a network connected app: Go [3]
When I need speed on an app that requires no network: C
[1] The promise chain asynchronous nature of Node.js makes it great for web services in my opinion. And the ability to easily have global variables that persist across connections for things like caching and pooling is a huge plus over PHP.
[2] PHP is very good at spitting out HTML and making web service requests, the performance is acceptable in most cases, and it is really easy for most people to edit, even people without a CS background. Likewise, for quick command like scripts PHP is unbeatable in my opinion. The tools it provides out of the box means most common command line tasks can be done 100% with the standard library. No package manager required. Though if you need to add packages PHP is pretty good about that now. Incidentally the fact the standard lib does so much is also one of PHP weaknesses. The standard library is a mess of inconsistently named functions and classes that grew organically over 20 years.
[3] I've saturated my loopback network interface on a non-trivial app on my Macbook Pro using Go. PHP and node don't even come remotely close.
[via HN]
Node.js is a JavaScript runtime, so like Nicolás Parada mentioned, if you know JavaScript well, go for it.
I would highly recommend, you to take a look at more functional programming language like Elixir, which is simple and elegant, and is highly influenced by Ruby / Clojure / Rust and Erlang of-course.
Nicolás Parada
Web Developer
In Node.js you use JavaScript and that is why it's so popular. You don't have to learn a new language, just code like you do for web. If you already know JS go for it.
These days I would recommend going with Go. It's fast, nice, has a rich standard library and you compile to multiple platform with a single command.