Typesetting used to be the exclusive domain of, uhm, typesetters. Then laserprinters and Adobe came along and empowered ordinary people to create exceptionally bad artwork and diner menus that looked like extortion mail assembled from cut-out newspaper letters. Finally the geeks had produced something useful! Finally computers could be used by ordinary people to get some real work done! It’s all point and click, what you see is what you get! Next, let’s empower the user to write his own software! How hard can that be? The problem is that programming is about sweating the small stuff, lots of it. Programming is not about manipulating images or data, it is about constructing an imaginary machine consisting of thousands of moving parts. The attractive thing about programming is that you can control every detail of the software. What you can say becomes reality, just say it comprehensively and don’t forget the details. This is in stark contrast to the “Fido – go… fido – bad dog… fido… over there! fido… fetch stick”-world of graphical user interfaces. Point-and-click-WYSIWYG monkeys can only dream of the power command-line jockeys and programmers have at their disposal. What most people overlook is that fido and the countless details cannot be reconciled. It is not “making programming available to regular folks — how hard is that, you idiots?”, it is the other way around: “Just SAYING what you want in a precise, unambigous language and actually GETTING it immediately — how much easier do you want that, you idiots?” The only thing that gets in the way is that most people cannot even say what they want because the sheer complexity of all the interdependent details overwhelms them, i.e. their window of consciousness is too small.