The Dongola Times

(Anachronistic) Dispatches from the Kingdom of Makuria.
04th of June, 2013

Frameworks are Futamura Projections

In one of the more-blatant exploitations of pure mathematics to make my life easier, I am henceforth going to be seeing web frameworks as Futamura Projections, and this means that I will use the Ruby on Rails ideology of “don’t repeat yourself”. Since every framework is actually the application (minus just a few parameters), every application I build will be a framework (given some parameters), and every framework I build will be an application (leaving room for parameters, of course).

And this is, in fact, the difference between libraries and frameworks. Libraries are like viruses in biology; there is a lot of horizontal gene transfer when you use a library, while frameworks are like sex within a species, where the parents are continued in the children, with a few parameters tweaked. If a stupid biologist—almost the only kind of biologist in the mainstream today—were to look at the apps on a computer, he would think they all arose from libc.a perhaps by random mutation or whatever; after all, all of libc is contained in all of the programs on the computer! “Yay! No need for the Programmer!” Clever can be wrong (the forgetting of which is responsible for our highest stupidities).

So, less talk, more type.