Join 3,418 readers in helping fund MetaFilter (Hide)

Other frameworks akin to Ruby on Rails?
July 6, 2007 4:14 PM   Subscribe

What are the best database-driven Web application development frameworks out there right now? More specifically, please orient me to toolsets you know of that are similar to Ruby on Rails.

I have a couple of database-oriented Web applications I'll be working on in the near future. I'd love to avoid (re)writing lots of the low-level code (recordset handling, security, user input validation, &c, &c, &c ) that every such application needs in order to function, as I've done numerous times in the past. Rather than dust off some of my own home-rolled libraries, I'd rather take the time to choose and learn one of the integrated open-source frameworks that have come into being over the past few years.

I know of Ruby on Rails, obviously, and have heard of a a couple of python-based frameworks that seem philosophically similar to RoR. Please note that I'm totally language-agnostic -- I'm quite handy with all the languages that form the "P" in "LAMP" and with some others as well, but I don't mind picking up some new syntax if it'll simplify my development task in the end.

Help me understand my options!
posted by killdevil to Computers & Internet (17 answers total) 6 users marked this as a favorite

[I'll leave the pros and cons to someone else since I'm totally baised: I'm one of Django's lead developers. Feel free to contact me via the email in my profile if you'd like the elevator pitch.]
posted by jacobian at 4:30 PM on July 6, 2007

There's Catalyst for Perl, Cake for PHP, and TurboGears for Python.
posted by paulus andronicus at 4:35 PM on July 6, 2007 [1 favorite]

I came here to say Django, only to find that not only I was beaten, I was beaten by Jacob of all people! Oh well :D consider this a second vote for Django - been using it ever since it open-sourced, personally and professionally, and it's been great.

Other semi-similar alternatives in Python include Turbogears and Pylons (although the two are merging, in a fashion, so I imagine soon they will be one and the same) and PHP, despite not being quite as suited to this sort of thing, seems to have a bunch, including Symfony and Cake. I'm told Perl has its own variant as well, but don't remember the name.

In general, these sorts of frameworks are often referred to as "MVC", so Googling for "[language of choice] mvc" should find some hits.
posted by cyrusdogstar at 4:39 PM on July 6, 2007 [1 favorite]

Pylons is the most Rails like of the Python web frameworks
posted by thecrypto at 4:44 PM on July 6, 2007

thecrypto - honestly, between Django and Pylons, Django is usually the one more closely compared with Rails. Rails and Django are both 'full-stack' frameworks, with most/all the relevant components done by the core team; Pylons and Turbogears are more glue-like, cobbling together various pre-existing (and often third-party) components into a more cohesive system.

killdevil, to more specifically answer your question - the answer is always "it depends". There's certainly no one best framework, although there may be one that is best for you, but other people can't really decide that one.

Can you fill us in more on what you're looking for, or do you not even know at this point? They all abstract away the more grunt-work aspects of Web design, so the differences lie largely in their approaches to how the rest is done: how URLs are matched up to the end-result templates; how the templates are rendered/what template language is used; how the database aspect, usually an ORM, is set up; etc.
posted by cyrusdogstar at 4:50 PM on July 6, 2007

I don't know much about it but I've seen a lot about Grails which uses the Groovy language which is a Java based scripting language.
posted by bitdamaged at 5:48 PM on July 6, 2007

I'll be performing read-heavy operations on some large scientific datasets that will live in MySQL, and will be most interested in the ability to present the user with various highly attractive charts, plots and complex visualizations based thereon, along with several levels of easily-navigable data (with records presented attractively in paged, sortable tabular format).

Since plotting is so central to the projects, the availability of really good data-visualization functionality for the language in question (I obviously wouldn't expect such features to be a part of whatever Web application framework I choose) is important.

Beyond that, I couldn't say what I'm looking for exactly; that's what this question is about!
posted by killdevil at 5:56 PM on July 6, 2007

I'm pretty sure Python will have libs for whatever data visualization you need, but not having done much visualization myself I can't say for sure. The language does have exceptional third party module support, at any rate, for everything from game development to scientific...stuff...(SciPy) to statistics and numerics (NumPy) and etc.

Django's ORM isn't super-terrific at handling really complex SQL queries, but few object-relational managers are. You can tweak things to a decent extent within the ORM, including partial raw SQL. And Python's DB-API compliant modules, which Django uses and allows easy access to, are certainly as good as any other lower-level DB driver is going to be.

Attractiveness is, of course, not a function of the framework or language; Django doesn't tie you to a specific JavaScript framework (speaking to the interactive aspect of the UI, here) and works well with any of them.
posted by cyrusdogstar at 6:34 PM on July 6, 2007

I should point out that I've not used any of the alternatives to Django, so you will still want to nose around their respective sites/wikis/communities and see if you turn up any obvious "this is bad"/"this is awesome" tidbits regarding your specific needs.
posted by cyrusdogstar at 6:34 PM on July 6, 2007

Zope (and Plone, for that matter) is incredibly nice for python. Not quite the same idea as RoR, but very, very nice to work with, especially if you're coming from a more traditional programming background.
posted by devilsbrigade at 7:00 PM on July 6, 2007

If you tried Zope 2 and found it lacking, btw, Zope 3 adds support for a lot of boilerplate stuff. Much more useful.
posted by devilsbrigade at 7:05 PM on July 6, 2007

I was going to say, don't try Zope 2, it's terrible, and IME most of the third-party plugins for Zope/Plone v2 are just terribly, terribly written. Can't speak for Z3 but I hear they cleaned it up a lot and made it less labyrinthine.

Full disclosure, I'm using Plone/Zope2 for the CMS portions of my corporate intranet (including a wiki, ticket tracker, knowledge base, etc) and by God, at this point I wish I'd just done the entire thing in Django instead.

posted by cyrusdogstar at 7:11 PM on July 6, 2007

Nitro is the other big Ruby web framework. It seems to be a bit less opinionated as to what your system should look like.

Graph wise, a quick web search threw up Gruff and Scruffy, as used by Ruport, which provides ActiveRecord integration and lots of other nice reporting stuff.
posted by Freaky at 10:02 PM on July 6, 2007

I've been using Symfony for a few months, and especially combined with Doctrine as the ORM, I like it a lot. I'm building some very large applications in it and once you figure it out it just works really well.

RoR is 'cooler', and I would like to learn it as well, but I've been a PHP developer for seven years now and I've been having a tough time changing. ;)
posted by SpecialK at 6:15 AM on July 7, 2007

There's also CodeIgniter for PHP.
posted by kirkaracha at 9:02 AM on July 7, 2007

I tried all the python frameworks and while I used to be an enthusiastic TurboGears user, I now am absolutely in love with Django. It still amazes me every time how easy it is to make a database driven application with Django. If only making a great user interface was just as easy...
posted by davar at 9:50 AM on July 7, 2007

My problem with CodeIgniter and CakePHP were that they want to maintain compatibility with PHP4... so you can't take advantage of most of the cool OO toys in PHP5.
posted by SpecialK at 11:42 AM on July 7, 2007

« Older WhereAreTheNowFilter: Whateve...   |  TV tuner card and Windows Medi... Newer »
This thread is closed to new comments.