The Perfect Web Framework

I’ve been paid professionally to work with or have messed around with many web frameworks. To name most of them:

  • Perl/CGI
  • RoR
  • a tiny bit of Django
  • ASP.NET WebForms
  • FubuMVC
  • MonoRail
  • a tiny bit of OpenRasta (sorry Sebastian, I keep failing to find time to dig into this more. I really mean to, I promise!)
  • Apache Struts
  • Java JSP
  • Java Servlets
  • Java Server Faces
  • A bunch of other of the myriad of Java web frameworks
  • PHP
  • ASP
  • A bunch more that I can’t remember or aren’t worth mentioning

Each of them offers a little, but at the huge expense of getting in your way a lot of time.

The more and more I use more of them, the more I come to the conclusion that the perfect web framework looks like this:

public string Get(IDictionary<string, string> request)
  //TODO: Stuff here

About Chad Myers

Chad Myers is the Director of Development for Dovetail Software, in Austin, TX, where he leads a premiere software team building complex enterprise software products. Chad is a .NET software developer specializing in enterprise software designs and architectures. He has over 12 years of software development experience and a proven track record of Agile, test-driven project leadership using both Microsoft and open source tools. He is a community leader who speaks at the Austin .NET User's Group, the ADNUG Code Camp, and participates in various development communities and open source projects.
This entry was posted in Humor, MVC. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Looks a lot like CGI back in the ’90s :)
    Just more testable

  • Ha! You need to look at rack:

    Almost exactly what you described :)

  • Slava

    Sinatra (Ruby web framework) rules!

  • You should check out WebMachine (an erlang web framework that is just about that simple)

  • I agree with Ben; that looks like Rack. OpenRasta is pretty close, as well, and handles expected HTTP response codes very well.

  • +1 for Sinatra. It’s a tiny tiny bit more involved than the story above, but beautiful nonetheless.


    @Slava “Sinatra (Ruby web framework) rules!” +1

  • Brian

    That’s almost identical to RACK. +1

  • I think the problem is that you can’t really “mess around” with frameworks, as it gets you nowhere. What you really need to do is LEARN a framework. The purpose of a framework is to make the common things very easy to do, provide stability etc. Unless you commit to a framework and learn it and use it, I don’t think you can really evaluate how useful it is. Frameworks should also be extremely intuitive so you don’t waste time trying to figure out how “they” did it, and should NOT get in your by keeping underlying functionality available (for the most part).

  • Shaun

    I’m late to this party but thought I’d
    weigh in with Sinatra and CherryPy.
    I have much the same history and preference
    that you describe and found these stay out
    of my way while still doing what I want.