December 22, 2008

...Learn TDD with Codemanship

OCL is a dead language. Universities: stop wasting time teaching it.

A sure sign that academia and industry are out of step in the software industry is the sordid tale of the Object Constraint Language.

OCL is a declaritive language that complements the core Unified Modeling Language, allowing us to extend our models with precise expressions (e.g., formulas) and constraints (i.e., rules). Using OCL, it's possible to create precise, testable specifications with UML. It's also possible to turn those precise models into executable code, if you're feeling especially adventerous.

It is also only very, very rarely used outside of academic institutions. I can think of two occasions in the last 10 years when I have been called upon to use OCL on a real project by someone else who uses OCL. And the people in question were only one degree of separation from the chap who invented OCL in the first place, so those occasions were probably a statistical aberration - a symptom of the company I keep.

But every month several hundred people download my Java OCL tutorial. And the web stats show very clearly that they are almost all doing so from behind University firewalls.

OCL, to me, is the Latin of specification languages. The only people who speak it are people who teach it, on the whole. Out here in the real world, OCL is a dead language. You may recognise its influence in the development of some Java libraries (again, written by academics who teach OCL), but you'll be very hard-pushed to find a Java programmer working on commercial prjects who has maybe even heard of the language.

It's with some regret, then, that I seem to have become something of an international authority on OCL, since there is absolutely no demand for OCL training and coaching whatsoever here in the UK.

I do get academics approaching me for help with OCL-based projects. But why are they still flogging this particular dead horse? It's certainly not going to do their students any good to learn OCL.

If you don;t believe me, search on the big IT job sites for "OCL" or "object constraint language". Nada. Nil points, as they say. There's no demand for it at all. Not a sausage. Time spent learning OCL today is time wasted. That time could be spent practicing writing better unit tests, or learning to automate acceptance tests with FitNesse, Watir or Cucumber. employers are falling over each other for those kinds of skills.

OCL, though, has gone to meet its maker. Its pushing up the daisies. It is an ex-language.

Posted 12 years, 9 months ago on December 22, 2008