Tuesday, September 11, 2007

Framework Diagram







I was reading another PHP vs. RoR discussion on Slashdot and started thinking about web frameworks again. A short list of frameworks, based arbitrarily on perceived mindshare:

  • Ruby on Rails
  • Django - Python
  • TurboGears - Python
  • CakePHP
  • Symfony - PHP
  • Catalyst - Perl
  • Struts - Java
My apologies if I've left your favorite out. I'd probably like to learn more about it. In practice, I've only used two frameworks in production: Ambivalence (PHP version of Maverick) and Ruby on Rails. I liked Ambivalence for its simple MVC mapping but it is really scant on features and Rails was great for quick database entry forms.

In truth, by far the largest app I built was in VBScript on ASP. I developed on Chilisoft (then recently acquired by Sun) and deployed to IIS, and it wasn't fun, and the other developer on the project firmly followed the Model 1 architecture. From that experience, I came away with the understanding that frameworks are for those of us with smaller brains who *need* the abstraction to make sense of it. She couldn't grok my OO approach to sessions, but loved my hand written logging framework that I needed to sort through her spaghetti.

[That reminds me of the time I wrote a logger in bash...]

Actually, database handling doesn't bother me, even if I end up writing (or generating) tons of DAOs, and maybe it's time to use an ORM tool, though I don't like any of them out there, and am tempted to write my own every time I use one.

Form handling is another thing I don't really mind doing, though I admit to being pessimistic about user input and take a restrictive 90% rule on web facing apps that sucks for usability, or come-what-may attitude for intranet apps.

What I really need are business objects, and if I ever write something serious about security I need an authenication service. Probably 90% of those out there in the wild are actually worthless, even those written for "enterprise" frameworks. But in truth, 99% of the time, no one cares about your data except spammers, and to avoid them, you've got to outrun the bear and/or shark and just be a pain yourself.

[I'm not sure if that metaphor works, but most people probably won't get the reference so I won't have to defend it.]

Anyway, here's a pretty doodle, though it looks like it's not going to post well on this site. I'll try wordpress too.

No comments: