Needs advice
on
DjangoDjangoLaravelLaravel
and
RailsRails

Which is better of Laravel, Rails and Django for creating great products quickly?

Which is better for creating open source apps that others might want to contribute to?

I want a mature tool for creating web apps that qualifies for:

  • Quick prototyping
  • Easy to get to production level for backend
  • Maintainable and buildable by one person alone
  • Enforces conformity, so others can easily read and contribute to the code, making successfully open sourcing possible
  • Works well with React
  • Has a mature and fairly stable ecosystem for the basics (auth, storage, db, image handling, backups, change history, etc.
  • Has an ecosystem that will still be alive in 10 years, responding to changes.

I would have to learn Ruby, Python or PHP for each, so that factors in too.

I'm proficient in React and Node.js, but I feel the node backend ecosystem is too immature with a million different ways to do everything, and too many decisions to make, too much wiring to get everything to work together, and too many packages that end up not being supported a few months down the line.

Which would you choose for me to learn?

READ LESS
12 upvotes·120K views
Replies (5)
Principal at Znamenica·

I recommend Ruby/Rails. I write the text in question answer form:

Quick prototyping

Yes you can use the prototyping in Rails or not. And this can be realized by adding any of testing framework like Cucumber or RSpec for example. Writing the test you can work on the application prototype without a change real code in production, or even development environment.

Easy to get to production level for backend

Yes it is easy, you are able to use the capistrano gem with its modules, if required, to deploy application to production within a day.

Maintainable and buildable by one person alone

Since the Rails gets on itself the main code part of a data processing, you are able easily to generate the required code with build-in Rails or external gem generators, and to merely maintain the your code, if you would cover it with a test of selected test framework.

Enforces conformity, so others can easily read and contribute to the code, making successfully open sourcing possible

As far as I said you can barely control a contribution to your project with using the test covering frameworks, to keep conformity the project.

Works well with React

You can use React along with any JS NPM module easily using webpacker gem.

Has a mature and fairly stable ecosystem for the basics (auth, storage, db, image handling, backups, change history, etc.

Of course the Rails framework is supported by many three-side gems, which can be found at rubygems, that support the authentication (devise), storage feature (fog), db (pg/mysql/sqlite3), image handling (rmagick), backups (backup), change history (history)

Has an ecosystem that will still be alive in 10 years, responding to changes.

Ruby/Rails with the RubyGem ecosystem is actively envolving and not plan to be collapsed and abandned with of development both Ruby language and Rails framework.

So, you can freely and fearlessly start using the Rails framework as server side base for your project.

READ MORE
3 upvotes·59.8K views
Meam Software Engineering Group·
Recommends
Django
Rails

Comparing them end-to-end, Rails comes the most productive in my opinion. But there are bolder parameters you may consider. i.e. no one switches from Django to Rails to improve productivity and vice versa (probably from Laravel to one of those two).

  • The language's productivity also matters, which both Ruby and Python are better for that.

  • There is a philosophical difference between #Django and #Rails :

  • Django supports the "Explicit over Implicit" idea, making it easier for newcomers to understand what's going on. This idea also has downsides. This allows beginners to start working with Django without even learning Django and best practices and defer learning by using references like Stackoverflow.com, which is not a good idea because you potentially don't know things that you don't know! Also, you may find many different project styles.

  • On the other hand, Rails support the "Convention over configuration" and Scaffolding idea. It's easier for a Rails developer to be added to a new project or just review a random Rails project. Everything has a default and also it has some downsides as well. e.g. As a beginner, everything feels like magic in Rails, and you don't understand what is going on and how Rails understand while you didn't "explicitly" say what do you want sometimes.

Conclusion: Rails and Django are more productive and you can build projects on your own quickly (many giant startups launched this way!).

Node.JS isn't immature, also sometimes shows better performance comparing the mentioned alternatives. But if you suffer from "a million different ways to do everything" and "many decisions to make", Take Ruby on Rails for sure.

P.S: for learning RoR I suggest the book/video from Michael Hartl.

READ MORE
7 upvotes·118.6K views
View all (5)
Avatar of Malo Skrylev

Malo Skrylev

Principal at Znamenica