# HyperCard

HyperCard est un programme et un environnement de programmation développé par Apple pour les ordinateurs Macintosh et IIGS, il ne fonctionne que sous Mac OS versions 9 et précédentes. C'est un des premiers logiciels hypermédia précurseurs du World Wide Web à avoir connu un réel succès.
Il combine des éléments de base de données avec un système de développement graphique à base de « piles » similaire à des cartes de répertoire permettant la navigation hypertexte et hypermedia. Le langage de programmation pour HyperCard est HyperTalk. Ce langage permet la manipulation des données mais aussi de l'interface utilisateur.
Cette combinaison de fonctionnalités – une base de données à la mise en forme simple, une flexibilité graphique et une simplicité de programmation – rend HyperCard opérationnel pour de nombreux types de projets : développement rapide d'applications et de bases de données, développement d'applications interactives, système de contrôle et de commandes, et bien d'autres usages, en particulier didactiques ou ludiques.
HyperCard est originellement commercialisé avec le Système 5 en 1987 pour 49.95 $ et est ensuite inclus gratuitement avec tous les Macs suivants. Il est retiré de la vente en mars 2004, ayant reçu sa dernière mise à jour en 1998, avec le retour de Steve Jobs chez Apple. HyperCard n'a pas été porté sur Mac OS X, mais peut être lancé dans l'environnement Classic sur les versions de Mac OS X qui le supportent.

## Histoire
### Développement

HyperCard est créé par Bill Atkinson à la suite d'un trip au LSD$^,$. Il commence à travailler dessus en mars 1985 en le nommant WildCard (d'où le nom WILD du creator code). En 1986, Dan Winkler commence son travail sur HyperTalk, ce qui entraîne le changement de nom vers HyperCard. L'application sort le 11 août 1987 pour le premier jour du MacWorld Conference & Expo de Boston, où Atkinson indique faire don d'HyperCard à Apple à condition que l'entreprise l'offre gratuitement sur tous les Macs. Apple fait donc coïncider la sortie d'HyperCard avec le MacWorld Conference & Expo de Boston pour maximiser la publicité et la diffusion.

### Lancement

Le succès est immédiat : l'Association des programmeurs et développeurs d'Apple (APDA) déclare : "HyperCard a été une frénésie. Depuis août [1987, lors de l'annonce] jusqu'à octobre, nos téléphones n'ont jamais cessé de sonner. C'était la jungle." En quelques mois après sa sortie, on voit naître des tas de livres et une cinquantaine de disques de piles publiques sur beaucoup de sujets, notamment en géographie, et plus généralement lorsque l'on voulait un didacticiel.
Apple ne semble pas avoir compris ce qu'était HyperCard. La direction vit qu'il était utilisé par un grand nombre de personnes, y compris en interne avec un flot de commentaires et de rapports de bogues. Cependant, le fait qu'il soit gratuit a grandement restreint le budget de son développement.

### HyperCard 2.0

