Accidental Complexity

I just started looking at TurboGears for a web application, we are building. I needed a light-weight framework and since I love Python, I decided to try something with TurboGears. Normally when I try something new, I first try to find a book in O’Reilly’s Safari (for which I have been a subscriber for a few years). There are a couple of reasons for this:

  • A book on Safari is a kind of leading indicator that the technology is going someplace
  • If someone cares enough to write a book (which takes a while), it may be a technology worth looking at

I found one from Prentice-Hall, a publisher of quality books.

The good news is that many, perhaps most, of your problems don’t stem from what Fred Brooks (in his famous essay No Silver Bullet) called the “essential complexity” of the task. Instead, many of your problems are imposed on you by your programming language, your database tools, the nature of web development, and the framework/tools you are currently using.

That might not seem like that’s good news to you. But it is! Nobody can solve the essential problems of your application for you. Those problems are unique to the application you want to write, and there’s no way around solving them yourself. Fortunately, lots of people are working on TurboGears to move all the accidental complexity of your application into the TurboGears framework so that you don’t have to write that code any more. They do this because all of that accidental complexity applies to their projects, too.

When someone promises to take care of the accidental complexity and leave you to deal with the essential complexity of your application, how can you refuse? It is at least worth a try.


One thought on “Accidental Complexity”

Comments are closed.