KOMMENTAR | Magne Jørgensen

PROGRAMMERBAR: En replika av Zuses Z1 er utstilt på Museum of Technology i Berlin. Det er en programmerbar, mekanisk regnemaskin, med de fleste komponenter som moderne datamaskiner har.

Konrad Zuse - den ukjente oppfinneren av datamaskinen?

Hvem oppdaget Amerika? Var det førhistoriske stammefolk som kom over Beringstredet for mer enn ti tusen år siden, var det Leiv Erikssons ekspedisjon til Vinland ca. år 1000, var det Christofer Columbus (1492) som trodde han hadde funnet en ny vei til India, eller var det Amerigo Vespucci (ca. år 1500) som var den første som skjønte at dette var et nytt kontinent?

Publisert

På samme måte som at svaret på dette avhenger av hvordan man definerer «å ha oppdaget Amerika», så finnes det mange mulige svar på hvem som «oppfant datamaskinen».

Et godt begrunnet svar på spørsmålet om datamaskinens oppfinner er likevel at det var den relativt lite kjente tyskeren Konrad Zuse (1910-1995). Det er minst to grunner til at jeg synes dette er verdt litt oppmerksomhet. Den første grunnen er at æres den som æres bør (1). Like viktig er imidlertid at historien om Zuse illustrerer noen interessante og kanskje overraskende mekanismer i hvordan data-teknologien noen ganger utvikler seg.

La oss starte med noen av de mange bidragene til Zuse - stort sett gjort på egenhånd:

• Han utviklet den første fungerende, programmerbare, digitale maskinen som var i stand til å utføre generelle beregninger (2) . Tidligere bidrag feilet på minst ett av disse kriteriene. Zuses datamaskin het Z3, var basert på releer, og var ferdig i 1941, med andre ord flere år før den første elektroniske digitale, programmerbare datamaskinen (Eniac) ble utviklet. Allerede i 1938 hadde Zuse dessuten laget en programmerbar, mekanisk regnemaskin (Z1), med de fleste komponenter som moderne datamaskiner har.

Magne Jørgensen

Magne Jørgensen er professor ved SimulaMet og forsker blant annet på prosjektledelse og kostnadsestimering av utviklingsprosjekter. Han skriver fast for Computerworld om disse temaene.

• Han utviklet et assembler-lignende programmeringsspråk, skrevet på hull-film som kunne kjøre på Z3. Med noen matematiske og/eller mekaniske «triks» så er dette språket Turing-komplett. Z3 kunne med andre ord gjøre alt det som kan beskrives algoritmisk. Dette betyr at også at Zuse var den første som fikk skrevet og eksekvert et (lav-nivås) datamaskin-program (3), og kan dermed også anses som den første datamaskin-programmereren.

• Han var den første som implementerte - og ikke bare designet - prinsipper for datamaskin-arkitektur, med regneenhet, kontrollenhet, minneenhet og input/output-enheter, og der programmet lagres i minneenheten. Denne arkitekturen er blitt videreført i arkitekturen som brukes i dagens datamaskiner - såkalt von Neumann-arkitektur. von Neumann kjente forøvrig neppe til Zuse, og Zuse heller ikke til von Neumann.

• Han var den første som implementerte digitaliserte beregninger (0/1 som eneste mulige siffer) og flyttallsaritmetikk (som gjør det enklere å gjøre beregninger med svært høye og svært lave tall). Begge deler var der allerede i 1937 for sin hel-mekaniske Z1 maskin. Andre tidligere forsøk, som Babbage sin Analytic Engine, var heltallsbaserte og basert på titallsystemet.

• Han designet det første høynivå programmeringsspråk (Plankalkül) ca. 1943. Zuse beskrev blant annet algoritmer for å spille sjakk i Plankalkül, og kan dermed sies å ha skrevet et av de aller første KI-systemene. Språket ble aldri implementert i Zuses levetid, men var altså designet minst ti år før tilsvarende programmeringsspråk kom på markedet, som Fortran (1957) og ALGOL (1958).

• Han grunnla og ledet det første firmaet som solgte datamaskiner. Dette var basert på salg av etterkommere til Z3, og var fram til rundt 1950 den eneste europeiske leverandøren av datamaskiner.

• Han var den grunnleggeren av det som i dag kalles «digital fysikk», gjennom boka «Rechnender Raum» (1969). Hypotesen hans, inspirert av blant annet kvantefysikk og automatteori, var at naturen er et selvkjørende, digitalt system (datamaskin) der hver deltilstand beregnes utfra forrige tilstand etter bestemte regler (program). Noe forenklet, tilsier det at universet kan beskrives som en enorm digital datamaskin, der naturlovene utgjør programmet som styrer beregningene av alt som skjer. Selv om hypotesen til Zuse lett kan kritiseres - den lar seg for eksempel vanskelig teste - så har andre forskere senere formulert lignende hypoteser. Seth Lloyd fra MIT (2006), for øvrig trolig uten å kjenne til Zuse, hevder for eksempel at universet kan forstås som en kvantedatamaskin.

Først med mye

