DEV Community

Discussion on: Which one should I use for my new project? RoR, Django or Laravel?

Collapse
 
panosru profile image
Panagiotis • Edited

Trying new things is almost always good, I find myself in the same boat as yours quite often.

Sharing my idea about the topic is mostly not to recommend to you what to use, but to focus on a few key points that I find valuable to share.

For PHP I use Phalcon. Its speed is superior to other frameworks. Before using Phalcon, I used Laravel. I still occasionally use Laravel when working with clients, who already have it deployed. I have not used Symfony framework as a whole in a while. However, I do use its components. Outlining the pros and cons would make an article of its own. In short, any of the forth-mentioned PHP frameworks provide a comprehensive solution to your problems, although I would choose Phalcon.

As Mr Brown mentioned, learning Elixir/Phoenix is a great opportunity to try something new. If you are already familiar with the syntax of Ruby and Rails framework, you will become comfortable with Elixir/Phoenix relatively quickly. Personally, since I mostly write in C-Styled languages, it took me 2-3 days to get used to Elixir's syntactic style. The speed Elixir provides, being Erlang-based, is astonishing. I would go as far as to say, the performance is superior to all other languages. The downside is the lack of support from the community in comparison to Node, PHP, C#, Ruby, Go, Python, Java etc. The majority of packages lack proper documentation, some are even outdated. Despite that, the three weeks I took to create a project from scratch in Elixir/Phoenix were fun and fulfilling.

Regarding Node/Express (.js), I agree with "buphmin". It's a great combination for API building. Node not only has rightfully claimed a spot among top technologies but has also built a large community and does not lack a variety of updated packaged - although not my choice of preference - it's almost a fail-proof option for your case.

My personal preference is C#/.NET, without wanting to sound biased about it, and trying to be as much objective as possible, I feel that this combination is a very robust and a good choice for the long run.

Other combinations I suggest for your consideration are Go/Echo, Go/Gin, or Rust/Rocket. In contrast with Elixir, those have gathered more attraction recently - especially Go - allowing developers to interact with an active community and choose from a variety of packages. Although Rust falls in the same downside as Elixir regarding the documentation, it provides better CPU performance when dealing with heavy tasks, while providing you with all the traits of a modern framework with Rocket. On the other hand, while Go is lacking in speed compared to Rust and Elixir, it has a very strong community and the documentation is great and is backed by Google.

For Python/Django, Ruby/RoR, Java/Spring or JEE I don't qualify enough to express my opinion since anything I have done so far with those technologies is on RND level.

The choice you make is utterly yours. Based on your criteria, goals and requirements of the project, you pick the one that serves your purpose.

Things I would consider would be the community, the packages available to make my life easier, look for popular packages and their latest update, performance-wise and code syntaxes.

Crucial also is to follow a proper architecture, for if not, you might face difficulties while progressing; but that is another topic.