Sous l'impulsion de Kevin Calhoun, la version 2.0, très améliorée, voit le jour fin 1989.
Cette nouvelle version inclut alors un nouveau compiler instantané qui améliore grandement les performances des codes lourds, un nouveau debugger et beaucoup d'autres améliorations concernant le langage HyperTalk.
En même temps que le développement d'HyperCard 2.0, un autre sous-groupe d'Apple développe HyperCard IIGS, une version d'HyperCard conçue pour les systèmes Apple IIGS, qui sort en 1991. Spécialement conçu pour le marché de l'éducation, HyperCard IIGS contient globalement les mêmes fonctionnalités que les versions 1.x d'HyperCard Macintosh en plus d'un support des capacités colorimétriques des appareils IIGS. Bien que les piles HyperCard ne soient pas compatibles avec le binaire (utilisé par les Apple IIGS), un programme de traduction (une autre pile HyperCard) leur permet d'être transférés d'une plateforme à l'autre.
Simultanément, Apple décide que la plupart de ses logiciels, y compris HyperCard seront désormais gérés par leur nouvelle division Claris. Beaucoup de développeurs refusent de changer de division, certains uniquement par principe, ce qui mène à une division de l'équipe de développement. Les première versions Claris d'HyperCard sont livrées sans le mode d'édition mais avec une astuce cachée : en entrant "magic" dans le champ de texte on transformait le lecteur en environnement d'édition. Lorsque cette astuce devient universelle, une nouvelle solution voit le jour : seul HyperCard Player, sera distribué gratuitement avec les systèmes d'exploitation Macintosh, pendant que Claris vend la version complète séparément. De nombreux utilisateurs et utilisatrices trouvent alors indigne de devoir payer l'utilisation d'un logiciel qui avait toujours été offert et que beaucoup considéraient comme indissociable du Macintosh.
Claris continua le développement en ajoutant des améliorations mineures, permettant d'utiliser la couleur, mais la version 3.0 ne fut jamais distribuée. Face. au manque de nombreuses fonctionnalités basiques, les utilisateurs commencèrent à migrer vers d'autres systèmes comme SuperCard et Macromedia Authorware. Malgré tout, la popularité d'HyperCard et son utilisation pour diverses applications, du jeu The Manhole (par les futurs créateurs de Myst) en passant par les services d'informations d'entreprises, persistaient.
Puis deux ans après, Apple finit par réintégrer Claris à la maison mère et le développement d'HyperCard revient à l'équipe originelle d'Apple, qui sort prématurément la version 2.2 en 1992. Cette nouvelle version contient des licences de Color Tools et Addmotion II, qui permet de créer des images en couleurs et intègre l'animation. Mais ces outils étaient limités et difficiles à utiliser par le manque de gestion des couleurs dans HyperCard 2.0.

### Hypercard 3.0

Il y eut plusieurs tentatives chez Apple pour relancer HyperCard. Le produit fut même rattaché au groupe QuickTime car il y avait une relation avec le multimédia. Une nouvelle version visait à permettre à HyperCard de créer des films interactifs QuickTime (QTi), encore une fois sous la direction de Kevin Calhoun. QTi a étendu les fonctionnalités multimedia de QuickTime jusqu'à obtenir de réelles interactions et un langage de programmation de bas niveau basé sur le langage assembleur 68000.
Une version 3.0 alpha est présentée à la Apple Worldwide Developers Conference (WWDC) de 1996. Sous la direction de Dan Crow, le développement continue jusqu'à la fin des années 1990, avec des démos publiques montrant des fonctions populaires telles que la gestion des couleurs, la connexion à Internet, et la possibilité de jouer les piles HyperCard (alors devenues un format de films QuickTime) dans un navigateur web.
Pour plusieurs raisons, le produit ne fut jamais disponible et le développement d'HyperCard 3.0 s'arrête lorsque les équipes de QuickTime se concentrent sur le développement des fonctions interactives pour QuickTime 4.0, en 1998.
Steve Jobs, qui n'aimait pas le logiciel à cause du refus d'Atkinson de le suivre lors de son départ chez NeXT, abandonna le logiciel en 2000 et dirigea les équipes en charge sur d'autres projets. Calhoun et Crow quittent Apple en 2001.
Cela fut suffisant pour tuer le produit, après des années d'hésitations et de mauvaise gestion, dans une période où Apple avait de grosses difficultés financières.
Sa dernière sortie date de 1998 et son arrêt total de 2004.

### Réception

Le magazine Compute!'s Apple Applications affirmait en 1997 qu'HyperCard « pourrait faire des Mac les ordinateurs personnels de premier choix ». Tout en notant que ses grands besoins en mémoire seraient plus adaptés pour des ordinateurs munis de 2Mo de mémoire et de disques durs, le magazine prédit que « le plus petit atelier de programmation serait capable de s'adapter aux spécificités des "stacks" (piles) », surtout en utilisant des CD-ROMs. Compute! prédit en 1988 que la plupart des futurs logiciels Mac seraient développés via HyperCard, car son utilisation était si addictive que les développeurs « seraient incapables de s'en détacher suffisamment longtemps pour pouvoir créer un substitut ».
En 1989, Byte le place parmi les gagnants du prix "Excellence" des Byte Awards. En déclarant que « tout comme chaque nouveau détenteur du prix, le logiciel a des défauts », le magazine explique qu'« HyperCard ouvre la voie à une toute nouvelle catégorie de logiciels » et félicite Apple de l'offrir d'office avec chaque Mac.
En 2001, Steve Wozniak nomme HyperCard « le meilleur logiciel jamais écrit ».

