Code for Concinnity

beautiful and elegant solutions


Software Requirements and Management

I’ve been reading about software project management, agile practices and stuffs for several months now, almost becoming the metaphorical PM that’s read 20 books on agile. Came across this post that’s hands down the most true, funniest description about software management I’ve seen.

Software Requirements Reality

A man is flying in a hot air balloon and realizes he is lost. He reduces height and spots a man down below. He lowers the balloon further and shouts: “Excuse me, can you tell me where I am?” The man below says: “Yes you’re in a hot air balloon, hovering 30 feet above this field.” “You must be a software developer,” says the balloonist. “I am,” replies the man. “How did you know?” “Well,” says the balloonist, “everything you have told me is technically correct, but it’s of no use to anyone.” The man below says, “You must work in business as a manager.” “I do,” replies the balloonist, “but how did you know?” “Well,” says the man, “you don’t know where you are or where you are going, but you expect me to be able to help. You’re in the same position you were before we met but now it’s my fault.”
Published by kizzx2, on June 5th, 2009 at 3:21 am. Filled under: Agile Tags: , , , No Comments

Ruby on Rails vs Django

The contest between the flagship MVC frameworks of the two of the best breed programming languages out there. Django is very interesting to study because it takes quite different approaches from that of Rails, and is probably one of the very few frameworks that isn’t a Rails clone.

1-minute summary

This funny piece kind of sums it up:

  • Person 1: “What do you do for a living?”
  • Person 2: “I work with computers.”
  • Person 1: “So do I! What do you do with computers?”
  • Person 2: “I’m a Web developer.”
  • Person 1: “So am I! Design, client-side programming or server-side programming?”
  • Person 2: “Server-side programming.”
  • Person 1: “Same here! Do you use dynamically typed languages or statically typed languages?”
  • Person 2: “Dynamically typed languages.”
  • Person 1: “So do I! Do you use a Web framework, or do you roll things on your own?”
  • Person 2: “I use a Web framework.”
  • Person 1: “So do I! Django or Rails?”
  • Person 2: “Django.”
  • Person 1: “Die, heretic scum!”

Opinionated, original opinions

  • The Django guys seem to be more pragmatic. They would say “maybe it’s too much magic for experienced programmers,” where the Rails folks would day “Look! It’s magic! The meta-programming is just elegant!”
  • The Django people wrote the official manual. Rails still don’t have many serious documentations at this point other than screencasts and RDoc. Understandable when DHH’s too busy participated in flame wars lol
  • Is it a co-incident that most resources I found regarding Rails vs Django are hosted on the Django’s Web site?

OK, those were focused on the communities more than the frameworks themselves. Heck, I said I was opinionated!

Something about the languages

A comment from a blog post: Why I moved from Ruby on Rails to Python/Django and back kind of ties up the Ruby vs Python issues quite nicely, and neutrally:

The fact that you need to be slightly more explicit in Django is actually considered a feature, since that increases readability and ease of maintenance. I do agree though that while Python is a pleasant language to develop and maintain code in, Ruby seems to be more focused at being fun. It feels like it lets you be ‘clever’ with your code in a way that Python won’t allow. For better and for worse, I’d guess that part is quite much just a matter of taste.

Let’s see the gurus sort it out

We also have a video of SnakesAndRubies, where we see “Adrian Holovaty, one of the creators (plural) of the Django framework for Python, and David Heinemeier Hansson, the creator (singular) of Ruby on Rails framework” go into debate.

Finally, some hard-core papers

For those of you who like hard-facts, people have wrote formal reports using scientific methods:

Opinionated summary

Disclaimer: I have only read the stuffs above when I write these. I myself, at this point, is a Rails person. I haven’t written a single line in Django (definitely worth a try when I get the time :)

After some heavy-reading, I came to the conclusion that Rails is basically a DSL written for MVC framework, and a heavy-duty DSL indeed. Django, on the other hand, really feels like an MVC framework written in Python.

What that means, very generally, is that you’d see a lot more magic in Rails than in Django.

Published by kizzx2, on June 2nd, 2009 at 1:18 am. Filled under: Web Tags: , , , , , , , 2 Comments