De geschiedenis van computers

Vóór het tijdperk van de elektronica was het telraam het dichtst bij een computer, hoewel het telraam strikt genomen eigenlijk een rekenmachine is, omdat het een menselijke operator vereist. Computers daarentegen voeren berekeningen automatisch uit door een reeks ingebouwde opdrachten te volgen, software genaamd.

In de 20th eeuw zorgden doorbraken in technologie voor de steeds evoluerende computermachines waar we nu zo volledig op vertrouwen, dat we er praktisch nooit meer over nadenken. Maar zelfs voorafgaand aan de komst van microprocessors en supercomputers, waren er enkele opmerkelijke wetenschappers en uitvinders die hielpen de basis te leggen voor de technologie die sindsdien elk facet van het moderne leven drastisch heeft hervormd.

De taal vóór de hardware

De universele taal waarin computers processorinstructies uitvoeren, ontstond in de 17e eeuw in de vorm van het binaire numerieke systeem. Het systeem is ontwikkeld door de Duitse filosoof en wiskundige Gottfried Wilhelm Leibniz en ontstond als een manier om decimale getallen weer te geven met slechts twee cijfers: het cijfer nul en het cijfer één. Het systeem van Leibniz werd gedeeltelijk geïnspireerd door filosofische verklaringen in de klassieke Chinese tekst 'I Ching', die het universum verklaarde in termen van dualiteiten zoals licht en duisternis en mannelijk en vrouwelijk. Hoewel er destijds geen praktisch gebruik was van zijn nieuw gecodificeerde systeem, geloofde Leibniz dat het voor een machine mogelijk was ooit op een dag gebruik te maken van deze lange reeks binaire getallen.

In 1847 introduceerde de Engelse wiskundige George Boole een nieuw bedachte algebraïsche taal, gebouwd op het werk van Leibniz. Zijn 'Booleaanse algebra' was eigenlijk een logisch systeem, met wiskundige vergelijkingen die worden gebruikt om verklaringen in logica weer te geven. Even belangrijk was dat het een binaire benadering gebruikte waarbij de relatie tussen verschillende wiskundige grootheden waar of onwaar zou zijn, 0 of 1. 

Net als bij Leibniz waren er destijds geen voor de hand liggende toepassingen voor de algebra van Boole, maar wiskundige Charles Sanders Pierce bracht tientallen jaren door met het uitbreiden van het systeem en in 1886 bepaalde hij dat de berekeningen konden worden uitgevoerd met elektrische schakelcircuits. Als gevolg hiervan zou de Booleaanse logica uiteindelijk een hulpmiddel worden bij het ontwerpen van elektronische computers.

De vroegste processors

De Engelse wiskundige Charles Babbage heeft de eer de eerste mechanische computers te hebben geassembleerd - althans technisch gezien. Zijn vroege 19e-eeuwse machines bevatten een manier om cijfers, geheugen en een processor in te voeren, samen met een manier om de resultaten uit te voeren. Babbage noemde zijn eerste poging om 's werelds eerste computer te bouwen de' different engine '. Het ontwerp vroeg om een ​​machine die waarden berekende en de resultaten automatisch op een tafel afdrukte. Het moest met de hand worden gedraaid en zou vier ton hebben gewogen. Maar Babbage's baby was een kostbare onderneming. Meer dan £ 17.000 pond werd uitgegeven aan de vroege ontwikkeling van de verschilmotor. Het project werd uiteindelijk gesloopt nadat de Britse regering de financiering van Babbage in 1842 had afgesneden.

Dit dwong Babbage over te gaan naar een ander idee, een 'analytische engine', die ambitieuzer was dan zijn voorganger en moest worden gebruikt voor algemeen computergebruik in plaats van alleen rekenen. Hoewel hij nooit een werkend apparaat kon volgen en bouwen, had het ontwerp van Babbage in wezen dezelfde logische structuur als elektronische computers die in de 20th eeuw. De analyse-engine had een geïntegreerd geheugen - een vorm van informatieopslag die op alle computers werd gevonden - waarmee vertakkingen mogelijk zijn, of de mogelijkheid voor een computer om een ​​set instructies uit te voeren die afwijken van de standaardvolgorde, evenals loops, die sequenties zijn instructies herhaaldelijk achter elkaar uitgevoerd. 

Ondanks zijn falen om een ​​volledig functionele computer te produceren, bleef Babbage standvastig onverschrokken bij het nastreven van zijn ideeën. Tussen 1847 en 1849 stelde hij ontwerpen op voor een nieuwe en verbeterde tweede versie van zijn differentiemotor. Dit keer berekende het decimale getallen tot 30 cijfers lang, voerde het berekeningen sneller uit en werd het vereenvoudigd om minder onderdelen te vereisen. Toch vond de Britse regering niet dat het hun investering waard was. Uiteindelijk was de meest vooruitgang die Babbage ooit maakte op een prototype het voltooien van een zevende van zijn eerste ontwerp.