## Description
### Design

HyperCard est basé sur le concept de piles de cartes virtuelles.
Les cartes contiennent des données, de la même manière que dans le Rolodex
Les cartes sont composées globalement de deux objets :
* le fond, duplicable et utilisable comme modèle d'une carte à une autres afin de conserver des éléments similaires ;
* les calques qui utilisent les outils graphiques (boutons, champs, images, sons, etc.) du fond et ajoutent les leurs. Plusieurs niveaux autorisent ou non des modifications devenant définitives, l'état historique étant sauvé comme nouvelle carte.
Les utilisateurs peuvent construire des bases de données en ouvrant l'éditeur de fond et des éléments de dessin pour contenir les diverses pièces de données. Par exemple, un carnet d'adresse peut être construit en ajoutant quelques champs de textes pour contenir le nom et l'adresse. Une fois complété l'utilisateur ajoute simplement une nouvelle carte et tape dans les champs. Le fond peut être changé à n'importe quel moment. Les opérations de base comme la recherche, l'ajout ou la suppression sont incluses dans l'environnement.
Un script dans le langage HyperTalk permet de modifier ou étendre le système dans une certaine mesure. Le script de chaque objet peut être édité à tout moment et ses changements sont enregistrés automatiquement. Quand l'utilisateur opère des actions dans l'interface graphique, comme cliquer sur un bouton ou taper du texte, elles sont transcrites en événements par l'exécutif HyperCard. L'exécutif examine ensuite le script de l'objet ciblé par l'événement, comme un bouton, pour vérifier s'il contient le code de l'événement, appelé un handler. S'il le contient, le moteur HyperCard exécute le handler ; sinon l'exécutif examine les objets suivants dans la hiérarchie visuelle. Cependant, plus la taille de pile augmente, moins celle-ci est réactive.
Ces concepts constituent la majorité du système HyperCard ; les piles, les fonds et les cartes offrent un système d'interface graphique, le dossier de pile contient les objets et les fonctionnalités de base de données, HyperTalk permet l'écriture des handlers pour les événements graphiques. Cependant, contrairement à la majorité des systèmes RAD ou de bases de données de l'époque, HyperCard combine toutes ces fonctionnalités, à la fois orientées utilisateur et développeur, en une seule application. Cela permet des changements rapides et un prototypage immédiat, possiblement sans aucun code, permettant aux utilisateurs et utilisatrices de proposer des solutions personnalisées via une interface adaptée.
"Autonomie" est devenu un mot clé saisi par les communautés Macintosh, tout comme la phrase "programmer pour les autres" (programming for the rest of us), faisant référence à n'importe qui et pas seulement les programmeurs.
   « The beauty of HyperCard is that it lets people program without having to learn how to write code — what I call "programming for the rest of us". HyperCard has made it possible for people to do things they wouldn't have ever thought of doing in the past without a lot of heavy-duty programming. It's let a lot of non-programmers, like me, into that loop. »
— David Lingwood, APDA

### HyperTalk

HyperTalk est un langage de script orienté objet. Sa syntaxe se rapproche de la langue anglaise. Les spécificités du langage HyperTalk ont été prédéterminées par l'environnement HyperCard, mais pouvaient être étendues à des fonctions (XFCN) et commandes (XCMD) externes, écrites en langage compilé. HyperTalk supporte la plupart des structures programmées simples telles que "if-then" et "repeat". HyperTalk est verbeux, d'où sa facilité de lecture.
On peut écrire une commande en anglais simplifié, écrire les chiffres sous forme ordinale ou numérique, et tous les objets utilisés peuvent posséder un nom.
Ajouter des scripts était facile d'utilisation : on « option-cliquait » n'importe quel élément dans la pile et un éditeur apparaissait. Le script pouvait être édité, sauvé et utilisé immédiatement.

