General Discussion

Manish Giri
Manish Giri
16,264 Points

Server Side Development: Python(Flask/Django) vs PHP vs Rails vs Node.js?

So, I'm considering a career as a full stack web developer. I had geared up with quite a few things in the front end part (prior to signing up for Treehouse), but now comes the question of a back-end language.

Again, I've done both PHP and Python earlier. I had learnt Python to complete my college projects, and I had learnt PHP picking it up as my choice of the server side language. While I didn't get very far with PHP, I can do simple things like URL variable passing, fetching data from a DB, etc.

Then I read that Rails is the hot thing at the moment, so I decided to give Rails a try. I learnt Ruby from Codeacademy, and completed about 50% of the Rails track there too. Then I started the "Learn Rails" track here on Treehouse, and finished the Ruby basics course.

At this point, I'm pondering what to do next. Every choice seems to have it's own pros and cons:

PHP - very easy to setup and dish out a basic web app. Just needs installation of (W/M/X)AMP and you're all set. There seems to be a lot of PHP jobs available for not-so-experienced developers.

Python - Language is very convenient, and Python itself is widely used as a programming language in non web-development applications, but from what I can see, not many web apps are built out of Django(even lesser in Flask). Consequently, this means lower jobs.

Ruby - I find this the best language to code in. Constructs like .include?, .gsub! etc are very expressive and are really meant for programmer convenience, as was originally intended. And, Rails is probably being used everywhere. But, Rails is not as easy to learn. Neither is the setup. I've read on Quora that beginners should get really comfy with PHP before moving to Rails, in order to appreciate all the things that Rails automatically does for you behind the scenes.

Node.js - This seems to be another in demand thing. While I know JS for front end development, I've not looked into node.

So, what's your opinion? Unfortunately, due to some other reasons, I don't have the time to learn all 5 frameworks. What would be the best choice that is easy to learn, and can be easier to get a job in?

1 Answer

Craig Campbell
Craig Campbell
14,428 Points

If you already know front end JS, then you should TOTALLY learn you some node! A cool resource is http://nodeschool.io/#workshopper-list . You'll just need to be remotely familiar with NPM to use nodeschool, but there are cool treehouse courses on NPM and Node as well.

As a current full stack JS student myself, I can say that I hear the following from people at my codeschool (take the following with a grain of salt as this is second hand, not my own thoughts or knowledge): Python is great IF you're really into math like me. I am inclined to learn more Python for that reason, but I'm doing full stack JS because I hear there are more jobs in that area.

I also hear that there are fewer and fewer RoR jobs. Dunno if that's true, but maybe that's a reason to go Node?

As for PHP, well GETing files from a database (and other RESTful stuff) can easily be done with Node JS as well as using jQuery to simplify Ajax requests. So I say go JS all the way!

Hope that helps!