Negli ultimi due articoli Retro Apple, ho evidenziato l’hardware di Apple che ha avuto un impatto sull’industria tecnologica nel suo complesso: la fotocamera digitale Apple QuickTake 100 e l’Apple Newton MessagePad 2100. Oggi, parlerò di un prodotto software Apple che ha cambiato il mondo e purtroppo non esiste più: HyperCard.
Le radici di HyperCard
HyperCard era uno strumento potente, ma estremamente facile da usare per creare “pile” – essenzialmente database di file piatti che usavano collegamenti ipertestuali per navigare in una pila di “schede”. Dovete capire che al tempo in cui HyperCard fu rilasciato per la prima volta nel 1987, non c’era il World Wide Web, quindi il concetto di hyperlink era completamente nuovo. HyperCard non solo ha avviato molti fan del Mac alla programmazione, ma ha anche ispirato alcuni degli strumenti che oggi diamo per scontati.
Lo sviluppo di HyperCard iniziò quando Bill Atkinson, uno dei progettisti chiave dell’interfaccia grafica del Mac, immaginò il sistema di schede collegate durante un trip di LSD. Si riferiva alla prima versione come WildCard, ma quando il collega Dan Winkler iniziò a lavorare sul linguaggio di scripting HyperTalk che avrebbe permesso agli utenti di assegnare azioni agli oggetti, il nome fu cambiato in HyperCard.
Mentre il prodotto Apple non esiste più se non sui Mac pre-macOS e sulle macchine Apple IIGS da collezione, la sua eredità vive ancora.
HyperCard esisteva come prodotto Apple per Mac e Apple IIGS fino al 2004. Potevi acquistarlo per 49,95 dollari, ma la maggior parte dei proprietari di Mac l’ha avuto gratis perché era incluso in ogni nuovo Mac. Nel momento in cui HyperCard fu abbandonato come prodotto, il bisogno di un tale strumento era stato ampiamente sostituito dal World Wide Web. Invece di stack indipendenti, il Web collegava le persone che usavano browser internet come Netscape o il terribile Internet Explorer a pagine web ospitate su server.
È affascinante considerare che il creatore del World Wide Web, Tim Berners-Lee, e la persona dietro il protocollo di trasferimento ipertestuale (HTTP), Robert Cailliau, furono entrambi influenzati da HyperCard. Il creatore di JavaScript, Brendan Eich, ha trovato il linguaggio di scripting HyperTalk come sua ispirazione. Anche il concetto di Wiki (cioè Wikipedia) ha trovato le sue radici in uno stack HyperCard creato dall’inventore di Wiki Ward Cunningham. Hai familiarità con AppleScript, il linguaggio di scripting di automazione sul Mac? Anch’esso è basato su HyperTalk. Se volete uno sguardo dettagliato su come funzionava HyperTalk, ecco un link a un PDF dello stack HyperTalk 2.4 Reference per gentile concessione di hypercard.org.
Perché HyperCard era così incredibile? Rendeva possibile a chiunque creare i propri programmi per Mac. Questi programmi erano fondamentalmente limitati solo dall’immaginazione degli “autori” (Apple non usava il termine “sviluppatore” per i programmatori HyperCard). Il linguaggio HyperTalk originale era interpretato, quindi stack complessi potevano essere lenti, ma nel 1989, Apple rilasciò HyperCard 2.0, che includeva un compilatore HyperTalk al volo per operazioni più veloci e un debugger integrato.
Apple voleva davvero che tutti fossero in grado di creare i propri programmi, quindi tutto ciò che riguardava HyperCard era il meno minaccioso possibile. I programmi erano “stack”, gli sviluppatori erano “autori”, e HyperTalk era un “linguaggio di scripting”. HyperTalk è considerato un “linguaggio di scripting di alto livello orientato agli oggetti”. Ciò che mi stupisce ancora oggi è che l’intero ambiente di sviluppo originariamente era contenuto in soli quattro dischetti a doppia faccia.
Drigevo un dipartimento IT basato su Mac per una compagnia di gasdotti quando HyperCard fu mostrato per la prima volta nell’ufficio Apple locale e il potenziale dello strumento catturò immediatamente la mia attenzione. Poco dopo la dimostrazione, Apple tenne un seminario di un giorno con l’autore Danny Goodman presso l’ufficio locale. Goodman aveva scritto un libro intitolato “The Complete HyperCard Handbook”, e tutti i partecipanti non solo ebbero la possibilità di provare HyperCard ma ricevettero una copia del libro gratuitamente. Questo libro è considerato il più venduto in assoluto per la piattaforma Mac ed è stato presumibilmente il libro di computer più venduto nella storia. Sono state vendute più di 650.000 copie, e so che la mia copia della prima edizione si è consumata rapidamente!
Goodman ci ha mostrato come fosse facile creare uno stack prendendo una “scheda” vuota, aggiungendovi campi e pulsanti, e scrivendo poi degli script che reagissero alle azioni del mouse o agissero sui dati inseriti in una scheda. Per cosa si potevano usare HyperCard e HyperTalk? Tutto e niente.
HyperMedia
Un esempio comune era una rubrica, ma l’applicazione si prestava a fare molto di più. Per esempio, diciamo che volevate creare un libro di testo interattivo. Potreste creare uno stack che iniziasse con una schermata del titolo, poi aveva un indice che – quando cliccato – vi mandava ad uno specifico capitolo o pagina. Ogni pagina poteva avere dei grafici, o forse dei link che facevano apparire un pop-up che mostrava la definizione di una parola o di un termine. Questa capacità era chiamata HyperMedia all’epoca, e descriveva l’uso di collegamenti in una presentazione multimediale.
Molti programmatori saltarono immediatamente su HyperCard come strumento per la prototipazione di GUI o la creazione di demo funzionanti di progetti completi. Era così semplice far apparire una scheda vuota (schermo), aggiungere pulsanti e campi, e poi aggiungere azioni che erano o iniziate dall’utente (cliccando su qualcosa) o che funzionavano dietro le quinte. Per le aziende che avevano bisogno di chioschi di computer auto-eseguibili, HyperCard era perfetto, dato che uno stack HyperCard poteva essere impostato per essere eseguito automaticamente quando un Mac si avviava.
Non pensate che perché HyperCard era facile da usare non sia stato usato da sviluppatori seri. Il popolarissimo gioco degli anni ’90 Myst fu creato usando HyperCard.
Danny Goodman si rese conto che l’enorme successo del suo primo libro e di HyperCard stava implorando un seguito, così scrisse la HyperCard Developer’s Guide. C’è ancora una copia disponibile su Amazon se qualcuno è interessato!
Ispirato da Goodman, ho iniziato a creare stack sia per mio uso personale che per la mia compagnia. Per cominciare, creai alcuni materiali di formazione per i nuovi impiegati che usavano le capacità di HyperCard non solo per addestrare gli impiegati sulle norme di sicurezza, ma anche per metterli alla prova.
HyperCard poteva essere esteso con l’uso di XCMD (Comandi esterni) e XFCN (Funzioni esterne), che erano creati sia da Apple che da sviluppatori terzi. La nostra società madre a quel tempo gestiva il sistema di fatturazione della nostra azienda su mainframe IBM, e ricordo di aver mostrato poco interesse per un XCMD di cui avevo sentito parlare che forniva connettività al mainframe.
Questo è cambiato un giorno in cui stavo lavorando con il nostro team di fatturazione ed erano frustrati dalla mancanza di progressi da parte dei programmatori del mainframe su un modo per elaborare alcune delle informazioni grezze che arrivavano dai siti di misurazione del gas in tutto lo stato del Colorado in bollette spedibili. Mi venne in mente che avrei potuto usare la connettività del mainframe XCMD per estrarre un file grezzo dal mainframe, poi usare le potenti funzioni di gestione del testo di HyperScript per analizzare i dati in un formato di file .csv che poteva essere importato in un foglio di calcolo Microsoft Excel. I fogli di calcolo potevano poi essere usati per la fatturazione.
I programmatori del mainframe non erano d’accordo, ma quando ebbi il sistema attivo e funzionante in una settimana – quando si aspettavano che ci volessero almeno altri nove mesi per far funzionare una soluzione mainframe – mi dissero di andare avanti. Anche se non entrerò nei dettagli della gestione del testo di HyperScript, questo articolo di Wikipedia fa un ottimo lavoro per spiegare ciò che era chiamato “chunking” e le “chunk expressions” che lo rendevano possibile. Oh, e a proposito, i programmatori del mainframe hanno impiegato più di tre anni per implementare le stesse caratteristiche che ho fatto funzionare in una settimana. Non è che non avessero l’abilità; semplicemente non hanno dato priorità al nostro progetto.
Il seguente video viene da hypercard.org, e attraverso un semplice esempio, mostra il processo di creazione di uno stack, l’aggiunta di immagini, il collegamento di schede e l’esecuzione di script. Molte grazie a Uli Kusterer (@uliwitness) per avermi permesso di incorporare il video qui.
L’interfaccia utente di HyperCard era, per la maggior parte, strettamente monocromatica. Quando HyperCard 2.2 apparve nel 1992, incorporò due add-on commerciali che gli permisero di supportare immagini e animazioni a colori. Apple non aveva problemi con i concorrenti a quel tempo, così altre compagnie crearono “cloni” di HyperCard che vantavano caratteristiche che Apple non aveva aggiunto.
SuperCard
Uno dei miei cloni preferiti era SuperCard, che supportava completamente il colore e aveva un sacco di potenza… ma naturalmente, non poteva davvero competere con il Web. Fortunatamente, è ancora disponibile da una società chiamata Software Essentials e funziona splendidamente su macOS. L’azienda offre uno sconto a chiunque abbia vecchi materiali originali di HyperCard (imballaggi, dischi e manuali), e SuperCard può tradurre vecchie pile di HyperCard nel suo formato aggiornato. Forse è il momento per me di tornare a SuperCard!
Ho spesso pensato che un HyperCard moderno sarebbe l’accompagnamento perfetto per iPhone e iPad, permettendo a chiunque di creare le proprie applicazioni senza la necessità di Xcode e un Mac per fare il lavoro di sviluppo. Mi stai ascoltando, Tim Cook?
A un certo punto, c’era una fiorente industria artigianale di autori di stack commerciali, e io ero uno di loro. Heizer Software gestiva quello che veniva chiamato “Stack Exchange”, un posto dove gli autori di stack potevano vendere la loro merce. Come Apple con gli attuali app store, Heizer prendeva una parte di ogni vendita per gestire il negozio, ma gli autori potevano guadagnare abbastanza bene dalla vendita di stack popolari. L’azienda inviava cataloghi stampati con descrizioni e schermate di ogni stack; si ordinava per posta, poi si ricevevano i floppy (CD in un secondo momento) con lo stack.
Prova HyperCard sul tuo attuale Mac
Forse questo lungo viaggio nella memoria ti ha dato l’impulso di trovare un Mac vintage, caricarlo con System 7 o 8, poi accendere una copia di HyperCard. Beh, non c’è bisogno di farlo – c’è un meraviglioso emulatore su Internet Archive che funziona in un browser web.
- Per avere un assaggio di questo emulatore, punta il tuo browser preferito su https://archive.org/details/AppleMacintoshSystem753 poi clicca sul pulsante verde dell'”immagine”. Un Mac emulato con System 7.5.3 – incluso HyperCard – viene lanciato, e puoi giocare con gli stack esistenti o crearne di tuoi. Puoi anche eseguire l’emulatore sul tuo iPhone o iPad!
- Se hai un po’ più di tempo, c’è anche un emulatore impostato che include 250MB di vari stack HyperCard dal Berkeley Mac User Group (BMUG). Questo richiederà un po’ di tempo per essere scaricato e avviato, quindi sii paziente.
Come il Newton MessagePad, che ha ispirato i potenti e portatili smartphone e tablet di oggi, e la QuickTake 100 (la prima fotocamera digitale popolare), HyperCard ha avuto un impatto che si sente ancora oggi. Quando accendete l’applicazione Automator del Mac o lavorate con Shortcuts su iPad o iPhone, state vedendo un riflesso delle capacità di HyperCard. Spero che questo articolo ispiri i lettori non solo a dare un’occhiata a HyperCard attraverso l’emulatore, ma a cimentarsi con gli strumenti moderni per creare i propri flussi di lavoro. Potrebbero non essere divertenti come i vecchi stack HyperCard, ma sono certamente più potenti.