#### Modules Externes

HyperCard peut être enrichi grâce à des modules de commandes (XCMD) et fonctions (XFCN) externes. Ce sont des bibliothèques de code réunies dans un fork de ressources qui intègre soit le système général soit spécifiquement le langage HyperTalk. C'est un exemple précurseur du plugin, à la différence que les modules HyperCard ne demandent aucune installation avant utilisation ; ils peuvent être inclus dans une pile, où ils sont directement accessibles aux scripts de cette pile.
Lors du pic de popularité d'HyperCard à la fin des années 1980, des vendeurs proposèrent des centaines de ces modules externes, tels que des compilers HyperTalk, des systèmes graphiques, des accès aux bases de données, des connexions Internet et des animations.
Oracle offrait par exemple une XCMD (ensuite remplacée par Oracle Card) permettant à HyperCard de chercher directement les bases de données Oracle sur n'importe quelle plateforme.
BeeHive Technologies offraient une interface matérielle permettant à l'ordinateur de contrôler des appareils externes. Connecté via le Apple Desktop Bus (ADB), cet outil pouvait lire l'état de l'appareil lié ou écrire des instructions numériques à plusieurs appareils en même temps.
Les modules externes donnaient accès à la Boîte à Outils Macintosh, qui contenait de nombreuses commandes de bas niveau et de fonctions non natives à HyperCard, comme le contrôle des ports ADB et série.

## Applications

HyperCard était utilisé pour des projets relevant autant de l'hypertexte que des domaines artistiques. Avant la disponibilité de PowerPoint, il fut utilisé comme logiciel de présentation. Les exemples d'utilisation d'HyperCard incluent autant de "jeu dont vous êtes le héros" que d'applications pédagogiques.
Grâce à sa rapidité d'édition et son design simple, HyperCard était aussi souvent utilisé pour le prototypage d'applications. Au sein même d'Apple, l'équipe en charge de QuickTime était un des plus gros clients d'HyperCard.
Les besoins matériels d'HyperCard étant moins élevés que ceux de Macromedia Director, donc de nombreux logiciels ont été créés via HyperCard. Parmi les plus connus : la version originale du jeu graphique Myst, les Voyager Company Expanded Books, les CD-ROMs multimedia de la Neuvième Symphonie de Beethoven, A Hard Day's Night des Beatles et l'édition MacBeth de Voyager Company. Une édition numérique du Whole Earth Catalog a aussi été implémentée dans HyperCard et stockée sur CD-ROM.
Le prototype et la démo du célèbre jeu You Don't Know Jack$^,$ ont aussi été écrites dans HyperCard.
Le constructeur automobile français Renault l'utilisait pour gérer les inventaires$^,$.
Au Québec, HyperCard était utilisé pour le contrôle d'un bras robotisé qui insérait et retirait des disques vidéos au Comité National du Film CinéRobothèque.
En 1989, HyperCard a été utilisé pour contrôler le Réseau des Ateliers Radiophoniques de la BBC, en utilisant seulement un Mac.
HyperCard était utilisé pour prototyper un modèle fonctionnel du SIDOCI (une des premières expérimentations au monde pour développer un dossier médical informatisé) et a fortement été utilisé par une firme de Montréal pour démontrer à quoi ressemblerait "la journée type d'un patient sur le point d'aller en chirurgie" dans un monde sans papier.
Activision, qui à l'époque n'était qu'une compagnie de jeu vidéo, vit HyperCard comme point d'entrée sur le marché. En changeant de nom pour Mediagenic, ils publièrent de nombreuses applications notable avec HyperCard. Notamment le Focal Point de Danny Goodman, manager de données personnelles, et Reports for HyperCard, un programme par Nine to Five Software permettant d'utiliser HyperCard comme une vraie base de données avec une bonne visualisation des informations et une fonction impression.
SuperCard, logiciel inspiré par HyperCard, incluait le plug-in Roadster qui permettait aux piles d'être placées et visualisées dans un navigateur web via un plug-in web approprié. Il y avait même une version Windows de ce plug-in qui permettait aux utilisateurs de ce système de l'utiliser.

