16 November 2010

An Open and Shut Case

There was an OpenSQL camp up in Cambridge last month, and I considered going, but the agenda listed far too many NoSQL projects.  I decided that I'd just spend a long weekend being irritated.  Today I read Josh Berkus's write up on lwn.net, and this was the one nugget:

Some of the SQL geeks at the conference discussed how to make developers more comfortable with SQL. Currently many application developers not only don't understand SQL, but actively hate and fear it. The round-table discussed why this is and some ideas for improvement, including: teaching university classes, contributing to object-relational mappers (ORMs), explaining SQL in relation to functional languages, doing fun "SQL tricks" demos, and working on improving DBA attitudes towards developers.

There are times (quite often, truth be told) that I wish the relationalists had the gonads of the Right Wingnut Zealots or Tea Baggers or what-have-you.  The RM isn't just another data store.  By attempting to make nice with folks who refuse to listen, you'll just tick off the folks who do get it, but won't convince those who've no intention of being swayed.  Use relational databases to make better systems than the knuckleheads who belittle them.  Don't get mad (well, a bit some times), get even. 

If you go and read the piece, you'll find the attendees worrying about problems that the commercial vendors (with lots more folks, of course) dealt with years, if not decades, ago.  Some of the problems are fully discussed in textbooks; Weikum & Vossen in particular.  There Ain't No Such Thing As A Free Lunch.  If you want minimal byte footprint, maximum structural integrity, minimum modification hassle, then the RM as embodied in current industrial strength RDBMS's is the way to go.  Open Source databases can do the same, so long as they concentrate on implementing the fundamentals, and stop worrying about pandering to the FOTM programming language.  Languages will come and go (COBOL and java relegated to Big Business), but the data is forever.  Best put it some place safe.