So what happened to NeXT and the original vision of WorldWideWeb.app
, a unified object-oriented and networked environment that was a web browser, authoring tool, and server all in one.. Did it scatter like a broken mirror, each piece reflecting what could have been?
Interface Builder, HyperCard, and XCode..
Interface Builder is descended from the NeXTSTEP development software of the same name.
It was written in Lisp and deeply integrated with the Macintosh Toolbox. Interface Builder was presented at MacWorld Expo in San Francisco in January 1987.
Denison Bollay took Jean-Marie Hullot to NeXT after MacWorld Expo to demonstrate it to Steve Jobs. Jobs recognized its value, and started incorporating it into NeXTSTEP, and by 1988 it was part of NeXTSTEP 0.8. It was the first commercial application that allowed interface objects, such as buttons, menus, and windows, to be placed in an interface using a mouse.
One notable early use of Interface Builder was the development of the first web browser, WorldWideWeb by Tim Berners-Lee at CERN, made using a NeXT workstation.
HyperCard was created by Bill Atkinson (as described in this interview ~10:50). Work for it began in March 1985 under the name of WildCard. In 1986, Dan Winkler began work on HyperTalk and the name was changed to HyperCard for trademark reasons.
It was released on 11 August 1987 for the first day of the MacWorld Conference & Expo in Boston,
I see, so the Interface Builder and HyperCard were released in the same year. Must have been something in the air, or water. In the linked interview, Bill says he was working on HyperCard when Steve Jobs left Apple, and he (the latter) tried to convince him to continue working on HyperCard at NeXT.
HyperCard is a software application and development kit for Apple Macintosh and Apple IIGS computers. It is among the first successful hypermedia systems predating the World Wide Web.
HyperCard combines a flat-file database with a graphical, flexible, user-modifiable interface. HyperCard includes a built-in programming language called HyperTalk for manipulating data and the user interface.
“What I wanted to make essentially was a software construction kit that allowed non-programmers to put together pre-fab modules, drag-and-drop a field here and a button there. ..With automatically retained information - you put something in a field, and unplug the computer, it’s still there..”
The database features of the HyperCard system are based on the storage of the state of all of the objects on the cards in the physical file representing the stack. The database does not exist as a separate system within the HyperCard stack; no database engine or similar construct exists. Instead, the state of any object in the system is considered to be live and editable at any time.
..The system operates in a largely stateless fashion, with no need to save during operation.
Browsers went one way: Viola, Samba, Mosaic..
Mosaic was inspired by ViolaWWW, which was inspired by HyperCard, which was inspired by Smalltalk (and LSD), which was inspired by Engelbart’s NLS, who was inspired by the 1945 article “As We May Think” by Vannevar Bush.
Editors went another way: GUI frameworks, widget toolkits, IDEs, visual app builders..
From the concept of an “object” in Smalltalk..
Smalltalk emerged from a larger program of Advanced Research Projects Agency (ARPA) funded research that in many ways defined the modern world of computing. In addition to Smalltalk, working prototypes of things such as hypertext, GUIs, multimedia, the mouse, telepresence, and the Internet were developed by ARPA researchers in the 1960s.
..the Smalltalk language and environment were influential in the history of the graphical user interface (GUI) and the what you see is what you get (WYSIWYG) user interface, font editors, and desktop metaphors for UI design.
The powerful built-in debugging and object inspection tools that came with Smalltalk environments set the standard for all the integrated development environments, starting with Lisp Machine environments, that came after.
Then I discovered that Gosling’s Emacs did not have a real Lisp. It had a programming language that was known as “mocklisp,” which looks syntactically like Lisp, but didn’t have the data structures of Lisp. So programs were not data, and vital elements of Lisp were missing. Its data structures were strings, numbers and a few other specialized things.
I concluded I couldn’t use it and had to replace it all, the first step of which was to write an actual Lisp interpreter. I gradually adapted every part of the editor based on real Lisp data structures, rather than ad hoc data structures, making the data structures of the internals of the editor exposable and manipulable by the user’s Lisp programs.
HyperCard’s never to be released successor, SK8, which was originally Lisp-based and eventually migrated to HyperTalk, which evolved into SK8Script. There’s an entire lesser known history of Apple and Lisp behind this, e.g., MacFrames, another predecessor to SK8, used Coral Lisp, which eventually was acquired by Apple and became Macintosh Common Lisp.
..SK8 (pronounced “skate”) was a multimedia authoring environment developed in Apple’s Advanced Technology Group from 1988 until 1997. It was described as “HyperCard on steroids”, combining a version of HyperCard’s HyperTalk programming language with a modern object-oriented application platform.
The project’s goal was to allow creative designers to create complex, stand-alone applications. The main components of SK8 included the object system, the programming language, the graphics and components libraries, and the Project Builder, an integrated development environment.
Bill Atkinson, the inventor of HyperCard was a student in the Smalltalk classroom series. Alan Kay, of the Language Research Group at Xerox PARC & inventor of Smalltalk, would advise him on Hypercard.
HyperCard also included the Hypertalk programming language, which would serve as one of the inspirations behind JavaScript.
Is React a poor man’s Lisp, or an evolutionary offspring of HTML to fill a niche, dreaming of becoming a direct manipulation programming tool?
What about web servers, confined to the realm of specialists - doesn’t everyone deserve the ease of serving their own data and programs from their own personal computer or device? And emails, why can’t we send messages directly from my screen to yours, without having to go through someone else’s server?
And how about WebAssembly, a universal low-level language that runs on (almost) any platform, which (almost) any language can compile to. That sounds awfully like a mythical Lisp to express computation and to build an inter-personal computing enviroment with. Shouldn’t it be simple, basic, and accessible enough for children and non-technical people to learn to write - or at least visually build with?
Or Web Components. It sounds like the building blocks of the future, with which we can create our own www.app
, a “web browser, authoring tool, and server all in one”.
But our timeline didn’t turn out that way, at least not yet.