20 største opfindelser i computerprogrammering
I en af de samtaler, jeg har haft med vores seniorredaktør, blev jeg stillet spørgsmålet, “Hvordan gik det første programmers program?” Dette førte til en diskussion om Babbage og Ada Lovelace, hvor jeg til sidst blev tildelt forskning hvordan det alle begyndte - det er de mange første i databehandling historie.
Jeg gravede ind i bøger og hjemmesider og blev mødt med mange åbenbaringer: Babbage er ikke teknisk opfinder af computeren var FORTRAN absolut ikke det første højt niveau programmeringssprog, og vi plejede at have stylusser til CRT-skærme (virkelig).
Jeg var også overrasket over at finde ud af, hvor vigtige krige var ved at udnytte de hurtige fremskridt inden for computerudvikling samt mange kvinders bidrag, som vores lærebøger valgte at forsømme. For at udfylde hullerne i computer- og programhistorien har jeg derfor samlet 20 første i computervirksomhed, fra bowlingkugler til 2. verdenskrig og alt der er mellem.
1. Første computer: “Forskel motor” (1821)
Det “Differencemotor” var en foreslået mekanisk computer, der skulle bruges til at udføre matematiske tabeller. Kommissioneret af den britiske regering begyndte Charles Babbage (aka Computer of Father) at arbejde på det, men på grund af sin høje produktionsomkostninger blev finansieringen stoppet og Maskinen blev aldrig afsluttet.
2. Første almindelige computer: “Analytisk motor” (1834)
Det “Analytisk motor” var også en foreslået mekanisk computer, hvis indgang skulle stanses kort, med programmer og data stanset på dem. Et andet hjernebarn af Charles Babbage, denne maskine blev heller ikke afsluttet.
3. Første Computer Program: Algoritme til at beregne Bernoulli tal (1841 - 1842)
Ada Lovelace (verdens første computerprogrammerer) begyndte at oversætte den italienske matematiker Luigi Menabrea's optegnelser på Babbages analytiske motor i 1841. Under oversættelsen blev hun interesseret i maskinen og venstre notater med sin oversættelse. En af noterne - note G, indeholdt algoritmen til at beregne Bernoulli tal ved den analytiske motor, der anses for at være det allerførste computerprogram.
4. Første arbejdsprogrammerbar computer: Z3 (1941)
Konrad Zuse (Inventor af Computere) havde allerede en fungerende mekanisk computer Z1, men det fungerede kun i få minutter ad gangen. Anvendelsen af en anden teknologi - relæer førte til Z2 og til sidst Z3. Z3 var en elektromagnetisk computer, for hvilket program og data blev lagret på eksterne stansede bånd. Det var et hemmeligt projekt fra den tyske regering og blev brugt af The German Aircraft Research Institute. Den originale maskine blev ødelagt i bombningen af Berlin i 1943.
5. Første Elektroniske Computer: Atanasoff-Berry Computer (ABC) (1942)
Fremstillet af John Vincent Atanasoff & Clifford Berry, deraf blev navnet Atanasoff-Berry Computer eller ABC brugt til at finde løsningen til samtidige lineære ligninger. Det var den allerførste computer, der brugte binære til at repræsentere data og elektroniske kontakter i stedet for mekaniske. Computeren var dog ikke programmerbar.
6. Første programmerbare elektroniske computer: Colossus (1943)
Colossus skabt af Tommy Flowers, var en maskine oprettet til at hjælpe de britiske dekryptere tyske meddelelser, der blev krypteret af Lorenz-krypteringen, tilbage i anden verdenskrig. Den blev programmeret af elektroniske kontakter og stik. Colossus bragte tid til at dechiffrere de krypterede meddelelser ned fra uger til blotte timer.
7. Første Generel Programmerbar Elektronisk Computer: ENIAC (1946)
Finansieret af den amerikanske hær, ENIAC eller Elektronisk Numerisk Integrator Og Computer blev udviklet i Moore School of Electrical Engineering, University of Pennsylvania af John Mauchly & J. Presper Eckert. ENIAC var 150 meter bredt og kunne programmeres til at udføre komplekse operationer som løkker; programmeringen blev udført ved at ændre sine elektroniske kontakter og kabler. Det brugte kortlæsere til input og kort stans til output. Det hjalp med beregninger for gennemførligheden af verdens første brintbombe.
8. Første Trackball: (1946/1952)
Hvorfor de to år for den første trackball? Tillad mig at forklare.
Det første år var året givet af en Ralph Benjamin, der hævdede at have skabt verdens første trackball tilbage, da han arbejdede på et overvågningssystem for lavflyvende fly i 1946. Den opfindelse han beskrev brugte en bold til at styre XY koordinaterne af en markør på skærmen. Designet blev patenteret i 1947, men blev aldrig frigivet, fordi det blev betragtet som a “militær hemmelighed”. Militæret valgte joysticken i stedet.
Den anden udfordrer til verdens første trackball, der blev brugt i canadiske flådens DATAR-system tilbage i 1952, blev opfundet af Tom Cranston og co. Dette trackball design havde en mock up, som udnyttede en canadisk bowling bold spundet på “luft lejer” (se billedet nedenfor).
9. Første lagret program-computer: SSEM (1948)
For at overvinde manglerne i forsinkelseslinjeminnet havde Frederic C. Williams og Tom Kilburn udviklet den første tilfældige adgangs digitale lagringsenhed baseret på standard CRT. SSEM (Manchester Småskala eksperimentelle maskine) blev brugt til at implementere denne lagerenhed til praktisk brug. Programmerne blev indtastet i binær form ved hjælp af 32 switches og dens output var en CRT.
10. Første højt niveau programmeringssprog: Plankalkül (1948)
Selv om Konrad Zuse begyndte at arbejde på Plankalkül siden 1943, var det først i 1948, da han udgav et papir om det. Det tiltrak desværre ikke meget opmærksomhed. Det ville tage tæt på tre årtier senere for en kompilator at blive implementeret for den, en skabt af en Joachim Hohmann i en afhandling.
11. Første samler: “Indledende ordrer” for EDSAC (1949)
Assembler er et program, der konverterer mnemonics (lavt niveau) til numerisk repræsentation (maskinkode). De oprindelige ordrer i EDSAC (Elektronisk Delay Storage Automatisk Regnemaskine) var det første af et sådant system. Det blev brugt til at samle programmer fra papirbåndindgang til hukommelsen og køre indgangen. Programmerne var i mnemoniske koder i stedet for maskinkoder, der blev lavet “indledende kode” den første nogensinde assembler ved at behandle en symbolsk lavniveau programkode til maskinkode.
12. Første personlige computer: “Simon” (1950)
“Simon” af Edmund Berkeley var den første overkommelige digitale computer, der kunne udføre fire operationer: tilføjelse, negation, større end og valg. Indgangen blev stanset papir, og programmet løb på papirtape. Den eneste produktion var gennem fem lys.
13. Første kompilator: A-0 for UNIVAC 1 (1952)
En kompilator er et program, der konverterer sprog på højt niveau til maskinkode. A-0 Systemet var et program oprettet af den legendariske Grace Hopper til at konvertere et program specificeret som en sekvens af subrutiner og argumenter til maskinkode. A-0 udviklede sig senere til A-2 og blev frigivet til kunder med sin kildekode, der muligvis gør det meget første open source software.
14. Første autokode: Glennies autokode (1952)
Et autokode er et programmeringssprog på højt niveau, der bruger en compiler. Den første autokode og dens kompilator optrådte ved University of Manchester for at gøre programmeringen af Mark 1-maskine mere forståelig. Det blev skabt af Alick Glennie, dermed navnet Glennie's Autocode.
15. Førsteklasses grafikdisplaycomputer: AN / FSQ-7 af IBM (1951)
AN / FSQ-7 var baseret på en af de første computere, der viste real-time output, Whirlwind. Det blev livsnerven for det amerikanske luftforsvarssystem, kendt som Semi-Automatic Ground Environment (SAGE). Computeren viste spor for målene og viste automatisk, hvilke forsvar der var inden for rækkevidde. AN / FSQ-7 havde 100 systemkonsoller; her er en (billedet nedenfor), OA-1008 Situationsdisplayet (SD), med en lyspistol brugt til at vælge mål på skærmen for yderligere information.
16. Første stort brugt højt niveau programmeringssprog: FORTRAN (1957)
Hvis du tjekker lærebøgerne, finder du FORTRAN, der er opført som det første højt programmeringssprog. Tænkt op af John W. Backus, der ikke kunne lide at skrive programmer og besluttede at oprette et programmeringssystem for at gøre processen lettere, reducerede brugen af FORTRAN kraftigt antallet af programmeringserklæringer, der kræves for at få en maskine kørende. I 1963 var der mere end 40 FORTRAN-kompilere allerede tilgængelige.
17. Første mus (1964)
Det var samtidig i en konference-session om computergrafik, at ideen om en mus kom til Douglas Engelbart i 1964. Han tænkte på en enhed med et par små hjul (den ene drejer sig vandret den anden lodret), som kan bruges til at bevæge en markør på en skærm. En prototype (se nedenfor) blev oprettet af hans ledende ingeniør, Bill English, men både engelsk og Engelbart modtog aldrig royalties for designet, fordi det teknisk set tilhørte SRI, Engelberts arbejdsgiver.
18. First Commercial Desktop Computer: Program 101 (1965)
Også kendt som Perottina var Programma 101 verdens første kommercielle pc. Det kunne udføre tilføjelse, subtraktion, multiplikation, division, kvadratrod, absolut værdi og fraktion. For alt det, det kunne gøre, blev det prissat til $ 3.200 (det var en meget anderledes tid) og formået at sælge 44.000 enheder. Perottina blev opfundet af Pier Giorgio Perotto og produceret af Olivetti, en italiensk producent.
19. Første Touchscreen (1965)
Det ligner ikke meget, men det var den første berøringsskærm, verden nogensinde har kendt. Det er et kapacitativt touchscreen-panel uden trykfølsomhed (der er enten kontakt eller ingen kontakt), og det registrerer kun et enkelt kontaktpunkt (i modsætning til multitouch). Konceptet blev vedtaget til brug af flyvelederne i Det Forenede Kongerige indtil 1990'erne.
20. Første objektorienteret programmeringssprog: Simula (1967)
Baseret på C. A. R. Hoares koncept for klassekonstruktioner opdaterede Ole-Johan Dahl og Kristen Nygaard deres “SIMULA I” programmeringssprog med objekter, klasser og underklasser. Dette resulterede i oprettelsen af SIMULA 67, som blev det første objektorienterede programmeringssprog.
Afsluttende tanker
Så meget som dette indlæg handlede om, hvad vi kunne lære om de mange førstegang i databehandlingshistorie, er det svært at fordybe os i selve historien. Som et resultat, i det mindste for mig, vi blive mere taknemmelige for det arbejde, der foregår af generationer før vores, og vi kan bedre forstå, hvad der driver de mange ændringer, der forme den verden, vi lever i i dag.
Jeg håber, at dette indlæg inspirerer dig så meget som det inspirerede mig. Del dine tanker om disse førstegangs, og hvis jeg savnede noget, hvilket jeg helt sikkert har gjort, tilføjer jeg dem i kommentarerne.