4 ms·
I used and programmed HyperCard quite a bit back in the day (even C extensions into HyperCard!). The jump from HyperCard to web is bigger than it appears from t
by mamp 7y ago
I used and programmed HyperCard quite a bit back in the day (even C extensions into HyperCard!). The jump from HyperCard to web is bigger than it appears from the UI:
- to make HC work on the hardware at the time it had quite a lot of optimised MC68000 assembly so it wasn't very extensible which was why it didn't take off like visual basic i.e. you could build stacks but not really apps
- there was no declarative format, stacks were binary files
- It didn't support networking at all as far as I can remember
- Networking at Apple based on AppleTalk so their thinking was very much in the local network, in fact their TCP/IP extension (not built into the OS at the time) was not very well supported.
HyperCard was great, but it was never designed with a browser model in mind, mainly sharing binary stacks between people.
- paulrpotts 7y agoAll very true - I also wrote XCMD/XFCN plug-ins back in the day, and my first published technical articles, in MacTutor and Washington Apple Pi magazine, were about how to do that. HyperCard had more innovations that I miss. One of them was the ability to paint on the card background and foreground layers separately. This meant that you could cover black pixels in the background with white pixels in the foreground. The HyperTalk language was kind of an oddball, quirky mess; it was designed to closely resemble English, but this actually tended to make it harder to come up with just the right syntax to do what you wanted. But that object-oriented model was carried over into AppleScript, and the whole scripting model for writing scriptable applications. It was not exactly easy to write code that would follow the OSA scripting model, but applications that supported it could be "puppeted" to do some amazing stuff. For example, I wrote a C++ program in PowerPlant which would "puppet" Quark XPress to generate customized newsletters. Atkinson deserves a lot of credit for making a 68000 do things people could barely believe could be done without custom graphics hardware, and his whole region model (described in a patent) is amazing. And you can now browse the source code for MacPaint and QuickDraw: https://computerhistory.org/blog/macpaint-and-quickdraw-source-code/ https://computerhistory.org/blog/macpaint-and-quickdraw-sour... It's not really legible if you don't have some expertise in 68000 assembly language, but even if you don't, it's still a model of clarity and an inspiration.
- jandrese 7y agoHypertalk (the language of HyperCard) had a lot of syntactic sugar, but was pretty easy to get started with even with almost no programming background. For example, a very simple button might have a script that looks like: on mouseUp ask "What is your name?" put it into card field "Name" end mouseUp You could get pretty far by reading scripts and trying things out in Hypercard. I also tend to think that the idea of network aware Hypercard sounds super cool, but would have been a security nightmare. Hypercard wasn't written in an era of adversarial coding, it would have been knocked over 10 different ways every day by hackers. Code and content were heavily mixed together and there was no permission model beyond preventing people from editing your stacks by accident. Every stack or even card you loaded would be downloading and executing code.
- DonHopkins 7y agoHyperCard inspired Arthur van Hoff to develop a network aware version of HyperCard in PostScript for James Gosling's networked-PostScript-based NeWS Window System. It was originally called "GoodNeWS", then called "HyperNeWS", then finally released as a product called "HyperLook", which I worked on with Arthur and used to port SimCity to X11/NeWS on SunOS/Solaris. https://en.wikipedia.org/wiki/Arthur_van_Hoff https://en.wikipedia.org/wiki/Arthur_van_Hoff Arthur later went on to Sun, wrote the Java compiler in Java, developed the AWT user interface toolkit, then formed Marimba with Kim Polesi and Jonathan Payne and others from the original Java team, where they developed Castanet and Bongo. https://www.wired.com/1996/11/es-marimba/ https://www.wired.com/1996/11/es-marimba/ >1996-11-01: Tuning in to Marimba. Kim Polese wants you to upgrade your HTML-based browser to a more interactive, more TV-like, Java-based "tuner" by the name of Castanet. >Marimba's first product, scheduled to be announced in early October, is the punnily named Castanet, which aims to push Java toward its full potential. Java was created to deliver interactive content over distributed networks, and its much-hyped arrival last year promised to completely change the way information and entertainment are delivered electronically. The first popular Java programs have been based on HTML - for example, the Java applets that lend some animation to boring Web pages. But Java doesn't need the Web to fly. It was designed to communicate over any kind of decentralized system. [...] Marimba developed Bongo, a Java-based gui toolkit / user interface editor / graphical environment, inspired by HyperCard (and HyperLook), which they used to develop and distribute interactive user interfaces over Castanet. https://people.apache.org/~jim/NewArchitect/webtech/1997/10/note/index.html https://people.apache.org/~jim/NewArchitect/webtech/1997/10/... >Feel the Beat with Marimba's Bongo, By Chris Baron >In 1996, four programmers from the original Java-development team left Sun to form Marimba and produce industrial-strength Java-development tools for user interface and application administration. Bongo, one of Marimba's two shipping products, allows developers to create either a Java-application interface or a standalone Java-based application called a "presentation." A Bongo presentation resembles a HyperCard stack -- it allows developers to quickly create an application with a sophisticated user interface, but without the tedious programming of directly coding in Java or C/C++. Bongo's nonprogramming, visual approach makes it ideal for producing simple applications that don't involve a lot of processing, such as product demonstrations, user-interface prototypes, and training applications. Bongo is fully integrated with Castanet, Marimba's other product, a technology for remotely installing and updating Java applications. Bongo was unique at the time in that it actually let you edit and dynamically compile scripts for event handlers and "live code" at run-time (in contrast with other tools that required you to recompile and re-run the application to make changes to the user interface), which was made possible by calling back to the Java compiler (which Arthur had written before at Sun, so he knew how to integrate the compiler at runtime like a modern IDE would do). Without the ability to dynamically edit scripts at runtime (easy with an interpreted language like HyperTalk or PostScript or JavaScript, but trickier for a compiled language like Java), you can't hold a candle to HyperCard, because interactive scripting is an essential feature. Danny Goodman, who wrote the book on HyperCard, also wrote a book about Bongo. Arthur later founded Flipboard and JauntVR, and now works at Apple. https://www.amazon.com/Official-Marimba-Guide-Bongo-Goodman/dp/1575212544 https://www.amazon.com/Official-Marimba-Guide-Bongo-Goodman/... I've written lots more about HyperLook, NeWS and SimCity: https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee-goodnews-99f411e58ce4 https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee-g... https://news.ycombinator.com/item?id=19837817 https://news.ycombinator.com/item?id=19837817 https://news.ycombinator.com/item?id=18314265 https://news.ycombinator.com/item?id=18314265 https://news.ycombinator.com/item?id=20182294 https://news.ycombinator.com/item?id=20182294 https://news.ycombinator.com/item?id=19007885 https://news.ycombinator.com/item?id=19007885
- scarface74 7y agoThere was actually some type of Gopher server built on top of HyperCard. I don’t know all of the technical details, but my first paid program was a college that asked me to port a freeware Hypercard chat app I wrote to it.