HyperCard

**HyperCard** var et programmeringssystem som ble skapt av Bill Atkinson for Apple Computer og var et av de første suksessfulle hypermedia-systemer før internett var et faktum. Det kombinerte database med en grafisk og fleksibelt brukergrensesnitt. HyperCard hadde også et innebygget programmeringsspråk kalt HyperTalk, skrevet av Dan Winkler, et både kraftig og lett å lære programmeringsspråk som gjorde det mulig å manipulere data, objekter og brukergrensesnittet. HyperCard ble ofte benyttet som et programmeringssystem for å lage raske programmer av ulike slag som små databaser, læreprogrammer og enkle spill.

HyperCard ble opprinnelig lansert sammen med System Software 6 i den 11. august 1987 for $49.95, men ble inkludert gratis for alle nye Mac som ble solgt senere, og ble endelig trukket tilbake fra salg i mars 2004, skjønt på det tidspunktet hadde det ikke blitt oppdatert på mange år. HyperCard kjørte kun på Mac OS 9 eller tidligere, siste oppdatering var i 1998 , men kan fortsatt bli benyttet i Mac OS Xs såkalte klassiske modus på PowerPC-baserte datamaskiner (G5 og tidligere). Den siste operative HyperCard-miljøet er klassisk modus på Mac OS X 10.4 (*Tiger*) på PowerPC-baserte datamaskiner, skjønt det kan også bli kjørt på moderne Intel-baserte datamaskiner via en form for emuleringslag, et programtillegg som etterligner et bestemt operativsystem, som *[[SheepShaver]]*, som er tilgjengelig for OS X, Linux og Windows.

## Beskrivelse

HyperCard har blitt beskrevet som et «byggesett for programmer», og er basert på konseptet med en «stabel» av virtuelle «kort». Det integrerte et programutviklermiljø med direkte kjørbar kode, det vil si at det var ikke nødvendig å kompilere koden til en kjørbar fil – programmet var automatisk kjørbar i utgangspunktet, noe som gjorde det enkelt og raskt for alle brukere å lage programmer. De redskaper som var nødvendige for å skrive et program, hovedsakelig å skape og tilpasse skjermobjekter som knapper, felter og menyer, var en del av og innpakket med muligheten til legge til programmerte funksjoner til disse objektene. Når man formgir og skriver et program kunne man fullføre på strukturen og hva som blir utført innenfor et enkelt veldefinert område. At den enkelte bruker kunne personlig formgi og skrive et eget program som var unikt tilpasset ens egne behov revolusjonerte hele konseptet for hva programvare var. Istedenfor å forsøke tvinge en bestemt oppgave inn i et regneark i Excel kunne en tilpasset løsning bli forfattet, modifisert og oppdatert ved behov, uten kompromisser i funksjonene, og med et særegent brukegrensesnitt, på svært kort tid i forhold til tradisjonelle programmeringsverktøy. «Programmering for alle oss andre» var et slagord for programmet, det betydde at alle kunne programmere, ikke kun profesjonelle programmere.

HyperCard var basert på konseptet med en «stacks» («bunke») virtuelle «kort». Hvert kort kunne holde på data, akkurat som de ville i rolodeks. Systemet som skapte selve designet og formgivningen av de enkelte kortene var tilsvarende til andre såkalte raske programmeringsmiljøer som eksempelvis Borland Delphi eller Visual Basic. En spesiell «hjemme»-kort, forgjengeren til hjemmesiden (den første siden) på et nettsted på internett, var tilgjengelig som det som startet programmet eller ev. flere programmer, oppbevaringssted for delte skripter (tekstkode som kjørte instrukser) og et sted for å sette bestemte preferanser.

