MudAndCrystals

 

Someone once described a minimalist, highly-structured computer language as a crystal, and the Lisp programming environment in contrast as a ball of mud. A crystal is order incarnate. Mud, on the other hand, is a chaotic mess. The more you add to a mud ball, the bigger it gets—but it's still a mud ball.

People argue that you cannot achieve power by adding feature upon feature to a design. Instead, they say, you move forward by removing unnecessary elements, ruthlessly simplifying structures, cleaving off flaws, and polishing facets. The result is what mathematicians call completeness and orthogonality. A set is complete when it spans the space of all possibilities; its components are orthogonal when they are all independent of one another. In other words, the crystalline ideal does everything in a single pure way, with zero redundancy.

That's one approach to perfection. Perhaps Euclid did glimpse beauty bare via geometric logic. But the actual universe is complex! The information content of a crystal is tiny; every atom's location is entirely determined by the arrangement of a single unit cell. A ball of mud, on the other hand, seethes with life from the microscopic level on up. Mud sticks together and is resilient; it doesn't shatter with a tap at the wrong angle; it's unpredictable, full of surprises. Mud has a high information content. It's the place to find beauty, and power, in the real world.

(see CrystalsMudAndLife)

Saturday, November 13, 1999 at 10:40:18 (EST) = 1999-11-13

TopicProgramming


(correlates: CrystalsMudAndLife, NotByAddingFeatures, KiloPixAndMegaWords, ...)