For those who have not heard Greenspun’s Tenth Rule, it states that:
Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.
By the way, Greenspun‘s rules 1 to 9 do not exist.
Seven months ago, during a discussion about Prolog, I asked Ozan S. Yigit to reformulate Greenspun’s tenth rule for Prolog. Oz replied:
Any sufficiently complicated modern program contains a buggy, informal implementation of prolog that casual observers confuse with lisp.
Just hours earlier I was basically a listener in a discussion that involved NoSQL. While clearly I am not a NoSQL advocate, I am no hater either, but what I heard lead me to the following reformulation of Greenspun’s rule, this time involving the relational model:
Those who blindly adopt #NoSQL will discover a variation of Greenspun’s tenth rule
I am sure that many other variations exist. In fact the Wikipedia page on Greenspun’s Tenth Rule contains a Prolog variation similar to Ozan’s and an Erlang version. So if you know of (or can make up) any other, please post it here (or somewhere).