Answer the question
In order to leave comments, you need to log in
On the agenda: Ruby on Rails or Node.js or php or Python?
Good day, dear friends! :)
Most likely it will seem to you that this is another holivar, but no: I really am facing the most difficult choice of a server language and I ask for your help. I am a young front-end developer working day in and day out with html, css, sass/stylus, JS(jQuery) with ajax.
Not so long ago I thought about two things: either start serious back-end development, combining it with the front, or try your hand at developing for iOS. As a result, I decided that the web is still much more promising and my favorite thing. I want to write good server-side code in a pleasant language, finishing it all off with an elegant front-end. In a year I'm leaving to study at a US university, I'll get a bachelor's degree in computer science and work on a part time job, because I'm aiming immediately at a language that will be promising on the server in the next 3-7 years - therefore, php, most likely, disappears. The choice naturally fell between the four most popular languages: Ruby On Rails, Node.js, php, Python. I myself, to be honest, I can’t give preference, because I almost never climbed into the back and I only know the basics of php. It should be easier with node.js since js has already learned, and the syntax there follows is approximately the same, so this is an explicit + for study. I heard about RoR that it's just a great thing for developing powerful projects with nice syntax and brevity of expression. Python is something like RoR, only with its own troubles.
Dear programmers, I really want to hear your opinion about what would you personally choose for your project, and how do you see the future of these languages? What would you advise to study, based on the situation? In advance, I want to express my deep gratitude to everyone who will at least give a little of their time and show the true path in the back! :)
Answer the question
In order to leave comments, you need to log in
Python/Django.
The Ruby/Rails fashion is over. The project owner needs predictability and transparency of the framework on which his project is built. This is quite difficult to achieve with the "magic" of Ruby, which is difficult to understand if it comes from other languages. This is the first.
Second, whatever one may say, Ruby is slow. Yes I have tried the latest Ruby 2.1 with the latest Rails and I say it is slow. Yes, I know that you can run Rails on any passanger, thin and unicorn. I know that there is JRuby and other implementations. I know that everything can be cached. I tried it. And still, Ruby is slow. By the way, there are also many implementations of Python, there are also Jython, PyPy, Stackless Python. Django looks like lightning against the background of Rails, quick start and transparency of work. There is no magic, everything is clear how it works from start to finish.
Third, Django is a fairly conservative framework. Some dubious feature will never be added to it, as happens in Rails (for example, turbolinks that no one needs). Version 1.7 is coming soon. Where there are a lot of goodies really needed.
You will be told about forking Python into versions 2 and 3. That everything is bad. Don't believe. It's all nonsense. Nowadays, most of the popular libraries have been in Python 3 for a long time. Django, Flask have been for a long time. We start all new projects in Python 3 and there are no problems.
To NodeJS account. You can use it, but ... Inconvenient. The portability of the client side <-> server side code is actually less than 10%. Now, most people use NodeJS as a platform to run the necessary tools for building the frontend, for example, Grunt / Gulp, Bower, and so on. Of course the npm package manager.
I hope I answered your question.
The choice naturally fell between the four most popular languages: Ruby On Rails, Node.js, php, Python.
@Shetani is definitely right. I would not advise you to rely on any one true language, because they are just tools. In one office, the backing will be written in Python, in the other on rails, in the third, the backing will be in php. The choice may depend on many factors and, most often, you will not choose. Therefore, in a good way, I advise you to study all the options you have proposed. And don't be afraid to run out of time. Enough. It may take a lot of time to learn the first language for backing (since you will have to enter and feel how this backing works) and the second (because you will need to rethink what you learned in the first), and then go on knurled.
I also advise you to start with rail and cut, because it’s not in vain in the trend.
Then I advise you to pull node.js, because it is single-threaded and asynchronous, as well as, if desired, full-stack frameworks (single code on the server and on the client - meteor and others).
Further already php and python for completeness.
I also recommend adding Go, Java/Scala and Erlang to the list.
Well, quite an amateur - Haskell + Yesod ... there will be little practical value in this, but for understanding (as well as expanding consciousness and enlightenment) it is very useful. =)
Programmers for their project will choose what they write on. And everyone will advise their framework.
PS Itself for ruby, there will be just a webinar on Sunday, maybe you will learn something for yourself.
If you're already writing FrontEnd, why change the web technologies you already know?
If you are a typesetter, familiar with JS and JQuery, preprocessors, then wouldn't it be wiser to develop further in the same direction? Or have you become a guru like Paul Irish?
Take NodeJS and server-side JS, in the West these are the most trending technologies today, in a year just expand your knowledge and be able to get internships, work in combat mode.
This is my opinion on things, but as they say, you decide ...
I would also advise you to look towards ASP.NET, since you decided to go west.
I have projects in php (Yii) and ASP.NET MVC4.
I can say that now it is difficult to speak in support of php.
.NET is rapidly developing, a set of usefulness, wonderful C #, development and testing tools, literature.
The usual web application in php is quite suitable.
But I work with finance (processing large amounts of data), php loses here in all respects.
So add ASP.NET to your list, remove php. Try and choose.
As for node.js, it is not suitable as an analogue of ASP.NET MVC4/RoR/Django. But it's quite kosher as a backend for client-side MVC, with your knowledge it's not a bad option. But there is one thing... Only an incompetent analyst will allow such projects to serve the business. The situation will change over time.
Predicting from languages will be promising on the server in the next 3-7 years, but if you look at the trends, everything is more or less clear:
www.google.com/trends/explore#q=ruby+on+rails,yii,...
Ruby and php can be immediately discarded (Although there are a lot of vacancies in php). And there is not so much work on ruby and python. Yes, python is not bad, but there is less work on it than on C# JS Java.
It is better to look towards Java and C#, namely spring mvc, asp.net mvc. They are popular in the enterprise.
Or develop in the front and try node.js. The node is more used in social networks games and other things. It is not suitable for interprise.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question