HyperCard var ikke et databasesystem i seg selv. Layouten for hvert kort kunne være unikt. Et eget bakgrunnslag inneholdt elementer som kunne deles av alle kortene i bunke eller av alle kort som var gruppert med e bestemt bakgrunn. Bakgrunner kunne omfatte bilde (det var faktisk den opprinnelige hensikten, «bakgrunnsbilde»), i tillegg til objekter som også var tilgjengelig for hvert kort som knapper; statisk tekst; redigerbar tekstfelt; og andre vanlige elementer for et grensesnitt. Hvert kort kunne da inneholde forskjellig data i tekst- eller bildefelt, akkurat som i en database.

Eksempelvis kunne en adressebok gjort i HyperCard bli bygget ved å legge til bakgrunnen noen få tekstfelt som hold på navn og adresse. Straks det var fullført kunne brukeren legge til nye kort og således bygge ut sin adressebok. Bakgrunnen kunne bli endret når som helst, noe som gjorde endringer enkelt. Grunnleggende styringer som å søke, legge til, eller slette var bygget inn, noe som gjorde det mulig å lage enkle databaseprogrammer for alle som hadde en Macintosh-datamaskin.

Paradigmet med rolodeks forhindret ikke å skape forskjellige typer programmer. Egenhendig funksjonalitet kunne bli programmert inn i et enkelt kort, noe som kunne få det til å ligne på tradisjonelle programmer. Tilleggskort kunne bli lenket til, og menyene kunne bli endret, noe som tillot den kreative til å skape programmer som tilsynelatende kunne se profesjonelle ut.

HyperCards commando `find` kunne raskt navigere til kort som inneholdt tekst ved hjelp av en patentert *hintBits*-algoritme. Denne kunne bli gjort mer selektiv ved endringer som `find "Bob" in card field "hello"` (finn «Bob» i kortfeltet «hallo»). Tilsvarende hadde det en kommando SORT som tillot å evaluere hele uttrykk for å bestemme sorteringsrekkefølgen.

## HyperTalk
* *Se egen artikkel, [[HyperTalk]]*
Det særskilte programmeringspråket innenfor HyperCard er kalt for HyperTalk og er objektorientert. Objekter eksisterer i et sporhierarki av beskjeder og svarer på beskjeder som er generert enten av brukeren eller av systemet i seg selv. Objekter arver eiendeler og attributter fra de over seg i hierarkiet. HyperTalks objektklasser er forutbestemt av HyperCards miljø, skjønt andre kan bli lagt til ved å bruke utvendige objekter. HyperTalk er ordrik med engelskspråklig syntaks, derav er det også enkelt å bruke og lett å lese. HyperTalks kodesegmenter er referert til som «skripter», et begrep som ble betraktet som mindre skremmende for nye og begynnende programmere.

## Programmer
HyperCard har vært benyttet for alle former for hypertekst og kunstneriske hensikter. Før programmer som PowerPoint ble HyperCard ofte benyttet som et generelt presentasjonsprogram. Eksempler på et program laget i HyperCard var ofte enkle databaser, spill, hjelpeprogram innenfor utdannelse, og den første form for wiki (skjønt ikke tilkoblet til internett).

På grunn av den raske måten å designe og utvikle et program ble HyperCard ofte benyttet for å skrive et prototype for et profesjonelt program. Innenfor bedriften Apple var avdelingen bak QuickTime blant de som hyppigst benyttet HyperCard.

