Relevance Found

Rapid development frameworks – CakePHP, Django, RoR

by izamryan on Dec.26, 2008, under Technology

Last month I blogged about a comparing rapid development frameworks. These are tools that help you develop web-based applications. They provide building blocks of functionality that you can readily glue together in a larger conceptual framework [like Lego, you can build complex machines from simple blocks]. This is opposite to other tools, like “Content Management Systems” (e.g. Drupal, Joomla) which are less flexible, one-size-fits-all approaches, which make some assumptions about how you want to organise your content [like those scale model cars, they're intended to be used with the supplier's other accessories].

So in that blog post … we didn’t get to much of a conclusion, except that “It Depends”. Depends on what kind of resources you have available, what kind of deployment options you want, whether you’re more comfortable with PHP, Python or Ruby, etc etc.

After playing around a bit with these 3x frameworks, I’m going to be concentrating more on RoR (Ruby on Rails).

The original summary went like this:

  • Ruby on Rails (Ruby)
    • Trade-off of computing performance vs. time-to-develop. (RoR is slow, but at least you develop fast). Although, this may be less of a good trade-off, given similar frameworks with better computing performance and similar time-todevelop.
    • Has mod_passenger, an Apache module that can accelerate performance of RoR apps. This might alleviate some of the performance issues above.
    • Not selected for further work – see Wired for more info.
  • Django (Python)
    • Not as straight forward to deploy as PHP. Requires some convoluted deployment strategies, and can be a headache in shared-hosting environments (i.e. places you don’t get root)
    • Python is the new hawtness, and Django is also embedded as part of the Google App Engine.
    • Poor resources available in Brunei, awesome online and built-in resources.
  • CakePHP (PHP)
    • Very easy to deploy on any web platform on any OS … Apache on Linux, IIS on Windows, etc etc.
    • Plenty of resources available – coders w/ PHP skills, training courses, certification, books, magazines, etc.
    • The framework is strict on code structure, which is an advantage in dispersed development teams.

The negative points for RoR were the criticisms of its speed/performance and the governance of the RoR project. However, the future potential of RoR has changed quite a bit since last month, with the news that Merb will be merging with RoR 3.0. Merb is another rapid development framework, and like CakePHP / Django, its design was influenced by RoR. Let me just add another blurb about Merb:

  • Merb (Ruby)
    • Excellent performance characteristics. From the outset was designed to be fast and light – this seems to show in benchmarks.
    • Merb encourages extensability. RoR gives you “one way to do things” (one ORB, one templating languge, etc) but Merb gives the developer more choice to drop-in other modules that offer similar functionality. In this respect, Merb vs. RoR reminds me of TurboGears vs Django. Merb is very modular code, and comes with Unit tests so developers can readily check their plug-ins to confirm that they don’t break other functionality. High unit test coverage = potential indicator of good quality code.
    • Very rough documentation. Not many published books (Django has an awesome book), but if you can work your way around RoR you can slowly start out with Merb.
    • Not very high level of 3rd party support. Unlike RoR, which has the excellent RadRails in Eclipse / Aptana.

In my opinion … the future merger of Merb w/ RoR 3.0 and improvements in the Ruby runtime will neatly re-inforce the advantages of going with RoR (rapid development, high level of 3rd party support, large user base, deployment is complex but manageable) while addressing many of the disadvantages (performance improvements from Merb / mod_passenger / Enterprise Ruby, developer/community relations) and hopefully capitalising on opportunities (improved documentation, etc).

The Bottom Line

A developer’s community that can make the turnaround from “arrogant” as described by Wired to a mature organisation that merged with a major rival, to address many of the age-old performance criticisms (the road-map spells out that they’ll import Merb’s speed enhancements into RoR 3.0) while leveraging on the new enhanced community’s strenghts (Matt Aimonetti, key member of the Merb team will be working on the Rails 3.0 evangelism team) is a community that can shed its old criticisms, continue to innovate and deliver real valuable work to its community.

Rails rocks :-)

  • Twitter
  • Facebook
  • LinkedIn
  • Share/Save/Bookmark

No related posts.

:, , , ,

Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Some links...

A few URL's...