3 ms·
Interestingly, I'm learning Django right now because of enough bad experiences with Rails. This may sound obvious but if you don't do things the Rails way then
by msie 8y ago
Interestingly, I'm learning Django right now because of enough bad experiences with Rails. This may sound obvious but if you don't do things the Rails way then you'll have a harder time taking advantage of what Rails gives you. Some things which I consider essential to web development are not included with Rails but available via gems which I think are unfortunate: session management, authentication and administration. The model files don't contain any information on the schema like you would expect. You have to dig into the schema file in order to find that. The documentation is bad for Rails and the Ruby ecosystem in general. Lots of magic...
- cryptography 8y agoSo is RoR something like Flask[0] which provides you with basics and all other bells and whistles (e.g. ORM, Forms, Admin, Auth, etc..) are available via extensions? [0] http://flask.pocoo.org/ http://flask.pocoo.org/
- strife25 8y agoNot at all. The ruby equivalent to Flask is Sinatra: http://sinatrarb.com http://sinatrarb.com Rails and Django are equivalent to each other from the sense of providing an MVC based framework to build a web application.
- robin_reala 8y agoSinatra[1] is more like Flask. From your list Rails has an ORM (ActiveRecord) and built in ActionView form helpers, but no default admin interface or authentication. The standard authentication library in the community is usually Devise[2]. What ‘etc’ includes is difficult to comment on :) [1] http://sinatrarb.com/ http://sinatrarb.com/ [2] https://github.com/plataformatec/devise https://github.com/plataformatec/devise
- tylerritchie 8y agoNo. Sinatra [1] is more like Flask. Rails has session management, forms, ORM, and simple authentication all built in (as well as asset compilation, schema migrations, websockets, asynchronous processing, file uploads, etc). Models do not contain schema definitions, they're defined elsewhere. Admin functionality needs to be added. I've got some experience in Python at this point if I were to build a new CRUDy business app I would use Rails because of my familiarity with Ruby and Rails. If I wanted to learn more Python as a main goal I'd pick Django. [1] http://sinatrarb.com/ http://sinatrarb.com/
- BerislavLopac 8y agoDjango is not the best solution if your goal is to learn Python -- it simply has too many magic going on underneath, and some of their solutions are convoluted due to its specific architecture and backward compatibility requirements.
- BerislavLopac 8y ago> This may sound obvious but if you don't do things the Rails way then you'll have a harder time taking advantage of what Rails gives you > Lots of magic... The same is largely true of Django as well.
- pritambaral 8y agoIn fact, it's stronger with Django. Rails (because of Ruby) is more flexible in the right hands.
- BerislavLopac 8y agoI'm curious, what makes Ruby more flexible than Python in that context?
- handbanana 8y ago> Some things which I consider essential to web development are not included with Rails but available via gems which I think are unfortunate: session management, authentication and administration You must dislike a lot of web frameworks > The model files don't contain any information on the schema like you would expect What schema information were you expecting?