The Perils of Closed Worlds
Hackers love closed worlds. I don’t mean closed in the sense of “not being open source”, but in the sense of being islands. Prime examples of such systems are early lisp systems, Smalltalk and most of its descendants. Such systems had two major characteristics that set them apart.
- All or nothing: The operating system, programming language and user-level applications were tightly integrated. The line between compiler and kernel was blurry.
- Enforced primacy of a single programming language: This is a corollary of the point above, but deserves special mention. The entire system (except some low-level processor-specific routines) was implemented in one programming language. It was hard and usually impossible to interface with other languages.
Take, for example, Squeak, a modern descendent of Smalltalk. You can’t just fire up your favorite editor, write a Squeak program, and compile or interpret it. You have to download an entire virtual machine, which presents you its own interfce, its own world, with its own editor and utilities and tools and jargon. You have to leave your world, and go into Squeak’s world. This is what I mean by “all or nothing.”
The existence of closed-world systems is no accident, because hackers love them. They are consistent worlds unto themselves. They are fueled by the desire of one designer to build everything just so, and to not let anyone else soil it. Programming is theory-building, which is just a fancy way of saying “world building.”
Closed systems might be beautiful and elegant, but ultimately most do not succeed. They are too imposing, too inflexible. Above all, they don’t encourage promiscuity of their constituent parts.
The most well-known counterpoint to closed systems, the anti-closed system, is, of course, Unix. Nearly every part of it, from the very beginning, was “detachable”. You could take the OS, the tools, the editors, the languages and make them work on almost any other system under the sun. Many of them might have been conceived in and for Unix, but they were only loosely tied to it. They were promiscuous.