Back around 2005, I was at a talk by Alan Kay, where he revealed near the middle that he’d presented the whole thing from Squeak. This was one of my first ‘computers are fast now’ moments, because he’d played MPEG video with the decoder written entirely in Smalltalk and executed in an interpreter.
His point was summed up in a single sentence: ‘why would you use any program that isn’t a Turing complete programming language’. He was able to seamlessly demonstrate some of the things his team was doing to teach programming. At one point he had ants on his slides doing colour detection to run around the borders of his pictures.
Since then, other presentation tools have always felt very limited. Not being able to write simple programs to define paths for animations, for example, is painful and results in a long time tweaking things and copies of slides, rather than a 5-line program.
Great post, and I strongly agree. Just, wouldn’t the phrase “user-extensible” or “user-modifiable” be more accurate? We weren’t talking about programs modifying themselves, right?
If you’ve ever seen an older relative in a panic because Windows used to let you drag the taskbar to zero-height, you’ll have serious questions about this sort of thing.
For almost all applications, the tools and interface needed for development and customisation are completely orthogonal to those needed for regular use. The flexibility and user-customisation should exist, but the only applications that you modify using themselves are dev tools, which you then connect to existing programs you wish to modify.