The initial cut of the software that drives ongoing is not scaling well as the number of essays grows, and it's keeping me from making a couple of changes I have in mind. So, I'm stumbling from LAPdog to LAMPlight status, that is to say adding Mysql to the existing Linux/Apache/Perl software basis. Which means that there are splodges of SQL dotting my perl code like zits on a teenage face. In theory, I like SQL a lot. In practice it revolts me, and I'm not sure why.
When I'm working in Perl I like Perl. When I'm working in Java I like Java. When I'm working in C, or elisp, I like those languages too.
But when I have a nice idiomatic flow of whatever-it-is I'm writing, and then I have to jam in something like this...
SELECT UNIX_TIMESTAMP(checked) FROM Essays WHERE uri='$uri';
... well, it makes me grumpy.
I remember, back in University, learning about normalization, and the relational algebra and the relational calculus, and appreciating even way back then that this was a very sane way to structure a bunch of high-value data and then build your applications around it.
And to this day I get warm fuzzies when I know that the important stuff is sitting in an RDBMS and I can come along tomorrow and build a new app to run against it with reasonable expectation of getting the pieces to line up the way I want.
Especially since these days, if I need to interoperate with someone outside my firewall I can, with most packages, press a button and get a nice XML serialization to send them, and then it doesn't matter if they don't share my taste for RDBMSes, or if they do but regard my database design as ludicrously wrong.
Also, I know some of the people who've been labouring over the years to give us the successive SQL standards, and they're real smart people with a reasonably sane and open process, and they've been working awfully hard for everyone's benefit.
But damn it's ugly stuff. Is there a better way?
Having said that, I should note that this is my third Mysql project, and that package is really becoming a contender. I always thought that RDBMS was one place where the commercial infrastructure wasn't under any serious threat from Open Source alternatives, but if I were Larry Ellison or a DB2 or SQLServer product manager, I'd be getting worried.