Alan Kay on web browsers, document viewers, Smalltalk, NeWS and HyperCard (2021)
In the early days of a field or subfield there is such an explosion of creativity, but this is followed by a series of consolidations and we tend to forget the “losers” of the initial competition and the beautiful paths they illuminated. See C&#x2F;Unix vs Lisp&#x2F;Lisp Machines vs Smalltalk&#x2F;Alto. Or NeWS vs X.<p>Alan Kay shows the beauty of HyperCard (the “loser” in networked hypertext) vs Web. We had in HyperCard a visual hypertext app dev and reading environment that was trivially programmable &#x2F; writeable in some very powerful ways for any determined user, using a GUI authoring tool. Now what do we have? Yet another Algol like programming language whose capabilities are severely constrained — and more importantly which is is not remotely a realistic <i>user</i> authoring environment, hell even paid professional programmers have trouble keeping up with JavaScript, the browsers as dev platforms, and the surrounding tooling&#x2F;libs.<p>More broadly, it’s dismaying how rapidly and seemingly permanently our collective expectations as developers have fallen. Kay is right: What we have in the web stack is not enough and we should not settle.<p>A quote from Kay I enjoyed:<p>“You have to include <i>all media</i> that computers can give rise to, and you have to do it in a form that allows both “reading” and “writing” and the “equivalent of literature” for all users.<p>“Examples of how to do some of this existed before the web and the web browser, so what has happened is that a critically weak subset has managed to dominate the imaginations of most people — including computer people — to the point that what is possible and what is needed has for all intents and purposes disappeared.”<p>It’s also amazing what we settled for in networked computing when I read his notes in this system from 40 years ago:<p>“ perhaps the best early structuring and next stage design of Unix was Locus by Gerry Popek and his researchers at UCLA in the early 80s. Locus allowed live Unix processes to migrate not just from one machine to another on a network, but to a variety of machine types. This was done by combining the safety required for interrupts with multiple code hooks in each process, so an “interrupt” could allow the process to be moved to a different machine and resumed with different (equivalent) code. ”