# HyperCard

HyperCard è un software ipertestuale che comprende un semplice linguaggio di programmazione introdotto sul mercato da Apple Computer nel 1987, assieme al System 6. Fu ritirato dalle vendite nel marzo del 2004. In anticipo sull'HTML, è stato uno dei primi sistemi per creare ipertesti. Ward Cunningham, nei tardi anni ottanta, lo usò nel programmare un abbozzo di ciò che avrebbe sviluppato successivamente sotto il nome di wiki.
L'applicazione assomiglia da vicino a un database, poiché è in grado di registrare informazioni, ma a differenza dei database tradizionali HyperCard è un sistema ipertestuale basato su concetti grafici, molto flessibile e molto semplice da modificare. In più, contiene il linguaggio di programmazione HyperTalk, semplice ma potente, per manipolare dati e interfaccia grafica. Talvolta è stato usato come sistema di programmazione invece che come database.

## Storia

HyperCard fu creato da Bill Atkinson che lo diede ad Apple dietro la promessa di distribuirlo al mercato in modo gratuito (promessa che, secondo Atkinson, non fu mantenuta quando venne messa in vendita la versione 2.0, largamente rimaneggiata). Chiamata WildCard durante lo sviluppo, cambiò il nome per problemi legali; l'applicazione mantenne però il codice creatore WILD, a memoria degli inizi.
HyperCard ottenne un immediato successo; nessuno aveva mai visto nulla di simile su qualsiasi elaboratore. Utenti senza alcuna conoscenza di programmazione usavano HyperCard per ogni tipo di automazione, superando anche le attese di Atkinson.
La stessa Apple non sembrò mai aver capito cosa potesse essere HyperCard; i suoi capi vedevano l'ottimo successo del programma e vedevano un flusso continuo di richieste di aggiornamenti dai vari tipi di utenti, da cui si capiva quanto il mercato fosse interessato. D'altra parte, era un software gratuito, il che non giustificava le risorse dedicate a migliorarlo; non fu notato che questo software poteva far apparire ancora più interessante la piattaforma Apple; questo fece sì che il progetto languisse per più tempo del necessario.
Le cose sembrarono cambiare nel 1989, quando alcune politiche interne portarono ad un aggiornamento (principalmente grazie a Kevin Calhoun, programmatore Apple); il risultato si ebbe negli anni novanta con l'uscita della versione 2.0, con grandi miglioramenti rispetto all'originale. Ma nel frattempo Apple decise che tutti i software dovessero passare alla divisione Claris: molti sviluppatori rifiutarono tale passaggio ed in più Claris, dovendo garantire profitti, non spinse mai HyperCard. Sviluppò comunque un viewer, chiamato HyperCard Player; Apple avrebbe inserito il player nei CD di sistema, mentre Claris avrebbe venduto le nuove versioni di HyperCard. Ora gli utenti dovevano pagare per un prodotto che molti consideravano parte standard del sistema Apple.
Furono distribuiti degli aggiornamenti, compresa l'introduzione diretta del colore, ma il progetto di una versione 3 non arrivò mai alla fine. HyperCard continuava a essere usata per gli utilizzi più diversi, dal gioco The Manhole (uno dei primi dei creatori di Myst) fino ad utilizzi aziendali. Ma, senza aggiornamenti essenziali, lentamente gli utenti cominciarono a muoversi verso sistemi simili che avevano cominciato ad apparire sulla scia del successo, come SuperCard e Authorware di Macromedia.
Nel frattempo HyperCard rientrò in Apple, dove venne inserito, sotto la direzione di Calhoun, nel team di QuickTime, con l'idea di usarlo per la creazione di filmati interattivi. La conseguente versione 3.0 fu presentata nel 1996 come beta all'esposizione annuale WWDC di Apple e consegnata agli sviluppatori. Le caratteristiche mostrate nelle demo contenevano tutto quanto poteva essere utile (colore, connettività, compatibilità con i browser), ma per qualche ragione non venne mai messa in distribuzione e Calhoun lasciò Apple nel 2001. Rimase sul mercato solo un prodotto che, pur se geniale, era ormai obsoleto.
L'annuncio ufficiale della cessazione della vendita di HyperCard venne dato nel marzo del 2004.
HyperCard è uno dei primi prodotti che usò il concetto di ipertesto; la crescita del World Wide Web provocò la discesa nell'uso di HyperCard, poiché il web poteva maneggiare e distribuire dati allo stesso modo, ma senza essere limitato al proprio hard disk; HyperCard ebbe comunque un impatto significativo, ispirando anche la creazione dello stesso HTTP e di JavaScript.
C'è anche chi ritiene che alcune idee sviluppate all'interno del progetto HyperCard siano state portate a compimento all'interno di un prodotto di punta della concorrente Microsoft: Visual Basic (vedi rif. nei Collegamenti esterni).
Altre compagnie offrirono le proprie versioni:
* SuperCard, essenzialmente una versione a colori di HyperCard; per un certo periodo incluse il plug-in "Roadster" (anche per Windows), che permetteva di inserire gli stack in pagine web;
* WinPlus, versione Windows;
* ToolBook, prodotto per Windows che ricorda HyperCard, è stato lanciato dalla Asymetrix di Paul Allen, ora Sumtototalsystems, che intendeva proporlo come alternativa a visual basic per la generazione di semplici applicazioni. Il runtime poteva essere distribuito gratuitamente;
* OracleCard, commercializzato da Oracle, acquisito da un clone multi-piattaforma. Fu poi rinominato Oracle Media Objects;
* Revolution (ora Livecode), di Runtime, incorpora tutti i comandi di HyperTalk e la maggior parte delle caratteristiche.
In più, molti concetti del sistema originale sono poi stati riutilizzati sotto altre forme:
* Apple ha costruito il suo linguaggio di scripting chiamato Applescript come molto simile ad HyperTalk;
* Molti sistemi multimediali, come per esempio Macromedia Authorware sono basati sui concetti di HyperCard, che aveva infatti uno dei suoi punti di forza nel trattamento dei dati multimediali.