### Virus

Le premier virus HyperCard est découvert en Belgique et aux Pays-Bas en avril 1991.
Comme HyperCard exécutait les scripts à l'ouverture du logiciel, c'était une des premières applications sensibles aux macrovirus. Le virus Merryxmas fut découvert par Ken Dunham au début de l'année 1993, soit deux ans avant le virus Concept. HyperCard a finalement connu peu de virus et leur impact était minime.

## Posterité

HyperCard est un des premiers produits Apple à avoir utilisé et popularisé le concept d'hypertexte auprès d'un grand nombre d'utilisateurs et utilisatrices.
Jakob Nielsen note qu'HyperCard n'est rien d'autre qu'un programme hypermedia, ses liens ne pointe qu'entre les zones d'une carte, et non entre des objets textuels ; de vrais liens textes similaires aux liens HTML ont été possibles dans des versions ultérieures, mais complexes à implémenter et rarement utilisés.
Deena Larsen a pu programmer des liens dans HyperCard pour Marble Springs.
Plus tard, Bill Atkinson déplora que s'il avait réalisé plus tôt le pouvoir des piles en réseau, HyperCard aurait pu être le tout premier navigateur web.
L'arrivée du World Wide Web, qui n'était plus limité par la capacité du disque dur d'une seule machine, sonna le glas d'HyperCard. L'influence d'HyperCard sur le web n'est pas des moindres : le logiciel a permis la création du protocole HTTP (via son influence sur Robert Cailliau, collègue de Tim Berners-Lee) et de JavaScript (Brendan Eich, le créateur, s'est inspiré d'HyperTalk). Il fut aussi une grande inspiration pour ViolaWWW, un des premiers navigateurs web.
Le curseur pointant du doigt utilisé pour naviguer entre les cartes fut aussi récupéré dès les premiers navigateurs web, lors du survol des hyperliens.
La franchise vidéo-ludique Myst, d'abord sortie en tant que pile HyperCard et parfois vendue en pack avec certains Macs (comme le Performa 5300), perdure, rendant HyperCard la technologie de lancement d'un jeu ayant connu le plus grand succès de tous les temps.
Selon Ward Cunningham, le créateur de Wiki, son concept remonterait aussi à une pile HyperCard qu'il avait écrit à la fin des années 1980$^,$$^,$.
En 2017, l'Internet Archive lance un projet de sauvegarde et d'émulation de piles HyperCard, permettant aux utilisateurs et utilisatrices de téléverser les leurs.
L'interface graphique (GUI) du prototype du Téléphone Apple Wizzy Active Lifestyle était basé sur HyperCard.

### World Wide Web

HyperCard a influencé le développement du web à la fin des années 1990. Il a influencé Robert Cailliau qui assistait Tim Berners-Lee dans la création du premier navigateur ; il a aussi influencé la création de JavaScript via HyperTalk.
Bien que les piles HyperCard ne fonctionne pas sur Internet, dès 1988, au moins 300 piles étaient disponibles en téléchargement public depuis le réseau commercial CompuServe (qui n'était alors pas encore connecté à l'Internet). Ce système pouvait lier entre eux des numéros de téléphone sur un ordinateur et permettre aux utilisateurs et utilisatrices de composer les numéros sans avoir besoin de modem, en utilisant un appareil moins coûteux : l'HyperDialer.
En ce sens, il produit une expérience basée sur l'association d'informations et la recherche par liens, tout comme le web, bien qu'il n'opère pas encore via le protocole TCP/IP. Il est donc perçu comme un précurseur des hyperliens. Comme le web, il permet l'interconnexion de nombreux types de media.

### Systèmes Similaires

