FRA INGENTING TIL OVERALT en liten reise gjennom informatikkens historie av professor Morten Dæhlen, dekan ved Det Matematisk-naturvitenskapelige fakultet, Universitetet i Oslo Informatikkens historie er stor og omfattende, så for at dette ikke skal bli for langt, vil jeg kun ta for meg noen høydepunkter. Valget av disse høydepunktene er nok til en viss grad også farget av min bakgrunn innen matematikk. Viktige stikkord i denne historiske reisen er representasjon av informasjon, algoritmer for å løse utvalgte (matematiske) problemstillinger, og til slutt informatikkens betydning for samfunnsutviklingen. Men før vi tar fatt på historien, er det på sin plass å gi en kort beskrivelse av hva informatikk er. Informatikk er læren om hvordan datasystemer konstrueres og brukes. Datasystemer består av en eller flere datamaskiner (maskinvare), nettverk bestående av kommunikasjonslinjer mellom datamaskiner, programvare som utfører definerte (regne)oppgaver, forskjellige målesystemer (sensorer) som fanger data, innretninger som utfører oppgaver (aktuatorer), grensesnitt og/eller relasjonen til den eller dem som bruker systemet, samt ulike former for medier der data kan oppbevares. Datasystemer formes i all hovedsak ved hjelp av programvareverktøy, og data må representeres på en hensiktsmessig form. Alle datasystemer er digitale i den forstand at alle grunnleggende operasjoner i et datasystem er digitale, og all informasjon representeres på digital form, dvs. i form av tall. Begrepet datasystemer brukes gjerne synonymt med informasjonssystemer, og IKT brukes ofte synonymt med informatikk, men IKT assosieres vanligvis mer med systemer enn med selve faget. Også begreper som datateknikk og informasjonsteknologi (IT) brukes. 1. Tallene og skriftspråkene I tallteorien er null overgangen mellom de positive og negative tallene. Enda viktigere er null i regning med tall (aritmetikk og algebra). Uten null vil
208 Det Norske Videnskaps-Akademi Årbok 2012 regnereglene bli svært kompliserte. Prøv f.eks. å multiplisere to romertall! Oppdagelsen eller forståelsen av null var nøkkelen til vårt moderne tallsystem. Med våre ti fingre fikk vi ti-tallsystemet og når vi kom til ti, fant man rett og slett ut at man kunne ha 1 tier og 0 enere, dvs. skrive tallet 10. Koden var løst, og det viste seg raskt at systemet også var velegnet for regning (addisjon, subtraksjon, multiplikasjon, divisjon). Hadde vi hatt 8 fingre, hadde 10 vært 8, og i det innerste av en datamaskin er 10 lik 2. Vårt tallsystem og oppdagelsen av tallet NULL skjedde i India ca. 400 år f.kr, men kom først til Europa rundt år 1100. Hvor vakkert er det ikke når ingenting (null) betyr så mye. All informasjon i datamaskin er i sin mest basale form representert gjennom to tall 0 og 1. Et talespråk er et system vi bruker for å kommunisere. Et skriftspråk er et system av tegn med tilhørende regler vi bruker for å kommunisere. Skriftspråk er i konstant endring påvirket av talespråk og andre skriftspråk. I motsetning til et talespråk som utvikler seg blant mennesker, er et skriftspråk å betrakte som en oppfinnelse. Det første kjente skriftspråket heter kileskrift og stammer fra Babylon omkring 3200 år f.kr. Det norske alfabetet har 29 bokstaver og bygger på det latinske alfabet som ble etablert rundt 600 år f. Kr. Vi kommuniserer med datamaskinen gjennom vårt eget naturlige språk og vi forteller datamaskinen hva den skal gjøre gjennom forskjellige programmeringsspråk. Som de naturlige språkene, består programmeringsspråkene av tegn og regler. I informatikkens verden er språk viktig, både fordi vårt naturlige språk er med på å definere grensesnittet mot datasystemene, og fordi alle systemer er utviklet ved hjelp av et eller flere programmeringsspråk. 2. Drømmen om en maskin som kunne regne Abakus, eller kulerammen, ble utviklet og brukt i en rekke kulturer verden over. De eldste kulerammene stammer trolig fra Mesopotamia omlag 2500 år f.kr. Kulerammen er et hjelpemiddel for å regne, og den er fortsatt i aktiv bruk i Japan og Kina. Datamaskinen er også et hjelpemiddel for å regne, men det er vel å strekke strikken litt langt å si at kulerammen er en reell forløper til datamaskinen. Den første kjente regnemaskinen som kunne utføre alle de fire grunnleggende regneartene stammer fra Gottfried Wilhelm Leibniz (1646 1716). Før det hadde Leonardo da Vinci (1452 1519) beskrevet en maskin som kunne addere, og Wilhelm Schickard (1592 1635) og Blaise Pascal (1623
Den fjerde ITK-bølgen 209 1662) konstruert mekaniske innretninger som også kunne subtrahere. Leibniz, som gjerne omtales som det siste universalgeniet, drømte om et universelt språk (characteristica universalis) som kunne brukes til å representere og regne på all menneskelig kunnskap. Han drømte også om en kalkyle (calculus ratiocinator) for å regne på uttrykk i dette språket. Hans regnemaskin (stepped reckoner) var et forsøk på å realisere denne drømmen. Alle disse mekaniske regnemaskinene fra 1600-tallet manglet imidlertid noe vesentlig som var nødvendig for at de kunne kalles reelle forløpere til datamaskinen, men på begynnelsen av 1800-tallet skjedde det noe. 3. Datamaskinens bestefar og verdens første programmerer I 1820 tegnet den engelske matematikeren Charles Babbage (1791 1871) en regnemaskin som inneholdt mesteparten av de funksjonene vi har i en datamaskin i dag. Han var inspirert av utviklingen av Jacquards mekaniske vev fra 1700-tallet, som kunne kontrolleres med hullkort. Noen år senere presenterte Babbage maskinen han kalte differansemaskinen (The Difference Engine) for The Royal Astronomical Society i England. Maskinen skulle fremstille logaritmetabeller der logaritmeberegningen ble tilnærmet av polynomer og en numerisk metode (differansemetoden). Babbage fikk penger for å lage maskinen, men klarte ikke å konstruere den. Han klarte ikke å få de mekaniske delene til å fungere. Material- og produksjonsteknologien var ikke moden. Essensen i Babbages maskin var at denne maskinen trengte et minne, noe vi vet at alle datamaskiner trenger. Noen år senere (1842) presenterte han en enda mer avansert maskin (The Analytical Engine) som også kunne programmeres. Charles Babbage kalles gjerne for datamaskinens bestefar. Augusta Ada King, Countess of Lovelace (1815 1852), i moderne tid kjent som Ada Lovelace, kalles gjerne den første programmerer. Hun var datter av den kjente poeten Lord Byron og møtte Charles Babbage i 1833. Helt frem til sin tidlige død i 1852, arbeidet hun med å utvikle algoritmer som kunne benyttes av den analytiske maskinen (The Analytical Engine) til Charles Babbage. I forbindelse med at hun oversatte Babbages arbeider til fransk, utarbeidet hun algoritmer for å beregne de såkalte Bernoulli-tallene, og det er for dette arbeidet hun i dag trekkes frem som verdens første programmerer. Programmeringsspråket Ada er oppkalt til ære for denne bemerkelsesverdige kvinnen, og i det nye informatikkbygget Ole-Johan Dahls hus på UiO har hun fått et eget rom oppkalt etter seg.
210 Det Norske Videnskaps-Akademi Årbok 2012 4. Fra folketelling til big business Hermann Hollerith (1860 1929) var en tysk-amerikansk statistiker som utviklet en tabulerende maskin basert på hullkort. Hollerith fant ut at tall kunne kodes ved å lage hull plassert i bestemte posisjoner (rader og kolonner) på et kort. Den tabulerende maskinen var konstruert slik at mekanikken kunne sortere kortene og telle antall kort med ulike kombinasjoner av hull. Som en del av systemet utviklet Hollerith en mekanisme der han brukte en elektronisk forbindelse for å trigge en teller. Holleriths maskiner ble først brukt under folketellinger i USA. Mens den forrige folketellingen i USA (1880-folketellingen) tok 8 år, ble den neste gjennomført på ett år (1890- folketellingen) ved hjelp av maskinene til Hollerith. Hermann Hollerith var grunnleggeren av firmaet Computing Tabulating Recording Corporation (CTR) som i 1911 ble fusjonert med tre andre selskaper. Dette fusjonerte selskapet fikk i 1924 navnet International Business Machines Corporation (IBM). Min historie om IBM slutter her, men den historien er både stor og omfattende. 5. Faget fødes og datamaskinen blir til I 1936 publiserte Alan M. Turing (1912 1954) artikkelen On Computable Numbers. Dette er et av Turings mest berømte verk der han definerer grunnlaget for datavitenskapen og informatikkfaget. Han gir her en formell presisering av hva en algoritme er ved å definere en maskin (senere kalt Turingmaskin) og si at en algoritme er nøyaktig det denne kan gjøre. Han dannet her mye av grunnlaget for analysen av avgjørbarhet i matematisk logikk. Han klarte videre å si noe veldig presist om hvor grensen går for hva datamaskiner kan gjøre og for hva det finnes algoritmer for. Turing hadde også andre viktige bidrag til informatikkens historie, bl.a. innen kodeteori og kunstig intelligens. Basert på hans vitenskapelige bidrag før og under andre verdenskrig betegnes ofte Alan M. Turing som informatikkens far. Matematikeren John von Neumann (1903 1957) regnes som en av historiens skarpeste hjerner, og han hadde et stort antall bidrag innen en rekke fagområder. Von Neumann var trolig også den første som gav en vitenskapelig fundert beskrivelse av hvordan kjernen i en datamaskin måtte se ut. Von Neumanns arbeider var inspirert av Alan M. Turing og de som bygget ENIAC, se under. Konstruksjonen av kjernen i datamaskinene, helt frem til i dag, er basert på prinsipper utviklet av von Neumann.
Den fjerde ITK-bølgen 211 Den tekniske utviklingen før og under andre verdenskrig var rask og omfattende, og flere forskere verden over hadde tanker om hvordan de skulle bygge en elektronisk regnemaskin. Her strides man litt om hvem som var først ute, men jeg går for John Mauchy (1907 1980) og J. Presper Eckert (1919 1995) som i februar 1946 skrudde på strømmen på ENIAC (Electronic Numerical Integrator And Computer). Mauchly og Eckert var også sentrale i utviklingen av EDVAC, BINAC og UNIVAC 1, som var den første datamaskin i kommersielt salg i USA. Norges første datamaskin sto ferdig i 1954. Den ble bygget av Thomas Hysing ved Sentralinstituttet for Industriell Forskning og fikk navnet NUSSE (Norsk Universell Siffermaskin Selvstyrt Elektronisk). NUSSE står i dag utstilt på Teknisk Museum i Oslo. Fra den første spede begynnelse rett etter annen verdenskrig ble den elektroniske regnemaskinen gradvis utviklet til det vi i dag kaller en datamaskin. De elektroniske regnemaskinene var i starten store, og prinsippet om 0 1 (strøm ikke strøm) ble håndtert av radiorør. Etter hvert fant man ut at man kunne bruke transistorer, og regnemaskinene ble mindre. Mot slutten av 1960 dukket det opp en ny teknologi, mikroprosessoren, og den første kommersielle prosessoren, Intel4004, ble lansert i 1971. Deretter har det kun gått en vei, og historien om mikroprosessoren kan best beskrives ved Moores lov som sier at regneenheten i en datamaskin skal doble sin ytelse hver 18. måned. Slik så det altså ut for Gordon Moore rundt 1970, og denne spådommen holder fortsatt. Bakgrunnen for Moores nokså friske spådom var at han så at transistorene kunne lages mindre og mindre og at vår evne til å lage disse mindre og mindre ville utvikle seg svært raskt (eksponensielt). I dag har de minste transistorene en størrelse på noen 10-talls nanometer. Det er ikke godt å si hvor dette vil ende, men det er absolutt en grense for hvor små disse komponentene kan bli! 6. Programmeringsspråket som endret verden I en gjennomgang av informatikkens historie kommer vi ikke utenom Ole- Johan Dahl (1931 2002) og Kristen Nygaard (1926 2002). I 2001 fikk de Turing-prisen for oppfinnelsen og utviklingen av objekt-orientert programmering og programmeringsspråket Simula. Dette arbeidet ble utført på 1960-tallet, og deres bidrag regnes i dag som et av de mest betydningsfulle bidrag i informatikkens historien. En datamaskin utfører det vi ber den om å utføre vi gir datamaskinen instruksjoner. Disse instruksjonene plasseres i all hovedsak i datamaskinen
212 Det Norske Videnskaps-Akademi Årbok 2012 gjennom bruk av et programmeringsspråk. I datamaskinens barndom var disse språkene enkle og utviklet med henblikk på at datamaskinen var en regnemaskin. Etter hvert innså forskere som Dahl og Nygaard at maskinen kunne brukes til mye mer. De trengte derfor et programmeringsspråk som var bedre egnet for de oppgaver som skulle løses, for eksempel det å utvikle et styringssystem i en kaffemaskin eller banktjenester over internett. Det praktiske problemets kompleksitet måtte på en effektiv og velorganisert måte kunne modelleres og plasseres i en datamaskin. Nøkkelen var objekt-orientering en teknikk (eller metode) som gjorde det betydelig enklere å beskrive oppgaven (for eksempel styringssystemet i kaffemaskinen) i en datamaskin. Objekt-orientering brakte viktige elementer fra menneskets logikk inn i programmeringen og er i dag like grunnleggende innen informatikken som regnearten multiplikasjon er i matematikken. Objekt-orientering er den mest brukte teknikk for utvikling av programvare i dag, og enhver utdanning i informatikk inneholder innføring i og bruk av objekt-orienterte teknikker. Arbeidet til Dahl og Nygaard har skapt verktøy og innsikt for systemutviklere over hele verden, og ikke minst gitt oss mulighetene til på en bedre måte å kunne utvikle gjenbrukbare, pålitelige og utvidbare IKT-produkter. Dahl og Nygaard realiserte sine resultater gjennom utviklingen av det første objekt-orienterte programmeringsspråket som fikk navnet Simula (forkortelse for Simulation language). Pionerarbeidet omkring objekt-orientering og utviklingen av Simula ble utført ved Norsk regnesentral i perioden 1961 1967. Simula la grunnlaget for utviklingen av senere språk som Smalltalk, C++, Eiffel, Beta og ikke minst Java som i dag er det sentrale språket i utviklingen av anvendelser for internett. Som nevnt over ble Ole-Johan Dahl og Kristen Nygaard tildelt Turingprisen for 2001. ACM (The Association for Computing Machinery), som deler ut prisen, skriver følgende i sin pressemelding av 4. februar 2002: The Association for Computing Machinery (ACM) has bestowed the 2001 A.M: Turing Award, considered the Nobel Prize of Computing, to Ole-Johan Dahl and Kristen Nygaard of Norway for their role in the invention of object-oriented programming, the most widely used programming paradigm currently in use. Prisen er oppkalt etter matematikeren og datamaskinpioneren Alan M. Turing. I tillegg til Turing-prisen fikk Dahl og Nygaard også den prestisjefylte von Neumann-medaljen i 2002 for oppfinnelsen av objekt-orientert programmering og utviklingen av Simula.
Den fjerde ITK-bølgen 213 7. Internett Fra varder og andre signalsystemer, via telegrafen, telefonen og andre kommunikasjonssystemer som radio og fjernsyn har vi fått Internett. Internett i den formen vi kjenner det i dag, oppsto på slutten av 1960-tallet (ARPAnett) og fant sin vei ut i verden på 1970-tallet. Internett kom til Norsar og Norge i 1973, og ble raskt tatt i bruk av universitetene. Det tok imidlertid nærmere 20 år før Internett tok verden med storm. Det skjedde i 1991 da Tom Berners Lee, som på den tiden arbeidet på CERN, bestemte seg for å lansere World Wide Web (WWW) for fri bruk, og med det skapte han et globalt informasjonsrom for deling av data og informasjon. Dette kunne jeg ha skrevet mye om, men må stoppe her for at denne historiefortellingen ikke skal bli for lang. 8. De siste 50 årene Historien om de siste 50 årene er så stor og omfattende at det kan skrives tusenvis av sider, og denne delen av historien inneholder et hav av store og små oppfinnelser og fremskritt. Her skal jeg kun ta for meg ett perspektiv, nemlig datamaskinens (eller datasystemenes) økende betydning for samfunns-utviklingen. Jeg begynner rundt 1960. For 50 år siden fantes det noen få datamaskiner, og de var kun for spesielt interesserte, og de tjente kun forskningen gjennom at de ble brukt til beregninger som ikke kunne utføres med blyant og papir. Disse maskinene var få og store (fylte hele rom). I dag finnes milliarder av datamaskiner, og brorparten av maskinene er bitte små. Fra 1960 og utover begynte datamaskinene å få stor betydning for kunnskapsutviklingen i samfunnet, herunder utvikling av vitenskapene. I dag er datasystemene helt avgjørende for vitenskapelige fremskritt innen svært mange fagfelt, og stadig flere fagfelt er avhengig av datamaskinens kraft i arbeidet for å skape ny erkjennelse. Økonomisk betydning; Selv om det var tilløp til kommersiell bruk av datamaskiner, og at datamaskiner utførte noen viktige oppgaver i samfunnet også før 1970, var det først på 1970-tallet at datamaskiner fikk sitt økonomiske gjennombrudd. Datamaskiner ble masseprodusert og kjøpt for å utføre viktige oppgaver. Etter hvert kom PCene, Internett ble folkeliggjort gjennom WWW, telekommunikasjon og IKT smeltet sammen, og vi er trådløst på nett med våre smarte terminaler. I dag er Internett, med alle sine applikasjoner, selve navet i den økonomiske utviklingen.
214 Det Norske Videnskaps-Akademi Årbok 2012 Politisk betydning; Det er vanskelig å tidfeste når politikerne i stort omfang oppdaget betydningen av datamaskiner/datasystemer. Av og til kan man lure på om politikerne fortsatt ikke har tatt inn over seg hva som har skjedd de siste 50 årene, men min vurdering er at noe fundamentalt skjedde på 1980-tallet. På den tiden dukket det opp flere tunge politiske dokumenter der man pekte på betydningen av IKT, og politiske beslutninger medførte kraftige økninger i bevilgningene til informasjonsteknologi over store deler av verden. Dette skjedde også i Norge, som f.eks. i 1985 valgte å bruke nærmere 100 millioner kroner til innkjøp av en superdatamaskin. Dette var mye penger i 1985. I dag er IKT og politikk knyttet til IKT-utviklingen en viktig del av det politiske landskap. Kulturell og sosial betydning; De seneste tilskuddene i form av betydning for samfunnsutviklingen handler om at IKT også har fått stor betydning for kulturell og sosial utvikling. Mediene har for lengst flyttet fra papir til nett (selv om papiravisene fortsatt er med oss), møteplassene florerer i cyberspace (sosiale medier), brorparten av den informasjon vi trenger er et par tastetrykk unna uansett hvor vi er, osv. De seneste tall fra Statistisk sentralbyrå viser at 93 % av alle norske husstander er koblet til Internett, og for befolkningen under 67 år er andelen hele 98 %. Utfordringen har blitt de få som ikke er på. Dette var en kort og litt upresis versjon av IKT-utviklingen de siste 50 årene. Et par personer som nok hadde fått plass i en litt lengre versjon er Bill Gates og Steve Jobs, men det finnes også andre betydningsfulle bidrags ytere de siste 50 årene som må være med for å gi et mer fullstendig bilde av informatikkens historie. 9. Den digitale revolusjon Et verdensomspennende Internett gir oss informasjon på sekundet, mennesker og ting kobles sammen i et omfang vi aldri før har sett, og nye og bedre datasystemer lanseres hver eneste dag. Hundrevis av datamaskiner med tilhørende systemer hjelper oss i hverdagen enten vi er hjemme, sitter i bilen, er på jobb eller gjør noe helt annet. Datasystemene er overalt, og vi er alltid på. Den digitale revolusjon er gjennomført! Ut av informatikken skapes hele tiden nye produkter, behov og markeder som ikke eksisterte tidligere og som svært ofte ikke var planlagt som et konkret utfall av teknologiutviklingen. Produksjon av varer og tjenester effektiviseres gjennom bruk av IKT-systemer. Omsetning og distribusjon av varer og tjenester skjer i større og større grad ved hjelp av digitale hjelpe-
Den fjerde ITK-bølgen 215 midler. Velferdsstaten bygger sin virksomhet på datasystemer som utfører viktige oppgaver, og kommuniserer direkte med landets borgere. Den norske regjeringen lanserte i 2012 sin plan for fulldigitalisering av det offentlige Norge og offentlige etaters kommunikasjon med landets borgere. Det digitale økosystem er og vil være navet i samfunnsutviklingen. Vi er et nytt Norge et digitalisert Norge! Utviklingen fortsetter, og endringene de neste 10 årene blir om mulig enda større enn endringene de siste 10 årene. Datamaskinene blir fortsatt raskere, mindre og billigere. De blir flinkere til å kommunisere, og det blir stadig flere datamaskiner som bidrar i hverdagen. Denne situasjonen skaper mange nye muligheter, men den gir oss også noen viktige utfordringer. Vår innsats må handle om hva som skal til for å utnytte og gripe de nye mulighetene, og hvordan håndtere de viktigste industrielle og samfunnsmessige utfordringene som oppstår i en verden som er og vil være totalt avhengig av at IKT-systemer fungerer slik de skal. Selv om vi vet mye om teknologiutviklingen, er det vanskelig å spå hvordan den digitale hverdagen blir om 10 år, men en ting er sikkert; den blir ganske annerledes enn i dag. Fakta til denne artikkelen er i all hovedsak hentet fra Wikipedia.