20 migliori invenzioni nella programmazione di computer
In una delle conversazioni che ho avuto con il nostro redattore capo, mi è stata posta la domanda: "Come ha fatto il programma dei primi programmatori?" Questo ha portato a una discussione su Babbage e Ada Lovelace, al termine della quale, sono stato assegnato a ricerca come tutto ha avuto inizio - sono i molti primati nella storia dell'informatica.
Ho scavato nei libri e nei siti web e ho incontrato molte rivelazioni: Babbage non è tecnicamente l' inventore del computer, FORTRAN non è stato sicuramente il primo linguaggio di programmazione di alto livello e avevamo uno stilo per gli schermi CRT (davvero).
Sono stato anche sorpreso di scoprire come le guerre essenziali stessero alimentando il rapido progresso dello sviluppo dei computer, oltre al contributo di molte donne che i nostri libri di testo hanno scelto di trascurare. Quindi, per colmare le lacune nella storia di computer e programmi, ho messo insieme 20 primati nel mondo dell'informatica, dalle palle da bowling alla seconda guerra mondiale e tutto ciò che è nel mezzo.
1. Primo computer: "Difference engine" (1821)
Il "Difference Engine" era un computer meccanico proposto da utilizzare per generare tabelle matematiche. Commissionato dal governo britannico, Charles Babbage (noto anche come Padre del Computer) ha iniziato a lavorarci, ma a causa del suo alto costo di produzione, il finanziamento è stato interrotto e la macchina non è mai stata completata .
2. Primo computer per uso generico: "Motore analitico" (1834)Il "motore analitico" era anche un computer meccanico proposto, il cui input doveva essere rappresentato da schede perforate, con programmi e dati punzonati su di essi. Un'altra idea di Charles Babbage, questa macchina non è stata completata.
3. Primo programma per computer: algoritmo per calcolare i numeri di Bernoulli (1841 - 1842)Ada Lovelace (il primo programmatore di computer al mondo) iniziò a tradurre i record del matematico italiano Luigi Menabrea sul motore analitico di Babbage nel 1841. Durante la traduzione si interessò alla macchina e lasciò note con la sua traduzione. Una delle note - nota G, conteneva l'algoritmo per calcolare i numeri di Bernoulli dal motore analitico, considerato il primo programma per computer.
4. Primo computer programmabile funzionante: Z3 (1941)Konrad Zuse (l'inventore dei computer) aveva già un computer meccanico funzionante Z1, ma funzionava solo per pochi minuti alla volta. L'uso di una tecnologia diversa - i relè, hanno portato a Z2 e alla fine a Z3. Z3 era un computer elettromagnetico per il quale programmi e dati venivano memorizzati su nastri perforati esterni. Era un progetto segreto del governo tedesco e utilizzato dall'Istituto di ricerca aeronautica tedesca. La macchina originale fu distrutta nel bombardamento di Berlino nel 1943.
5. Primo computer elettronico: Atanasoff-Berry Computer (ABC) (1942)Creato da John Vincent Atanasoff & Clifford Berry, il cosiddetto computer Atanasoff-Berry o ABC è stato utilizzato per trovare la soluzione per equazioni lineari simultanee. È stato il primo computer che ha utilizzato il binario per rappresentare dati e interruttori elettronici anziché meccanici. Il computer tuttavia non era programmabile.
6. Primo computer elettronico programmabile: Colosso (1943)Il Colosso creato da Tommy Flowers, era una macchina creata per aiutare gli inglesi a decifrare i messaggi tedeschi che erano stati crittografati con il cifrario Lorenz, nella seconda guerra mondiale. È stato programmato da interruttori e spine elettronici. Colosso ha portato il tempo per decifrare i messaggi criptati da settimane a poche ore.
7. Primo computer elettronico programmabile per uso generico: ENIAC (1946)Finanziato dall'Esercito degli Stati Uniti, ENIAC o Electronic Numerical Integrator And Computer è stato sviluppato presso la Moore School of Electrical Engineering dell'Università della Pennsylvania da John Mauchly e J. Presper Eckert. ENIAC era largo 150 piedi e poteva essere programmato per eseguire operazioni complesse come loop; la programmazione è stata effettuata alterando i suoi interruttori e cavi elettronici. Ha utilizzato lettori di schede per input e punzoni di schede per l'output. Ha aiutato con i calcoli per la fattibilità della prima bomba all'idrogeno al mondo.
8. Prima trackball: (1946/1952)Perché i due anni per la prima trackball? Permettimi di spiegare.
Il primo anno fu l'anno dato da Ralph Benjamin, che dichiarò di aver creato il primo trackball al mondo quando lavorava a un sistema di monitoraggio per aerei a bassa quota nel 1946. L'invenzione che descrisse usava una palla per controllare le coordinate XY di un cursore sullo schermo. Il design fu brevettato nel 1947 ma non fu mai rilasciato perché considerato un "segreto militare". I militari hanno optato invece per il joystick.
Il secondo contendente per la prima trackball al mondo, utilizzato nel sistema DATAR della Marina canadese nel 1952 fu inventato da Tom Cranston e co. Questo modello di trackball aveva un mock up che utilizzava una palla da bowling canadese girata su "cuscinetti ad aria" (vedi immagine sotto).
9. Primo computer con programma memorizzato: SSEM (1948)Per superare le carenze della memoria del delay-line, Frederic C. Williams e Tom Kilburn avevano sviluppato il primo dispositivo di archiviazione digitale ad accesso casuale basato sul CRT standard. La SSEM (Manchester Experimental Machine su piccola scala ) è stata utilizzata per implementare quel dispositivo di archiviazione per l'uso pratico. I programmi sono stati inseriti in forma binaria utilizzando 32 switch e il suo output era un CRT.
10. Primo linguaggio di programmazione di alto livello: Plankalkül (1948)Sebbene Konrad Zuse abbia iniziato a lavorare su Plankalkül dal 1943, solo nel 1948 pubblicò un articolo a riguardo. Purtroppo non ha attirato molta attenzione. Ci vorrebbero quasi tre decenni dopo per implementare un compilatore per questo, uno creato da Joachim Hohmann in una tesi.
11. Primo assemblatore: "Ordini iniziali" per EDSAC (1949)Assembler è un programma che converte i mnemonici (basso livello) in una rappresentazione numerica (codice macchina). Gli ordini iniziali in EDSAC ( Electronic Delay Storage Automatic Calculator ) furono i primi di un tale sistema. È stato utilizzato per assemblare i programmi dall'ingresso del nastro di carta nella memoria e l'esecuzione dell'ingresso. I programmi erano in codici mnemonici invece di codici macchina, rendendo "codice iniziale" il primo assemblatore in assoluto elaborando un codice di programma di basso livello simbolico in codice macchina.
12. Primo personal computer: "Simon" (1950)"Simon" di Edmund Berkeley è stato il primo computer digitale economico in grado di eseguire quattro operazioni: aggiunta, negazione, maggiore e selezione. L'input era carta perforata e il programma girava su nastro di carta. L'unica uscita era attraverso cinque luci.
13. Primo compilatore: A-0 per UNIVAC 1 (1952)Un compilatore è un programma che converte il linguaggio di alto livello in codice macchina. Il sistema A-0 era un programma creato dal leggendario Grace Hopper per convertire un programma specificato come sequenza di subroutine e argomenti in codice macchina. Successivamente, l'A-0 si è evoluto in A-2 ed è stato rilasciato ai clienti con il suo codice sorgente che lo ha reso probabilmente il primo software open source .
14. Primo codice di accesso: Glennie's Autocode (1952)Un codice di accesso è un linguaggio di programmazione di alto livello che utilizza un compilatore. Il primo autocode e il suo compilatore sono comparsi all'Università di Manchester per rendere più intelligibile la programmazione della macchina Mark 1. È stato creato da Alick Glennie, da qui il nome di Autocode di Glennie.
15. Primo computer con display grafico in tempo reale: AN / FSQ-7 di IBM (1951)AN / FSQ-7 era basato su uno dei primi computer che mostrava l'output in tempo reale, Whirlwind. È diventato l'ancora di salvezza per il sistema di difesa aerea statunitense noto come Semi-Automatic Ground Environment (SAGE). I computer hanno mostrato tracce per i bersagli e hanno mostrato automaticamente quali difese erano nel raggio d'azione. AN / FSQ-7 aveva 100 console di sistema; eccone uno (immagine sotto), OA-1008 Situation Display (SD), con una pistola leggera usata per selezionare i bersagli sullo schermo per ulteriori informazioni.
16. Prima lingua di programmazione di alto livello ampiamente utilizzata: FORTRAN (1957)Se controlli i libri di testo, troverai FORTRAN elencato come il primo linguaggio di programmazione di alto livello. Pensato da John W. Backus che non amava i programmi di scrittura e ha deciso di creare un sistema di programmazione per semplificare il processo, l'uso di FORTRAN ha ridotto notevolmente il numero di istruzioni di programmazione necessarie per far funzionare una macchina. Nel 1963 erano già disponibili oltre 40 compilatori FORTRAN.
17. First Mouse (1964)Fu durante una sessione di conferenze su computer grafica che l'idea di un topo arrivò a Douglas Engelbart nel 1964. Pensò a un dispositivo con un paio di piccole ruote (una ruota orizzontalmente l'altra in verticale) che può essere usata per spostare un cursore su uno schermo. Un prototipo (vedi sotto) è stato creato dal suo ingegnere capo, Bill English, ma sia inglese che Engelbart non hanno mai ricevuto royalties per il design perché tecnicamente apparteneva a SRI, il datore di lavoro di Engelbert.
18. Primo desktop computer commerciale: Programma 101 (1965)Conosciuto anche come Perottina, Programma 101 è stato il primo PC commerciale al mondo. Potrebbe eseguire addizione, sottrazione, moltiplicazione, divisione, radice quadrata, valore assoluto e frazione. Per tutto quello che poteva fare, aveva un prezzo di $ 3.200 (era un tempo molto diverso) e riuscì a vendere 44.000 unità. Perottina fu inventata da Pier Giorgio Perotto e prodotta da Olivetti, un produttore italiano.
19. Primo touchscreen (1965)Non sembra molto ma questo è stato il primo touchscreen che il mondo abbia mai conosciuto. È un pannello touchscreen capacitivo, privo di sensibilità alla pressione (c'è un contatto o nessun contatto) e registra solo un singolo punto di contatto (al contrario del multitouch). Il concetto è stato adottato per essere utilizzato dai controllori del traffico aereo nel Regno Unito fino agli anni '90.
20. Primo linguaggio di programmazione orientato agli oggetti: Simula (1967)Basato sul concetto di costrutti di classe di CAR Hoare, Ole-Johan Dahl e Kristen Nygaard hanno aggiornato il loro linguaggio di programmazione "SIMULA I" con oggetti, classi e sottoclassi. Ciò ha portato alla creazione di SIMULA 67, che è diventato il primo linguaggio di programmazione orientato agli oggetti.
Pensieri finaliPer quanto questo post riguardasse ciò che potremmo apprendere dai numerosi successi nella storia dell'informatica, è difficile immergerci nella storia stessa. Di conseguenza, almeno per me, siamo più riconoscenti riguardo al lavoro svolto da generazioni precedenti alla nostra, e possiamo capire meglio che cosa guida i molti cambiamenti che danno forma al mondo in cui viviamo oggi.
Spero che questo post ti ispiri tanto quanto mi ha ispirato. Condividi le tue opinioni su questi successi, e se ne ho perso qualcuno, che sono sicuro di aver fatto, aggiungili nei commenti.
Ora Leggi: 40 persone che hanno cambiato Internet
6 app Android per gestire più account utente sullo stesso dispositivo
Per ora, possiamo utilizzare un solo account sui nostri social network e app di messaggistica preferiti. Anche quando abbiamo due schede SIM su un telefono con doppia scheda SIM, non è possibile registrarsi e utilizzare due account WhatsApp, account Facebook, account WeChat o persino account Clash of Clan diversi.
5 aspetti cruciali da considerare prima di accettare l'offerta di lavoro
Questo articolo fa parte della serie " Ace Your Interview " - dove condividiamo consigli e trucchi che puoi utilizzare offline e online per aggirare il lavoro dei tuoi sogni. Clicca qui per vedere più articoli della stessa serie Quindi hai notato il tuo curriculum, hai risposto con sicurezza alle prime dieci domande dell'intervista e la tua azienda dei sogni ti sta offrendo un'offerta di lavoro.