So I’m a front-end dev that wants to go full-stack but I don’t know what backend I should learn/master. I’ve worked with JS libraries a lot so the obvious way would be to go with Node + Sails/Express and React + Redux, but I find the JS community/ecosystem really unstable and not mature enough, for example GruntJS has started gaining traction and then Gulp came up, GruntJS is almost legacy today, Gulp is on it’s way too, judging from the number of devs that decide to skip to Webpack. Bower is another fine example of this, as well as npm (Yarn is becoming more and more popular). So, my options would be:
PHP + Laravel -> I like PHP a lot but I feel like it will die soon
Ruby on Rails -> I did experiment with this framework a bit and I like the simplicity and the convention over configuration principle
Node.js + Sails.js/Express.js -> This would be convenient since I already know ES6
Languages don’t die, if you like PHP and want to learn more, do it.
The “I already know the language!” nature of Node is overrated. Being fluent in multiple languages is a good thing.
RoR is fine and pleasurable to write. It has issues at scale, but that doesn’t really matter at the level you’re talking about.
I would prefer Elixir+Phoenix or Go over any of the above. But that’s my taste. Program in a language you enjoy and that makes you personally productive, that’s what matters.
Agreed. When we study these things, we have to understand what our goals are.
If you’re doing it to secure a job in the near future, it will make more sense to find out what technologies companies around you are looking for, and learn those.
If you’re doing it for fun, it really doesn’t matter. Look at all the languages you’re interested in from a high level, and deep dive into the ones you find most interesting. Don’t follow the hype, only learn things you think you’ll enjoy working with in the future
It does make more sense to go for Node/Express (or Sails, Hapi, etc) if you’re already comfortable with JS. You’ll be familiar with the syntax, when you need to write more logic for your backend later on
Yes to this. Sure, some arguments can be made that some languages/frameworks/libraries are better at some things than the others, but honestly it’s all just different ways of doing the same damn thing. Building websites and apps. Also, I always enjoy reading your answers.