20 Največjih izumov v računalniškem programiranju
V enem od pogovorov, ki sem jih imel z našimi višjimi uredniki, so me vprašali, “Kako je program prvega programerja?” To je privedlo do razprave o Babbage in Adi Lovelace, na koncu katere sem dobil naloge za raziskave kako to vse se je začelo - to je veliko prvih v zgodovini računalništva.
Kopal sem v knjige in spletne strani in sem se srečal s številnimi razkritji: Babbage ni tehnično izumitelj računalnika, FORTRAN definitivno ni bil prvi programski jezik na visoki ravni in uporabljali smo pisala za CRT zaslone (res).
Prav tako sem bil presenečen, ko sem izvedel, kako pomembne so bile vojne pri spodbujanju hitrega napredka na področju računalniškega razvoja, ter prispevek mnogih žensk, ki so jih naši učbeniki zanemarili. Da bi zapolnili vrzeli v zgodovini računalnikov in programov, sem sestavil 20 prvakov v svetu računalništva, od bowling žog v drugo svetovno vojno in vsega, kar je vmes.
1. Prvi računalnik: “Razlika v motorju” (1821)
The “Razlika motorja” je bil predlagan mehanski računalnik, ki se uporablja za izdelavo matematičnih tabel. Po naročilu britanske vlade je Charles Babbage (ali tudi oče računalnika) začel delati na tem področju, vendar se je zaradi visoke proizvodne cene financiranje ustavilo in stroj ni bil nikoli dokončan.
2. Prvi računalnik za splošno uporabo: “Analitični motor” (1834)
The “Analitični motor” je bil tudi predlagan mehanski računalnik, katerega vložek naj bi bil preluknjan, z njimi pa so bili izsekani programi in podatki. Še ena zamisel Charlesa Babbageja, ta stroj tudi ni bil dokončan.
3. Prvi računalniški program: algoritem za izračun Bernoullijevih števil (1841 - 1842)
Ada Lovelace (prvi svetovni računalniški programer) je leta 1841 začela prevajati zapise italijanskega matematika Luigija Menabrea o analitičnem motorju Babbage. Med prevodom se je zanimal za stroj in zapustil zapiske s svojim prevodom. Ena od opomb - opomba G, vseboval algoritem za izračun Bernoullijevih števil po analitičnem motorju, ki se je štel za prvi računalniški program.
4. Prvi delovni programabilni računalnik: Z3 (1941)
Konrad Zuse (izumitelj računalnikov) je že imel delujoč mehanski računalnik Z1, vendar je deloval le nekaj minut hkrati. Uporaba različnih tehnologij - relejev, je privedla do Z2 in sčasoma do Z3. Z3 je bil elektromagnetni računalnik, za katerega so bili program in podatki shranjeni na zunanjih prebitih trakovih. To je bil skrivni projekt nemške vlade in ga je uporabil nemški letalski raziskovalni inštitut. Prvotna naprava je bila uničena v bombardiranju Berlina leta 1943.
5. Prvi elektronski računalnik: računalnik Atanasoff-Berry (ABC) (1942)
Ustvaril jo je John Vincent Atanasoff in Clifford Berry, zato je bil imenovan Atanasoff-Berry Computer ali ABC uporabljen za iskanje rešitve za simultane linearne enačbe. To je bil prvi računalnik, ki je binarno uporabil za predstavitev podatkovnih in elektronskih stikal namesto mehanskih. Računalnik pa ni bil programabilen.
6. Prvi programabilni elektronski računalnik: Kolos (1943)
Kolos, ki ga je ustvaril Tommy Flowers, je bil stroj, ki je pomagal britanskim dešifrirati nemška sporočila, ki so bila šifrirana s šifro Lorenz, v drugi svetovni vojni. Programirana je bila z elektronskimi stikali in vtiči. Kolos je prinesel čas za dešifriranje šifriranih sporočil od tednov do nekaj ur.
7. Prvi računalniško splošni programabilni elektronski računalnik: ENIAC (1946)
Financira ga ameriška vojska, ENIAC ali Elektronski numerični integrator in računalnik razvil je v elektrotehniški šoli Moore na Univerzi v Pensilvaniji, ki ga je napisal John Mauchly & J. Presper Eckert. ENIAC je bil širok 150 čevljev in se je lahko programiral za izvajanje kompleksnih operacij, kot so zanke; programiranje je bilo izvedeno s spreminjanjem elektronskih stikal in kablov. Uporabljal je čitalnike kartic za vhodne in kartične udarce za izhod. Pomagal je pri izračunu izvedljivosti prve vodikove bombe na svetu.
8. Prva sledilna krogla: (1946/1952)
Zakaj dve leti za prvi trackball? Dovolite mi, da vam pojasnim.
Prvo leto je bilo leto, ki ga je podal Ralph Benjamin, ki je trdil, da je ustvaril prvi svetovni sledilni krog, ko je leta 1946 delal na sistemu za spremljanje letal z nizkim letom. kazalca na zaslonu. Zasnova je bila patentirana leta 1947, vendar nikoli ni bila izdana, ker se šteje za “vojaško skrivnost”. Vojska se je namesto tega odločila za krmilno palčko.
Drugi kandidat za prvo svetovno sledilno kroglico, ki se je leta 1952 uporabljal v sistemu DATAR kanadske mornarice, je izumil Tom Cranston in co. Ta konstrukcija sledilne krogle je imela mock up, ki je uporabljala kanadsko kroglo za kegljanje “zračni ležaji” (glej sliko spodaj).
9. Računalnik s prvim shranjenim programom: SSEM (1948)
Da bi odpravili pomanjkljivosti pomnilnika z zakasnitvijo, so Frederic C. Williams in Tom Kilburn razvili prvo digitalno napravo za shranjevanje z naključnim dostopom, ki temelji na standardnem CRT. SSEM (Manchester) Eksperimentalni stroj malega obsega) je bila uporabljena za izvedbo te naprave za shranjevanje za praktično uporabo. Programi so bili vneseni v binarni obliki z uporabo 32 stikal in njegov izhod je bil CRT.
10. Prvi programski jezik na visoki ravni: Plankalkül (1948)
Čeprav je Konrad Zuse začel delati na Plankalkülu od leta 1943, je šele leta 1948 objavil članek o tem. Žal žal ni pritegnila veliko pozornosti. Za izvedbo prevajalnika, ki ga je izdelal Joachim Hohmann v disertaciji, bi potrebovali skoraj tri desetletja kasneje..
11. Prva montaža: “Začetni nalogi” za EDSAC (1949)
Assembler je program, ki pretvarja mnemotehniko (nizka raven) v numerično predstavitev (strojna koda). Začetna naročila v sistemu EDSAC (Elektronski kalkulator za zakasnitev shranjevanja) je bil prvi tak sistem. Uporabljen je bil za sestavljanje programov iz vhodnega papirnega traku v pomnilnik in izvajanje vhoda. Programi so bili v mnemoničnih kodah namesto strojnih kod “začetno kodo” prvi sestavljalec, ki je obdelal simbolično nizko programsko kodo v strojno kodo.
12. Prvi osebni računalnik: “Simon” (1950)
“Simon” Edmund Berkeley je bil prvi cenovno dostopen digitalni računalnik, ki je lahko izvajal štiri operacije: seštevanje, negiranje, večje število in izbor. Vhod je bil prebodiran in program je tekel na papirni trak. Edini izhod je bil skozi pet luči.
13. Prvi prevajalnik: A-0 za UNIVAC 1 (1952)
Prevajalnik je program, ki pretvori jezik visoke ravni v strojno kodo. Sistem A-0 je bil program, ki ga je ustvaril legendarni Grace Hopper za pretvorbo programa, določenega kot zaporedje podprogramov in argumentov, v strojno kodo. A-0 se je kasneje razvil v A-2 in je bil izdan strankam s svojo izvorno kodo, zaradi česar je verjetno zelo prva odprtokodna programska oprema.
14. Prvi avtokod: Glenniejev avtokod (1952)
Autocode je programski jezik na visoki ravni, ki uporablja prevajalnik. Prvi avtokod in njegov prevajalnik sta se pojavila na Univerzi v Manchestru, da bi programiranje stroja Mark 1 postalo razumljivejše. Ustvaril jo je Alick Glennie, od tod tudi ime Autocode Glennie.
Prvi računalnik za grafični prikaz v realnem času: AN / FSQ-7, ki ga je izdelal IBM (1951)
AN / FSQ-7 je temeljil na enem od prvih računalnikov, ki so pokazali izhod v realnem času, Whirlwind. Postal je življenjska črta za ameriški sistem zračne obrambe, ki je znan kot polavtomatsko talno okolje (SAGE). Računalniki so pokazali sledi za tarče in samodejno pokazali, katere obrambe so v dosegu. AN / FSQ-7 je imel 100 sistemskih konzol; tukaj je ena (slika spodaj), prikaz stanja OA-1008 (SD), z lahkim pištolo za izbiranje ciljev na zaslonu za dodatne informacije.
16. Prvi široko uporabljeni jezik programiranja na visoki ravni: FORTRAN (1957)
Če preverite učbenike, boste ugotovili, da je FORTRAN prvi programski jezik na visoki ravni. Razmišljal jo je John W. Backus, ki ni bil navdušen nad pisanjem programov in se odločil, da bo izdelal programski sistem, ki bo olajšal proces, zato je uporaba programa FORTRAN močno zmanjšala število programskih stavkov, potrebnih za zagon računalnika. Do leta 1963 je bilo na voljo več kot 40 FORTRAN-ovih prevajalcev.
17. Prva miška (1964)
Ko je sedela na konferenčni seji o računalniški grafiki, je ideja o miški prišla do Douglasa Engelbarta leta 1964. Premišljeval je napravo s parom majhnih koles (ena se obrne vodoravno v drugo navpično), ki se lahko uporabi za premik kazalec na zaslonu. Prototip (glej spodaj) je ustvaril njegov glavni inženir Bill English, vendar angleščina in Engelbart nista prejela avtorskih honorarjev za oblikovanje, ker je tehnično pripadala SRI, delodajalcu Engelberta..
18. Prvi komercialni namizni računalnik: Programma 101 (1965)
Znana tudi kot Perottina, je bila programma 101 prvi komercialni računalnik na svetu. Lahko opravlja seštevanje, odštevanje, množenje, delitev, kvadratni koren, absolutno vrednost in frakcijo. Za vse, kar bi lahko storil, je bila cena 3.200 $ (to je bil zelo drugačen čas) in uspelo prodati 44.000 enot. Perottino je izumil Pier Giorgio Perotto in ga proizvaja italijanski proizvajalec Olivetti.
19. Prvi zaslon na dotik (1965)
Ne zgleda veliko, vendar je bil to prvi zaslon na dotik, ki ga je svet sploh poznal. To je kapacitivna plošča z zaslonom na dotik, brez občutljivosti na pritisk (obstaja stik ali brez stika) in registrira samo eno točko stika (v nasprotju z multitouch). Koncept je bil sprejet za uporabo kontrolorjev zračnega prometa v Združenem kraljestvu do devetdesetih let.
20. Prvi objektno usmerjeni programski jezik: Simula (1967)
Na podlagi koncepta razrednih konstruktov C. A. R. Hoareja so Ole-Johan Dahl in Kristen Nygaard posodobili “SIMULA I” programski jezik s predmeti, razredi in podrazredi. Rezultat tega je bila izdelava SIMULA 67, ki je postala prvi objektno orientirani programski jezik.
Končne misli
Kolikor je bila ta objava o tem, kaj bi lahko spoznali o številnih prvih v zgodovini računalništva, je težko potopiti se v samo zgodovino. Kot rezultat, vsaj zame, mi postanite bolj naklonjeni delu, ki ga opravljajo generacije pred našimi, in bolje bomo razumeli, kaj poganja številne spremembe, ki oblikujejo svet, v katerem živimo danes.
Upam, da vas ta postaja navdihuje toliko, kot me je navdihnila. Delite svoje misli o teh prvih, in če sem zamudil katero koli, kar sem prepričan, da sem storil, jih dodajte v komentarje.