Hello there. I suppose that this question has already been asked but let’s give it another try. I’m a little bit new in web development (knowing python, ruby, html, css and some js) but I’ve learned some interesting things with ror. Django seems to have another mindset (different applications vs 1, MVT instead of MVC and of course python as main language). I know that Django is very powerful and some big web actors are still using it (or partially) but what does it defers from ror (except the language)? Is it a matter of speed ? I’ve read some benchmarks and python scores better in some way and is beat by ruby for others. I’ve heard a lot of people saying that ror was to “magic” (too many things happen under the hood) but what about django? There are also a lot of things happening under the hood (main purpose of a framework). Another example is “flask”. I’ve also played with it but it’s more minimalistic and too many things to configure imo (and it’s a micro framework so what did I expect lol ). So what are your experiences guys (or girls)? I love python btw and that’s the reason why I’m approaching Django :-). Thanks
The topic of “Django and Flask” has come up a couple times previously, see Should I use Django? for my take on the subject.
There are other threads mentioning Flask and/or ROR - you can use the site’s search tool to find them.
<opinion>
Regarding RoR, I have no opinion. I don’t know Ruby or Rails. I come to the Django world from working in Python before Rails (or Django) ever existed. Would I have grown to like RoR if I learned it first? Possibly but doubtful. For whatever reason, Ruby as a programming language just doesn’t resonate with me. I’ve looked at it enough to get the impression that I don’t want to look at it any more closely.
</opinion>
It stays your « opinion » of course. I love python too but ruby isn’t so different from it. It’s fully object oriented and it’s syntax is « clean » as python (indentation) ! I’ll go for both and see what happens next! It’s better to learn 2 frameworks (2 different languages) than sticking with one (my opinion this time) !! Thanks for your reply
I agree totally with this - variety provides perspective. I consider it very valuable that I’ve been able to acquire multiple years of experience with each of Perl/CGI, .Net / VB.net / C#, Java/Spring, and PHP/Drupal in addition to Python/Django (with minimal experience with Flask, Bottle, CherryPy, TurboGears, Plone and Twisted).
RoR is a very conventional framework. If you put files in the right places with the right names, then the framework can do a ton for you. I think that means that RoR is largely a matter of taste. Python favors explicit over implicit and I think that shows when you compare the frameworks.
Django, in my experience, requires developers to wire more things together. That explicitness trades some speed of development for an ability to comprehend how everything is connected without deep knowledge of the framework and some set of conventions that must be learned.
Django is big so there is a still a lot to learn, but I know that I favor the ability to trace code through over following some conventional patterns.
Whether you pick Ruby on Rails, Django, or something similar like Laravel in PHP, I think you’ll find that they share a fondness for the approach that bakes in all the features that you’ll likely need to build most web apps.