Vembu’s Tenth Rule of Programming

Greenspun’s famous rule goes


Quote:

Greenspun’s Tenth Rule of Programming: “Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp”

Vassili Bykov explained the meaning of this: “that complex systems implemented in low-level languages cannot avoid reinventing and/or reimplementing (poorly on both counts) the facilities built into higher-level languages. Like garbage collection in OLE or keyword arguments in X”

I am not a Lisper. But I have witnessed something similar, which I will state below, borrowing Greenspun’s beautiful way of putting it. I have a feeling that some kind of mathematical equivalence can be established between Greenspun’s rule and mine, but that will be left as a research exercise ;-)

Vembu’s Tenth Rule of Programming: “Any sufficiently complicated C or Java program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of a relational query interpreter”

In fact, Paul Graham’s On Lisp book has an entire Chapter (Chapter 19) devoted to building a query compiler, which provides about half the functionality of what a half-way decent relational system will give you for free - as in Postgres, Firebird, SQLite, MySQL (partly free) - what size do you want?

Indeed, the traditional Map/Reduce functional paradigm in Lisp and other functional languages is partly doing the job of part of what a relational database would do. Microsoft Language Integrated Query (LinQ) is further evidence.

No Comment

No comments yet

Leave a reply