Som listen ovenfor viser, så var Zuse en ekstremt innovativ ingeniør som var først ute med mye. Hovedformålet med innovasjonene som oftest å automatisere arbeid. Dette hadde han drevet med allerede som barn, blant annet ved å finne opp en maskin som kunne sortere småstein etter størrelse som 10-12 åring. 

Han synes å ha vært oppmerksom på at det han holdt på med på 1930-tallet var unikt og forsøkte i 1936 å få patent på en maskin (Rechenvorrichtung) basert på ideer som senere ble implementert i Z1, Z2 and Z3. Patentkontoret i Tyskland skjønte ikke hva han beskrev, trodde det kun var en avansert regnemaskin, og søknaden ble avslått. Etter krigen - i 1945 - forsøkte han igjen, men denne gangen var det for sent, siden prinsippene allerede var i bruk i blant annet USA.

Etter krigen - i 1945 - forsøkte han igjen, men denne gangen var det for sent, siden prinsippene allerede var i bruk i blant annet USA.

Innovasjonene til Zuse ble i stor grad gjort uten særlig innflytelse fra andre som hadde presentert relevante teoretiske eller konseptuelle resultater. Han visste for eksempel ikke om Babbage sin Analytic Engine, Ada Lovelace sine programmeringskonsepter, eller Turings arbeid med algoritmer. Han kjente heller ikke til Boole og Shannon sine resultater rundt binær logikk, det vil si bruk av de operatorene AND, OR og NOT til å beskrive logiske operasjoner som senere kunne realiseres som aritmetiske operasjoner på binære signaler. 

I stedet synes han å ha gjenoppfunnet logikken bak binær algebra ved å analysere og prøve seg fram med mekaniske brytere som kun hadde tilstandene av og på. Han kan ha visst om Jacquard sine hullkort, men det er usikkert siden han selv brukte hull-filmer (35 mm film) og ikke hullkort. 

Kanskje like overraskende, så hadde neste generasjon ingeniører og forskere som arbeidet med å konstruere datamaskiner i det store og hele, heller ikke noe særlig kunnskap om forløperne.

Kanskje like overraskende, så hadde neste generasjon ingeniører og forskere som arbeidet med å konstruere datamaskiner, som utviklingen av Eniac, og programmeringsspråk, som Fortran og Cobol, i det store og hele, heller ikke noe særlig kunnskap om forløperne. De kjente for eksempel neppe til datamaskinene til Babbage og Zuse eller programmeringsspråk-konseptene til Ada Lovelace.

Det kan også være andre grunner til at Zuses bidrag har hatt liten påvirkning på utviklingen av datamaskinen og er relativt lite kjent. Utviklingen av Z3 ble gjort i Tyskland under 2. verdenskrig, finansiert av nazi-regimet. Selv om det hevdes at Z3 aldri ble brukt i krigsrelaterte handlinger, så begrenset krigen informasjonsflyt mellom land, og kanskje også hvem man i etterkant ønsket å gi æren for å ha konstruert den første datamaskinen. At firmaet til Zuse, som solgte etterkommerene til Z3, heller ikke ble noen finansiell suksess bidro heller ikke til at han ble berømt.

Hjelper ikke å være først

Hva kan vi så - om noe - lære av dette?

• Det hjelper av og til lite å være først, dersom innovasjonen ikke legges merke til og først gjenoppdages etter noe tid. Æren går dessuten ofte ikke til den som er først, men den som tar æren, er den mest berømte i et team som oppdager noe, er på seierherrenes side, lykkes best forretningsmessig, eller bare er heldig ...

Æren går dessuten ofte ikke til den som er først, men den som tar æren, er den mest berømte i et team som oppdager noe, er på seierherrenes side, lykkes best forretningsmessig, eller bare er heldig.

• Store innovasjoner gjøres noen ganger uten kunnskap om tidligere bidrag (4). Historiefortellingen - som den om datamaskinens tidlige utvikling - beskrives likevel oftest som en stegvis oppdagelses-prosess og gir inntrykk av at man bygget kunnskap sten på sten. Senere utviklingen av datamaskiner og programmeringsspråk synes forøvrig i større grad å være bygget mer sten-på-sten.

• Noen ganger - kanskje svært ofte - er teknologi-utvikling noe som bare ligger i tiden. I dette tilfelle ble de samme oppdagelsene gjort uavhengig av hverandre med noen års mellomrom. Dette tyder på at datamaskinen og generelle, høynivås programmeringsspråk hadde sett mer eller mindre akkurat ut som i dag, uten Boole, Babbage, Lovelace, Turing, von Neumann, Eniac-prosjektet og Zuse.

Kilder:

• https://en.wikipedia.org/wiki/Konrad_Zuse

• https://www.britannica.com/technology/Zuse-computer#ref1009906

• https://en.wikipedia.org/wiki/Z3_(computer)

• Zuse, K. (1069), Der Computer – Mein Lebenswerk.

• Zuse, K. (2013). Rechnender raum. Springer-Verlag. (https://philarchive.org/archive/ZUSRR)

• https://en.wikipedia.org/wiki/Digital_physics