Et antall kommersielle programprodukter har blitt utviklet i HyperCard, mest kjent er den første utgaven av det interaktive spillfortellingen *[[Myst]]*, Voyager Companys *Expanded Books* («Utvidede bøker», en ide som testet hvordan en bok kunne fungere på en skjerm), og multimedia-CD-Rom som Beethovens Niende symfoni og den engelske rockegruppen The Beatles’ film *[[A Hard Day's Night (film)|A Hard Day's Night]]*, og Voyagers *[[Macbeth (skuespill)|Macbeth]]*. Prototypen og demoen av det populære spillet *[[You Don't Know Jack]]* ble skrevet i HyperCard. Renault, den franske bilfabrikanten, benyttet seg av HyperCard for å kontrollere deres lagerbeholdning.

## Ettermæle
HyperCard er det første produktet som benyttet for å bruke og således populariserte konseptet med hypertekst.

Jakob Nielsen har pekt på at HyperCard var egentlig et hypermediaprogram ettersom det startet fra et kort, ikke tekstobjekter. Hyperlenker i HTML ble mulig i senere versjoner, var vanskelig å bruke og sjelden benyttet.

HyperCard fikk brå nedgang i bruken da verdensveven og internett begynte å vokse på midten av 1990-tallet ettersom nettet kunne håndtere og levere data på samme måte som HyperCard uten å være begrenset til filer som lå på ens egen harddisk. HyperCard hadde betydning for nettet da det inspirerte til å oppfinne både HTTP i seg selv og JavaScript (dets skaper Brendan Eich var inspirert av HyperTalk. 

En del andre selskaper tilbød deres egne utgaver. Fire produkter er til dags dato tilgjengelig som tilbyr HyperCard-lignende funksjonalitet:

* **[[HyperNext]]**, et frivare-program som utnytter mange av de samme idene fra HyperCard og kan produsere både enkeltstående program og såkalte «stacks», «kortbunker», som kan kjøre ved hjelp av et gratis spiller av HyperNext-programmer. HyperNext er tilgjengelig for både Macintosh OS X & OS 9, og Windows XP & Vista.
* **SuperCard** er lik HyperCard, men med flere tilleggsfunksjoner som støtte for farger, grafikk (både raster- som vektorbilder), og støtte for mange av egenskapene i Mac OS X, og kjører således utelukkende på Mac.
* **[[TileStack]]** er et forsøk på å skape en nettbasert utgave av HyperCard som er kompatibelt med opprinnelige HyperCard-filer. Det er fortsatt i beta og uttesting.

Blant tidligere produkter finnes:
* Runtime Revolutions, nå selskapet LiveCode, hadde et produkt kalt **Revolution** utvidet i stor grad HyperCards funksjoner og tilbød farger og verktøykiste for å lage grensesnitt, og kunne importere eksisterende HyperCard-programmer. Det fantes for mange plattformer, Classic Macintosh system software, Mac OS X, Windows 98 via Vista, og Linux/Unix. *Revolution* er nå erstattet av LiveCode, et utviklingsmiljø på tvers av plattformer, og er nå et rent programmeringsspråk.
* **[[Plus]]** var et produkt ganske likt HyperCard for både Windows og Macintosh. Oracle kjøpte *Plus* og skapte en versjon for flere plattformer kalt *OracleCard*. Det ble senere omdøpt til *[[Oracle Media Objects]]* og ble benyttet som 4GL, det vil fjerdegenerasjons programmeringsspråk.
* **[[ToolBook]]** fra selskapet Asymetrix minnet om HyperCard og inkluderte et konverteringsprogram som tilpasset HyperCard-filer til ToolBook. Støttet farger, men var tregt og kjørte bare på Windows.

## Referanser


## Litteratur
* Goodman, Danny (1987): *The Complete HyperCard Handbook*, Bantam Books, ISBN 0-9665514-2-7
* Goodman, Danny (1988): [*The Complete HyperCard Handbook*], 2. utg., Bantam Books, ISBN 055334577X
* HyperCard (PDF) (manual), Apple

## Eksterne lenker
* Computer Chronicles 1987 interview with Bill Atkinson and Dan Winkler demoing HyperCard (from Archive.org)
* Revolution
* HyperCard Pantechnicon
* A list of HyperCard links
* comp.sys.mac.HyperCard The original Usenet group now enshrined as a Google Group that is still somewhat active.
* Open Source xTalk Interpreter Archive: An attempt to organize open source HyperCard/HyperTalk clones
* HyperCard comes back from the dead to the web