Tijdens dit vroege tijdperk van computergebruik waren er een paar opmerkelijke prestaties: de getijdenvoorspellingsmachine, uitgevonden door de Schots-Ierse wiskundige, natuurkundige en ingenieur Sir William Thomson in 1872, werd beschouwd als de eerste moderne analoge computer. Vier jaar later bedacht zijn oudere broer, James Thomson, een concept voor een computer die wiskundige problemen, differentiaalvergelijkingen, oploste. Hij noemde zijn apparaat een 'integrerende machine' en in latere jaren zou het dienen als de basis voor systemen die bekend staan ​​als differentiaalanalysatoren. In 1927 begon de Amerikaanse wetenschapper Vannevar Bush met de ontwikkeling van de eerste machine die als zodanig werd genoemd en publiceerde een beschrijving van zijn nieuwe uitvinding in een wetenschappelijk tijdschrift in 1931.

Dawn of Modern Computers

Tot begin 20th eeuw was de evolutie van de informatica weinig meer dan wetenschappers die zich bezighielden met het ontwerpen van machines die in staat waren om efficiënt verschillende soorten berekeningen voor verschillende doeleinden uit te voeren. Het was pas in 1936 dat een verenigde theorie over wat een "computer voor algemene doeleinden" is en hoe deze zou moeten functioneren eindelijk werd gepresenteerd. Dat jaar publiceerde de Engelse wiskundige Alan Turing een artikel met de titel 'On Computable Numbers, with a Application to the Entscheidungsproblem', waarin werd beschreven hoe een theoretisch apparaat genaamd 'Turing machine' kon worden gebruikt om elke denkbare wiskundige berekening uit te voeren door instructies uit te voeren . In theorie zou de machine onbeperkt geheugen hebben, gegevens lezen, resultaten schrijven en een programma met instructies opslaan.

Hoewel de computer van Turing een abstract concept was, was het een Duitse ingenieur genaamd Konrad Zuse die de eerste programmeerbare computer ter wereld zou gaan bouwen. Zijn eerste poging tot het ontwikkelen van een elektronische computer, de Z1, was een binair aangedreven rekenmachine die instructies las uit geponst 35-millimeter film. De technologie was echter onbetrouwbaar, dus volgde hij deze op met de Z2, een vergelijkbaar apparaat dat elektromechanische relaisschakelingen gebruikte. Hoewel het een verbetering was, was het bij het samenstellen van zijn derde model dat alles samenkwam voor Zuse. Onthuld in 1941, de Z3 was sneller, betrouwbaarder en beter in staat om ingewikkelde berekeningen uit te voeren. Het grootste verschil in deze derde incarnatie was dat de instructies werden opgeslagen op een externe tape, waardoor het kon functioneren als een volledig operationeel programmagestuurd systeem. 

Wat misschien wel het meest opmerkelijk is, is dat Zuse veel van zijn werk op zichzelf deed. Hij was zich er niet van bewust dat de Z3 'Turing complete' was, of met andere woorden, in staat om elk berekenbaar wiskundig probleem op te lossen - althans in theorie. Evenmin had hij kennis van soortgelijke projecten die rond dezelfde tijd in andere delen van de wereld aan de gang waren.

Een van de meest opvallende hiervan was de door IBM gefinancierde Harvard Mark I, die in 1944 debuteerde. Maar nog veelbelovender was de ontwikkeling van elektronische systemen zoals het computing-prototype Colossus uit 1943 in Groot-Brittannië en de ENIAC, de eerste volledig operationele elektronische computer voor algemeen gebruik die in 1946 in gebruik werd genomen aan de Universiteit van Pennsylvania.

Uit het ENIAC-project kwam de volgende grote sprong in de computertechnologie. John Von Neumann, een Hongaarse wiskundige die over het ENIAC-project had geraadpleegd, zou de basis leggen voor een opgeslagen programmacomputer. Tot nu toe werkten computers met vaste programma's en veranderden hun functie, bijvoorbeeld van het uitvoeren van berekeningen tot tekstverwerking. Dit vereiste het tijdrovende proces van handmatig opnieuw bedraden en herstructureren. (Het duurde enkele dagen om ENIAC te herprogrammeren.) Turing had voorgesteld dat het ideaal zou zijn als de computer zichzelf in een veel sneller tempo zou kunnen aanpassen door een programma in het geheugen te bewaren. Von Neumann was geïntrigeerd door het concept en stelde in 1945 een rapport op met een uitvoerbare architectuur voor opgeslagen programmacomputer.   

Zijn gepubliceerde paper zou op grote schaal worden verspreid onder concurrerende teams van onderzoekers die werken aan verschillende computerontwerpen. In 1948 introduceerde een groep in Engeland de Manchester Small-Scale Experimental Machine, de eerste computer die een opgeslagen programma uitvoerde op basis van de Von Neumann-architectuur. Bijnaam 'Baby', de Manchester Machine was een experimentele computer die diende als de voorloper van de Manchester Mark I. De EDVAC, het computerontwerp waarvoor het rapport van Von Neumann oorspronkelijk was bedoeld, werd pas in 1949 voltooid.