lost password?

home
•  xaraya
•  rails +
•  django +
•  webdev
•  xamp
•  musings

rss
Tag this page
   

» Blogs that link here
last modified: Mar 22, 2007
(first posted: Feb 24, 2007)
(8986 Reads)
Permalink

Evaluating Web Development Frameworks: Rails and Django (part 1/15)

This white paper, presented here as a series of blog articles, is a technical manager's guide to evaluating web development frameworks, with a detailed review of Ruby on Rails and the Django (Python) projects.

In this study we establish a list of evaluation criteria and then discuss and rate how well each framework addresses each criteria.

As your priorities and assessment may differ from ours, this report can be used as a road map for your own evaluation.

If you have already decided to use a specific framework or recently joined a team, this report may serve as a high level introduction, providing valuable context for your learning curve.

Start here: Whitepaper index

Introduction

Anyone developing a dynamic web site these days should at least consider (if not require) a web development framework which provides a layer of abstraction and provides shortcuts for frequent programming tasks. A generally accepted architecture paradigm for web frameworks is the model-view-controller (MVC) which separates the content data structure (model) from the presentation of this content (view), and the handling of user requests for this content (controller).

There are many good MVC frameworks available for web development, written in various programming languages, with subtle (and not so subtle) technical and conceptual differences. The one creating the most buzz and attention is Rails (written in the Ruby language). Another project gaining momentum is Django (written in Python). Both of these are true MVC architectures.

Another approach to web development is to use a higher level, more complete web application, such as content management systems (CMS), which have a great deal of functionality already built in. The Xaraya project, for example, adheres to the MVC paradigm, has hook-able CMS level modules, and allows easy custom layouts and templates. And with its advanced data modeling (DynamicData) Xaraya also reaches into the framework arena. Having used Xaraya successfully for more than two years, I recommend it as part of anyone's website development arsenal.

However, we at Parkerhill Technology Group increasingly find the need for a lower level, lighter, framework for a number of projects. We have narrowed our alternatives to Rails and Django. This report presents my analysis. I have tried to accurately and objectively describe details of each project (especially those that matter most to us), and then give my analysis and opinion separately.

Evaluation Criteria

There are many factors to consider when evaluating a web development framework for your application development project.

Our perspective is that of a web developer, project manager, and entrepreneur, with specific needs that may vary from one project to the next. Our criteria and priorities certainly may not align with yours. Furthermore keep in mind this is a moving target, both Rails and Django frameworks are young, improving continuously, and gaining non-core contributions from their respective communities.

Disclaimer: While I come at this with a significant level of experience, this report is the result of my review without the benefit of having built a real project with either framework.

The following chart outlines my criteria which will be rated on a scale of 1 to 5 (1=worst, 5=best). The final results will be presented in the last section.

 

Evaluation Criteria Rails Django
TECHNICAL   
Programming Language   
Framework Concept   
Directory Structure   
Database / Model   
URL Routing   
Controller / Views   
Templates   
Forms   
Data Administration   
User Administration (authentication, sessions)   
AJAX   
RESTful   
RSS/Atom/XML   
Internationalization / Translation   
Caching   
Security   
TECHNICAL SCORE
  
   
SUPPORT   
Project / Community   
Documentation
  
User Extensions   
Development / Debugging   
Test Tools
  
Deployment Support
  
SUPPORT SCORE
  
   
OVERALL SCORE   

Let the Flames Begin!

So let's get the emotions out of the way first. There's no avoiding it, some people are very passionate about their favorite technologies. I've read many blog postings comparing Rails and Django (plus the dozens of comments they generate). Some people are firmly positioned in one camp or the other. Some people say "Hey, they're more similar than different so just choose what you prefer". And others have done some sort of honest comparative analysis. If you're interested, do a Google search on “rails django”. Here are a few good ones:

 

 

How can you be objective?

Posted by: Mark Thomas on February 27, 2007 12:58 PM
How can you possibly be objective with a nebulous category like "Programming Language"? How are you weighting each category? Or do you consider "Framework Concept" to be equally important to "RSS/Atom"? Know what would be neat? An interactive form where people can assign values based on what is important to them in a framework, and have those be multipliers to your score. Everyone gets a personalized output.

#

Evaluating Web Development Frameworks: Rails and Django (part 1/15)

Posted by: linoj on February 27, 2007 01:39 PM
You're right. One's evaluation will at least be partially subjective, and ratings could be weighted. The objective parts will be fact-based, the subjective parts would be based on your own preferences and priorities. (And you'll see, I sort of cheat w/r/t RSS and some other minor features). In many ways, its the process of evaluation that's most telling rather than the final quantitative rating.

#

Re: How can you be objective?

Posted by: Gor on February 27, 2007 03:10 PM
Maybe you get the objective version of this "whitepaper" in the $15 version linked on the side!

#

Evaluating Web Development Frameworks: Rails and Django (part 1/15)

Posted by: jc on February 27, 2007 03:26 PM
Seems to me like it all comes down to language preference. Python or Ruby. Pick your favorite language, and you'll love either framework.

#

Have You Actually Used Something Like This?

Posted by: Ben Craigo on February 27, 2007 04:00 PM
While I can appreciate where you are going with this I have to agree with Mark Thomas on this one. Your disclaimer states... "Disclaimer: While I come at this with a significant level of experience, this report is the result of my review without the benefit of having built a real project with either framework. " You've kind of lost me there. Plus, from a Technical Manager's perspective, there's a lot more to consider than just these two languages. And there's more to consider in the environment (existing skill sets, infrastructure, legacy apps, etc.). Maybe I'm jumping the gun a bit and will get a chance to see this later in the series. Ben http://bencraigo.wordpress.com

#

Re: Evaluating Web Development Frameworks: Rails and Django (part 1/15)

Posted by: linoj on February 27, 2007 11:24 PM
jc: Did you read the last section already? not fair! yes, that's part of it :) ben: Sometimes the most objective perspective comes from those who are seeing things fresh. That's what I'm bringing to the table. It may be a fleeting advantage, and that's why I've tried to capture it in writing now.

#

Evaluating Web Development Frameworks: Rails and Django (part 1/15)

Posted by: Dave on May 25, 2008 01:41 PM
I've posted a poll for the two stacks at: http://www.railsordjango.com

#

Post a new comment

: This is not spam

Name :