## Descrizione

HyperCard è basato sul concetto di una pila (chiamata stack) di schede virtuali (card). Ogni scheda può includere campi, dove registrare dati, e pulsanti, che comandano azioni. Lo sfondo su cui si poggia ogni scheda è chiamato background, che può contenere a sua volta non solo la grafica comune ad un gruppo di schede, ma anche altri campi, pulsanti ed altri elementi dell'interfaccia grafica.
Lo schema comune di un database viene quindi costruito nel background, inserendo grafica, campi e pulsanti (un po' come costruire un form in un database attuale); durante l'uso, ogni scheda rappresenta un record. Il background può essere modificato in ogni momento, riflettendosi immediatamente su tutte le schede corrispondenti. Le funzioni di ricerca, aggiunta e cancellazione sono incorporate in HyperTalk, rendendo quindi semplicissimo la preparazione e l'uso di semplici database, senza preoccuparsi granché dei formalismi.
L'operazione di scripting è molto facile, dato che viene usata la lingua inglese, senza costringere l'utente ad imparare un linguaggio speciale. Per esempio:
non ha bisogno di spiegazioni. Il rendere le cose molto semplici all'utente porta inevitabilmente a grossi sforzi di programmazione; per esempio, HyperTalk deve capire che i numeri 1 e 2 possono essere scritti anche come "one" e "two", oppure come ordinali (primo e secondo), cosa trascurata da molti linguaggi, ma che migliora la comprensione. Ogni oggetto può essere identificato dal nome, dal numero d'ordine o dal suo ID, numero unico per tutta la vita dell'oggetto.
Altro esempio di semplicità è la ricerca (comando find), che può trovare schede sia all'interno di un certo background o dell'intero stack. Mentre in altri linguaggi può essere difficoltoso (o impossibile per un utente non preparato), la ricerca standard viene fatta con il comando
che può essere raffinata con altre espressioni tipiche della lingua:
Oppure è possibile selezionare le schede che rispondono a certi requisiti:
Per aggiungere uno script è sufficiente aprire l'oggetto (dal pulsante, alla scheda, al background, fino allo stack). Nella versione 2.0 venne anche aggiunto un semplice debugger, con la possibilità di vedere passo passo i valori delle variabili ed i messaggi lanciati attraverso la gerarchia degli oggetti. In più, può essere aperta una finestra flottante (messageBox) in cui dare qualunque comando di una riga, dal dimensionamento di un pulsante al comando find. Ancora, le possibilità di HyperTalk vengono estese tramite moduli esterni di codice, richiamabili da script come normali funzioni (XCMD).

## Applicazioni

Verso la fine degli anni ottanta erano in circolazione migliaia di stack per gli usi più disparati e moltissime estensioni al linguaggio che mettevano a disposizione compilatori, sistemi grafici, accesso ai database esterni, connettività internet e molto altro.
Prima dell'avvento di Microsoft PowerPoint, HyperCard veniva spesso usato come software di presentazione. Le applicazioni spaziavano da semplici database per uso personale a prodotti aziendali, didattici e addirittura giochi testuali e non.
Alcuni prodotti commerciali vennero programmati in HyperCard: tra gli esempi, la prima versione del gioco Myst, i CD-ROM multimediali della Nona Sinfonia di Beethoven, un'opera multimediale del disco Hard Days' Night dei Beatles, il catalogo completo dei dipinti del Louvre (su videodisco).