Randy Nelson is awesome and brilliant! He deeply understands programming, teaching, performance and entertainment, and is really great to work with and learn from. I was very lucky that we worked together on ScriptX at Kaleida Labs, where he was in charge of training developers to program ScriptX. Yes, of course, he would actually juggle in class!<p><a href="https://en.wikipedia.org/wiki/Kaleida_Labs" rel="nofollow">https://en.wikipedia.org/wiki/Kaleida_Labs</a><p><a href="https://en.wikipedia.org/wiki/ScriptX" rel="nofollow">https://en.wikipedia.org/wiki/ScriptX</a><p><a href="https://www.donhopkins.com/home/catalog/lang/scriptx/scriptx.html" rel="nofollow">https://www.donhopkins.com/home/catalog/lang/scriptx/scriptx...</a><p>This old poorly compressed ScriptX propaganda video is embarrassingly cheesy, but it shows John Wainwright (who went on to wrote MaxScript for 3D Studio Max) and Randy Nelson explaining dynamic composition by juggling objects, at 6:28! I love his lucid explanation and delightful motivation of object oriented programming.<p><a href="https://www.youtube.com/watch?v=9fbWCHXl5W8&t=6m28s" rel="nofollow">https://www.youtube.com/watch?v=9fbWCHXl5W8&t=6m28s</a><p>Here's an article "ScriptX and the World Wide Web" that I wrote around 1995 describing the possibilities of integrating ScriptX with the World Wide Web -- kinda like what kids these days call "AJAX":<p>>"Link Globally, Interact Locally"<p><a href="https://www.donhopkins.com/home/catalog/lang/scriptx/scriptx-www.html" rel="nofollow">https://www.donhopkins.com/home/catalog/lang/scriptx/scriptx...</a><p>My job was writing code, documentation and white papers to demonstrate ScriptX programming and capabilities for developers, which Randy would explain in class. Dynamic composition of interactive downloadable multimedia objects was something that Java just couldn't do at the time, so I develop some demos to illustrate what the point of all that was, and to prove the possibilities of distributing interactive multimedia objects via the web in 1995.<p>One demo of dynamic plug-together composition of downloadable objects that I developed was the "ScriptX Pizza Demo". It distributed separate pizza crusts and topping objects in ScriptX Bento "title containers" that you could download and plug together into an interactive pizza. To demonstrate interactive behavior, you could drag the individual toppings around on the crust, and it featured spinning "eyeball" pizza toppings (inspired by Jeremy Huxtable's "NeWS Big Brother", which was also the inspiration of xeyes, of course.)<p>>ScriptX Pizza Demo<p>>The ScriptX Pizza Demo, at "<a href="http://www.kaleida.com/official/pizza"" rel="nofollow">http://www.kaleida.com/official/pizza"</a>, lets you construct a pizza by plugging together ScriptX objects from several title containers delivered via the World Wide Web. First you select a pizza crust in one title container, then you can select any number of pizza toppings in separate title containers. They're dynamically loaded into the KMP and locally composed in a window, that you can interact with by dragging the toppings around on the crust. There's even a "big brother" spinning eyeball topping, that animates as you move your cursor around the screen!<p>>This demonstrates network distribution of cross platform code and media, with local interactivity, direct manipulation, animation, dynamic binding, and plugging together objects from different containers.<p>>There is an extension to ScriptX on the Mac that enables it to ask NetScape to open any URL, so ScriptX can cause NetScape to display a web page, load another title container, and even send messages to interactive web services (like submitting an order for a pizza).<p>>ScriptX Web developers will go far beyond mere pizza toppings, publishing innovative interactive experiences on the network, no longer limited to the static text, graphics, and forms of HTML.<p>>Benefits of ScriptX to Web Developers<p>>As a general purpose object-oriented multimedia scripting language, ScriptX has many uses for web developers. It can import and export various file formats, index, search and manipulate multimedia databases, automatically generate HTML from macros and templates, draw and composite images and produce corresponding image maps, and serve as an open ended programmable hypermedia synthesizer.<p>You could think of it as a simpler but network distributed componentized version of PizzaTool, which I developed earlier at Sun:<p><a href="https://medium.com/@donhopkins/the-story-of-sun-microsystems-pizzatool-2a7992b4c797" rel="nofollow">https://medium.com/@donhopkins/the-story-of-sun-microsystems...</a><p>Here's the documentation for the ScriptX web module, which let you use ScriptX as a server-side scripting engine via WebStar, in conjunction with a client-side scripting engine as a Netscape helper app, to dynamically (and pre-) generate html and title containers for users to download, plug together, and play with in the ScriptX Kaleida Media Player helper app.<p>Having the same scripting language on both the client and server (like JavaScript in the browser + node on the server), and dynamically generating and downloading interactive persistent objects and HTML, are all pretty common and boring clichés now, but it was exciting and needed to be explained and demonstrated with a working proof-of-concept in 1995:<p><a href="https://www.donhopkins.com/home/catalog/lang/scriptx/web.html" rel="nofollow">https://www.donhopkins.com/home/catalog/lang/scriptx/web.htm...</a><p>>This is the documentation for the ScriptX Web module. The Web module is a toolkit for integrating ScriptX with World Wide Web browsers, generating HTML, and implementing interactive services and distributed multimedia authoring tools.<p>Here's an illustrated transcript and video of a live improvisational ScriptX demo that I gave at the 1995 Apple World Wide Developers Conference -- you can see how Randy inspired me to improvise crazy live performance art by the seat of my pants!<p><a href="https://medium.com/@donhopkins/1995-apple-world-wide-developers-conference-kaleida-labs-scriptx-demo-64271dd65570" rel="nofollow">https://medium.com/@donhopkins/1995-apple-world-wide-develop...</a><p>>To make any sense of this, you should realize that it’s live improvisational performance programming art. The graphical and audio artwork are just ugly placeholder “programmer art”. The references to “great content” are laughably ironic!<p>ScriptX may have failed in the market and lost out to Python, Java and JavaScript, and Steve Jobs finally said "No" to it, but I sure learned a lot and recovered from the mistakes, I continue applying the lessons to later work, and I had great fun working with Randy Nelson!<p><a href="https://medium.com/@donhopkins/focusing-is-about-saying-no-steve-jobs-wwdc-97-ff0174c171d0" rel="nofollow">https://medium.com/@donhopkins/focusing-is-about-saying-no-s...</a><p>>“Focusing is about saying no.” -Steve Jobs, WWDC ‘97. As sad as it was, Steve Jobs was right to “put a bullet in OpenDoc’s head”. Jobs explained (and performed) his side of the story in this fascinating and classic WWDC’97 video: “Focusing is about saying no.”