07.09.09
SQHell
Been doing quite a bit of SQL programming on and off. Although SQL is old as hell. MySQL on web and sqlite on mobile make it pretty much a compulsory skill for the modern developer to master for most types of data storage and retrieval.
Of course, SQL on its own means shit unless you spend some time designing a sensible schema which balances your normal form with your performance needs. Schema development can be really hard work to get right, and I find that it’s an iterative processes in which assumptions you make upfront turn out to be bogus or ineffective.
So to my delight, I’ve had to debug apps which just use a database as a dumping ground with no though to atomicity, poor rollback semantics and unjustified duplication of data across tables. The sort of thing you usually expect to see from an “enterprise consultant”.
The best illustration of the difficulty of expressing seemingly trival relationships between data is what has become known as the gay marriage problem (Or the Y2gay bug).