views:

264

answers:

8

I come from a desktop programming background. I wanted to dive seriously into the web programming scene. I looked around and I think using a well established web framework would be the way to go. From what I see Django and Ruby on Rails are really popular.

So I just wanted to know which of these or any other is a good choice for me. something that is elegant, robust, scalable, easy to deploy and maintain and fully featured. I am currently leaning towards Django because it is based on Python which is a really popular and powerful language, but just wanted to know what RoR has going for itself that may make it a better choice? Which is more web 2.0 in a sense. Just wanted to get some extra opinions.

+3  A: 

The only advice I can give is to build something non-trivial in each one and decide for yourself. If you ask here, you'll just get a bunch of advocates for various technologies telling you that their thing is better than everything else.

I, for instance, will tell you that I use ASP.NET for everything where I have a choice, and that's why I was able to put out sites like Twiddla, Blogabond, S3stat, etc. in a few months* each while VC-backed companies with entire teams of PHP devs spent years building similar things.

Below this post, you'll notice a Rails guy saying exactly the same thing. So like I said, try some techs and see what works best for the stuff you build.

* 2 months, 3 months, and 1 week, respectively

Jason Kester
A: 

I use django because of the scalability and support and very good documentation. It's a bit of a search when you just start with it, but afterwards it feels very good.

The template engine is very strong, which means that you also can make nice javascript/ajax so the web2.0 part is very well featured.

Although i have to admit that i don't have very much experience with RoR. Which also looks very nice.

Bloeper
+3  A: 

Hai ,

It depends what your priorities are.

If you really want to learn RoR, do it all from scratch. Seriously. Roll your own. It's the best way to learn, far better than hacking through someone else's code. If you do that, sometimes you'll be learning Rails, but sometimes you'll just be learning that specific social network framework. And you won't know which is which...

The type of site you're suggesting sounds perfect for a Rails project. If you get stuck, then go browse the repositories of these frameworks. Who cares if you're reinventing the wheel? It's your site, your vision, your rules.

If you just want a site up and running, then I would pick Insoshi or LovdbyLess simply because they're out of the box apps so you'll have to do less to do get running. I suggest trying to install them both, and introducing yourself in the Google Groups. That'll give you a good indication of wether you're going to get along.

Pandiya Chendur
-1: Sorry but this isn't really useful at all. It's a **huge** list of names, with useless information such as the version number or the release date.. The table that compares features is way too long and verbose, and anyway most have "Yes" to everything. All wikipedia's "Comparison of" are useless, imo.
Andreas Bonini
@Andreas Ok fine i thought it would help him because he was a desktop programmer thus far...
Pandiya Chendur
-1 rescinded.. when I voted all you had was a link to http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks
Andreas Bonini
@Thanks Andreas
Pandiya Chendur
+3  A: 

Consider:

  • deployment: both Django and Rails have good deployment options now - mod_wsgi for Django deployment on Apache, Phusion Passenger for Rails deployment. If you want to deploy on Google App Engine, you can use Rails (using AppEngine for Java and JRuby) but Python and Django will be easier. On the other hand, have a look at Heroku for similarly 'cloud'-based hosting. If you have shared hosting, see what they let you use. My shared hosting company lets me use Rails, which is pretty cool of them.
  • packages and libraries: both Python and Ruby and Django and Rails have a wide range of plugins and libraries that will let you do interesting work. If you are building something which requires a particular library, you may find that the library is a more useful way of choosing than the framework.
  • try the languages. Both Python and Ruby are wonderful languages. I kind of prefer Ruby (and I use Rails), but remember that the framework is actually less about the framework than about the language. So if you find that you have strong opinions about programming languages, be sure to try it out.
  • look at equivalent example code - for instance, look at something like a blogging engine - Django has Byteflow and Rails has Mephisto
  • Look at other frameworks including those using languages other than Ruby and Python. Look at Merb, Lift, Seaside, Cake, Grails and so on.

And remember: skill, imagination and creativity are more important than framework choices.

Tom Morris
+4  A: 

.. something that is elegant, robust, scalable, easy to deploy and maintain and fully featured .. python which is a really popular and powerful language .. which is more web 2.0 in a sense.

Those are all hollow, subjective buzz words. The difference between various frameworks is not something you can measure; It's their style that makes the difference. Nobody can decide for you. Try a few out your self and pick what feels right to you.

troelskn
A: 

The first thing you should know is that the framework or developing language is only a to tool to achieve your business solution. So DO NOT stick to ANY framework or tool! Different tools or frameworks have different advantages. None of them is always the best. It all depends on the situation. Therefore before you start developing the system, make enough survey and write down the business goals and then choose the frame satisfies you most. Designing the application above a specified technology changes you from a programmer to software architecture builder.

Sefler
+2  A: 

You should look into the languages more than the frameworks! If you prefer Python over Ruby, use Django. Bur if you prefer Ruby, look into RoR...

They are both great frameworks, but they are "just" frameworks! In the end I don't think your choice of framework will make much difference for the end users of you web application!

code-zoop
Not sure why this got downvoted - you're right. No matter how 'robust' a framework is or how much code it can auto-generate you're still gonna be writing a lot of code in that language. And if you don't like the language, you won't like the framework. Also, you'll probably eventually need to write code outside the framework, and have to depend on other libraries for that language as well.
Bryan M.
A: 

IMO, Ruby and Rails have a large advantage over Python and Django, and most other platforms, in tooling and automation generally. This has a big impact on overall productivity, as well as deployment and maintenance. Things like RubyGems package management, Rake task automation, Active Record migrations and Capistrano for deployment make all those little jobs fast, painless and repeatable.

I tried Django and Python a couple of years ago, and liked a lot of things about them, but there was too much manual fiddling and configuration over convention for my taste. For example, Python package management is limited (no uninstall feature!), and is not universally supported by the popular libraries.

Django itself did not impose a standard application structure, which means that everybody has to figure out and manually set up their own layout. This also leads to a lot of unnecessary setup and maintenance work.

If I had to use Python for Web development, I would probably use the TurboGears framework, which provides a standard application structure, and more in the way of support tools.

Stuart Ellis