D'autres sociétés virent le potentiel d'HyperCard et offrirent leurs propres versions. En 2010, quatre produits offrent des fonctions similaires à celles d'HyperCard :
* HyperNext, un logiciel de développement qui reprend beaucoup d'idées d'HyperCard et permet de créer à la fois des applications et des piles, qui se lancent via l'HyperNext Player. HyperNext est disponible sur Mac OS 9 et X et sur Windows XP et Vista.
* HyperStudio, un des premiers clones d'HyperCard, développé par Software MacKiev dès 2009.
* LiveCode, publié par LiveCode, Ltd., élargit grandement les fonctionnalités prévues par HyperCard et propose des couleurs et une interface graphique (GUI) accessible via la plupart des systèmes d'exploitation récents (Android, iOS, Classic Macintosh, Mac OS X, Windows 98 à 10, et Linux/Unix). LiveCode importe directement les piles HyperCard et offre un chemin d'accès pour les piles toujours active.
* SuperCard, le tout premier clone d'HyperCard, lui est similaire en y ajoutant de nombreuses fonctions : gestion complète des couleurs, graphiques en pixels et vecteurs, une boîte à outils GUI complète, une compatibilité avec la plupart des fonctions Mac OS X récentes. Il permet de créer à la fois des applications et des piles, qui se lancent via le SuperCard Player. SuperCard permet aussi de convertir des piles HyperCard en projets SuperCard. Il ne fonctionne que sur Mac.
Il existe aussi des projets plus anciens :
* SK8, un "tueur d'HyperCard", dévelopé chez Apple mais jamais sorti. Il était censé étendre le langage HyperTalk pour gérer les objets arbitraires, ce qui devait permettre la création d'applications Mac complètes (au lieu de piles). Le projet ne fut jamais commercialisé, mais le code source relève du domaine public.
* Hyper DA de Symmetry était une application bureau créée pour les OS Mac monotâches permettant la visualisation de piles HyperCard 1.x en fenêtré dans n'importe quelle application. Elle était aussi encastrable dans d'autre applications Claris (comme MacDraw II) afin d'en visualiser la documentation.
* HyperPad de Brightbill-Roberts est un logiciel similaire à HyperCard écrit pour DOS. Il utilise les dessin ASCII pour créer les graphiques des cartes et des boutons.
* Plus, ensuite renommé WinPlus, est une application similaire à HyperCard pour Windows et Macintosh.
* Oracle racheta Plus et créa une version mutli-plateforme, Oracle Card, plus tard renommé Oracle Media Objets, utilisée comme 4GL pour un accès à une base de données.
* IBM Linkway, un environnement HyperCard pour PC DOS contrôlé à la souris. Ses besoins systèmes sont faibles et il fonctionne sur graphismes en CGA et VGA. Il supportait même le contrôle de disques vidéos.
* L'application ToolBook d'Asymetrix pour Windows ressemble aussi à HyperCard et inclut ensuite un convertisseur externe pour lire les piles HyperCard.
* TileStack est une tentative de créer une version web d'HyperCard qui soit compatible avec les fichiers natifs d'HyperCard. Le site a fermé le 24 janvier 2011.
De plus, de nombreux concepts du système original ont ensuite été réutilisés de manières différentes.
* Apple basera son moteur AppleScript sur un langage similaire à HyperTalk. Durant les années 1990, FaceSpan fournit une interface graphique tierce ; AppleScript comprenait aussi une interface graphique native appelée Automator, sortie avec Mac OS X Tiger en avril 2005.
* AppWare, d'abord nommé Serius Developer, est parfois vu comme similaire à HyperCard, du fait que les deux soient des systèmes de développement rapide d'applications. AppWare s'est vendu au début des années 1990 et fonctionnait sur Mac et Windows.
* Zoomracks, une application DOS avec un système de "piles" similaire à HyperCard le précède de 4 ans, et débouche sur un procès controversé contre Apple.
Une des forces d'HyperCard était sa gestion multimedia, et de nombreux systèmes multimedia comme Macromedia Authorware ou Macromedia Director se basent sur des concepts émis par HyperCard.