
The alternative to APL was LISP. Once you got beyond the heavy use of parentheses to structure symbolic expressions, its simplicity was one of aesthetic perfection. It was also grounded in mathematics, but it was the minimalist mathematics of the necessary and sufficient conditions for representing an algorithm. It had only two data types: atoms and the symbolic expressions that combined the atoms. It had Turing universality, meaning that it could apply its own interpreter to symbolic expressions that represented programs. Thus, it was not only stunningly simple but also amazingly flexible.
Comparing APL and LISP was a great sport back in my teaching days. I always felt the best metaphor for APL was the diamond, the ideal of a perfectly assembled structure. The problem with a diamond, however, is that you cannot change it. As soon as you tamper with the structure, you lose the diamond. So the complementary metaphor for LISP was the ball of mud. LISP would let you modify it in all sorts of ways, but it was always LISP. No matter how you push and pull at a ball of mud, it remains a ball of mud.
The thing about diamonds, however, is that they seem to have acquired their value from certain arbitrary ideological standards; but ideologists never seem to bother with balls of mud. As a result we can go to war (or even enslave other civilizations) over diamonds; but we never seem to take such extreme measures over balls of mud. Perhaps we would be more successful in our conversations if we talked more about balls of mud and less about diamonds.
No comments:
Post a Comment