20 μεγαλύτερες εφευρέσεις στον προγραμματισμό υπολογιστών
Σε μια από τις συνομιλίες που είχα με τον ανώτερο συντάκτη μου, μου ζητήθηκε η ερώτηση, “Πώς προγραμματίστηκαν οι πρώτοι προγραμματιστές?” Αυτό οδήγησε σε μια συζήτηση σχετικά με την Babbage και την Ada Lovelace, στο τέλος της οποίας, πήρα την ανάθεση στην έρευνα πως το όλα άρχισαν - που είναι τα πολλά πρώτα στην υπολογιστική ιστορία.
Έχω σκάψει σε βιβλία και ιστοσελίδες και συναντήθηκε με πολλές αποκαλύψεις: το Babbage δεν είναι τεχνικά το εφευρέτης του υπολογιστή, ο FORTRAN δεν ήταν σίγουρα η πρώτη γλώσσα προγραμματισμού υψηλού επιπέδου και χρησιμοποιούσαμε γραφίδες για οθόνες CRT (πραγματικά).
Με εκπλήσσει, επίσης, να μάθω πόσο βασικοί πόλεμοι προωθούσαν την ταχεία πρόοδο της ανάπτυξης ηλεκτρονικών υπολογιστών, καθώς και τη συμβολή πολλών γυναικών που τα βιβλία μας επέλεξαν να παραμελούν. Ως εκ τούτου, για να γεμίσουν τα κενά στην ιστορία των υπολογιστών και των προγραμμάτων, έχω βάλει μαζί 20 πρώτες στον κόσμο της πληροφορικής, από μπάλες μπόουλινγκ σε WW2 και όλα αυτά είναι μεταξύ.
1. Πρώτος υπολογιστής: “Μηχανή διαφορών” (1821)
ο “Μηχανή διαφορών” ήταν ένας προτεινόμενος μηχανικός υπολογιστής που θα χρησιμοποιηθεί για την παραγωγή μαθηματικών πινάκων. Επίτροπος της βρετανικής κυβέρνησης, ο Charles Babbage (γνωστός και ως πατέρας του υπολογιστή) άρχισε να εργάζεται σε αυτό, αλλά λόγω του υψηλού κόστους παραγωγής του, η χρηματοδότηση σταμάτησε και η μηχανή δεν ολοκληρώθηκε ποτέ.
2. Πρώτος υπολογιστής γενικού σκοπού: “Αναλυτικός κινητήρας” (1834)
ο “Αναλυτικός κινητήρας” ήταν επίσης ένας προτεινόμενος μηχανικός υπολογιστής, του οποίου η είσοδος έπρεπε να είναι διάτρητες κάρτες, με προγράμματα και δεδομένα διάτρητα πάνω τους. Ένα άλλο πνευματικό τέκνο του Charles Babbage, αυτό το μηχάνημα επίσης δεν ολοκληρώθηκε.
3. Πρώτο Πρόγραμμα Υπολογιστών: αλγόριθμος για τον υπολογισμό των αριθμών Bernoulli (1841 - 1842)
Η Ada Lovelace (πρώτος προγραμματιστής στον κόσμο) άρχισε να μεταφράζει τα αρχεία του ιταλικού μαθηματικού Luigi Menabrea στην αναλυτική μηχανή της Babbage το 1841. Κατά τη διάρκεια της μετάφρασης έγινε ενδιαφέρον για το μηχάνημα και άφησε σημειώσεις με τη μετάφρασή της. Μία από τις σημειώσεις - σημείωση G, περιείχε τον αλγόριθμο για τον υπολογισμό των αριθμών Bernoulli από τον αναλυτικό κινητήρα, που θεωρείται το πρώτο πρόγραμμα υπολογιστή.
4. Πρώτος προγραμματιζόμενος υπολογιστής εργασίας: Z3 (1941)
Ο Konrad Zuse (ο εφευρέτης των ηλεκτρονικών υπολογιστών) είχε ήδη έναν μηχανισμό εργασίας Z1, αλλά εργάστηκε για λίγα λεπτά κάθε φορά. Η χρήση μιας διαφορετικής τεχνολογίας - ρελέ οδήγησε στο Z2 και τελικά στο Z3. Ο Z3 ήταν ένας ηλεκτρομαγνητικός υπολογιστής για τον οποίο το πρόγραμμα και τα δεδομένα αποθηκεύτηκαν σε εξωτερικές τρυπημένες ταινίες. Ήταν ένα μυστικό σχέδιο της Γερμανικής κυβέρνησης και τέθηκε σε χρήση από το Γερμανικό Ινστιτούτο Ερευνών Αεροσκαφών. Το αρχικό μηχάνημα καταστράφηκε στο βομβαρδισμό του Βερολίνου το 1943.
5. Πρώτος Ηλεκτρονικός Υπολογιστής: Υπολογιστής Atanasoff-Berry (ABC) (1942)
Δημιουργήθηκε από τον John Vincent Atanasoff & Clifford Berry, οπότε ονομάστηκε Atanasoff-Berry Computer ή ABC χρησιμοποιήθηκε για να βρει τη λύση για ταυτόχρονες γραμμικές εξισώσεις. Ήταν ο πρώτος υπολογιστής που χρησιμοποίησε δυαδικό για να αναπαριστά δεδομένα και ηλεκτρονικούς διακόπτες αντί για μηχανικούς. Ωστόσο, ο υπολογιστής δεν ήταν προγραμματιζόμενος.
6. Πρώτος Προγραμματιζόμενος Ηλεκτρονικός Υπολογιστής: Κολοσσός (1943)
Ο Κολοσσός που δημιουργήθηκε από τον Tommy Flowers ήταν ένα μηχάνημα που δημιουργήθηκε για να βοηθήσει τους Βρετανούς να αποκρυπτογραφήσουν τα γερμανικά μηνύματα κρυπτογραφημένα από τον κρυπτογραφημένο Lorenz, πίσω στον Δεύτερο Παγκόσμιο Πόλεμο. Προγραμματίστηκε από ηλεκτρονικούς διακόπτες και βύσματα. Ο Κολοσσός έφερε το χρόνο να αποκρυπτογραφήσει τα κρυπτογραφημένα μηνύματα από εβδομάδες σε ώρες.
7. Προγραμματισμένος ηλεκτρονικός ηλεκτρονικός υπολογιστής γενικής χρήσης: ENIAC (1946)
Χρηματοδοτείται από τον αμερικανικό στρατό, ENIAC ή Ηλεκτρονικός Αριθμητικός Ολοκληρωτής και Υπολογιστής αναπτύχθηκε στην Σχολή Ηλεκτρολόγων Μηχανικών Moore του Πανεπιστημίου της Πενσυλβανίας από τους John Mauchly & J. Presper Eckert. Το ENIAC είχε πλάτος 150 πόδια και μπορούσε να προγραμματιστεί για να εκτελεί σύνθετες λειτουργίες όπως βρόχους. ο προγραμματισμός έγινε με την αλλαγή των ηλεκτρονικών διακοπτών και καλωδίων. Χρησιμοποίησε αναγνώστες καρτών για εισόδους και διατρήσεις καρτών για την έξοδο. Βοήθησε με τον υπολογισμό της σκοπιμότητας της πρώτης παγκόσμιας βόμβας υδρογόνου.
8. Πρώτο Trackball: (1946/1952)
Γιατί τα δύο χρόνια για το πρώτο trackball; Επιτρέψτε μου να εξηγήσω.
Το πρώτο έτος ήταν το έτος που έδωσε ο Ralph Benjamin, ο οποίος ισχυρίστηκε ότι δημιούργησε το πρώτο trackball παγκοσμίως όταν εργάστηκε σε ένα σύστημα παρακολούθησης για αεροσκάφη χαμηλής πτήσης το 1946. Η εφεύρεση που περιέγραψε χρησιμοποίησε μια μπάλα για τον έλεγχο των συντεταγμένων XY του κέρσορα στην οθόνη. Το σχέδιο κατοχυρώθηκε με δίπλωμα ευρεσιτεχνίας το 1947 αλλά δεν κυκλοφόρησε ποτέ επειδή θεωρείται α “στρατιωτικό μυστικό”. Ο στρατός επέλεξε το μοχλό.
Ο δεύτερος υποψήφιος για το πρώτο trackball παγκοσμίως, που χρησιμοποιήθηκε στο σύστημα DATAR του Καναδικού Ναυτικού το 1952, εφευρέθηκε από τον Tom Cranston και συνεργάτη. Αυτό το σχέδιο trackball είχε μια μακέτα επάνω που χρησιμοποίησε μια καναδική μπάλα μπόουλινγκ στριμμένη πάνω “ρουλεμάν αέρα” (δείτε εικόνα παρακάτω).
9. Ο πρώτος υπολογιστής αποθηκευμένου προγράμματος: SSEM (1948)
Για να ξεπεράσει τις αδυναμίες της μνήμης καθυστέρησης, ο Frederic C. Williams και ο Tom Kilburn είχαν αναπτύξει την πρώτη ψηφιακή συσκευή αποθήκευσης τυχαίας προσπέλασης βασισμένη στο πρότυπο CRT. Η SSEM (Μάντσεστερ Πειραματική μηχανή μικρής κλίμακας) χρησιμοποιήθηκε για την υλοποίηση αυτής της συσκευής αποθήκευσης για πρακτική χρήση. Τα προγράμματα εισήχθησαν σε δυαδική μορφή χρησιμοποιώντας 32 switches και η έξοδος της ήταν CRT.
10. Πρώτη Γλώσσα Προγραμματισμού Υψηλού Επιπέδου: Plankalkül (1948)
Παρόλο που ο Konrad Zuse άρχισε να εργάζεται στο Plankalkül από το 1943, μόνο το 1948 δημοσίευσε ένα άρθρο σχετικά με αυτό. Δεν άρεσε πολύ δυστυχώς. Θα χρειαζόταν περίπου τρεις δεκαετίες αργότερα ένας μεταγλωττιστής να εφαρμοστεί γι 'αυτό, ένας που δημιούργησε ο Joachim Hohmann σε μια διατριβή.
11. Πρώτος συναρμολογητής: “Αρχικές παραγγελίες” για το EDSAC (1949)
Assembler είναι ένα πρόγραμμα που μετατρέπει τα μνημονικά (χαμηλού επιπέδου) σε αριθμητική αναπαράσταση (κωδικός μηχανής). Οι αρχικές εντολές στο EDSAC (Ηλεκτρονικός υπολογιστής καθυστέρησης ηλεκτρονικής καθυστέρησης) ήταν το πρώτο από ένα τέτοιο σύστημα. Χρησιμοποιήθηκε για τη συναρμολόγηση προγραμμάτων από την είσοδο χαρτιού στη μνήμη και την εκτέλεση της εισόδου. Τα προγράμματα ήταν σε μνημονικούς κώδικες αντί για κωδικούς μηχανής, που έκαναν “αρχικός κώδικας” ο πρώτος συναρμολογητής, επεξεργαζόμενος συμβολικό κώδικα χαμηλού επιπέδου κώδικα στον κώδικα μηχανής.
12. Πρώτος προσωπικός υπολογιστής: “Simon” (1950)
“Simon” από τον Edmund Berkeley ήταν ο πρώτος οικονομικά προσιτός ψηφιακός υπολογιστής που θα μπορούσε να εκτελέσει τέσσερις λειτουργίες: προσθήκη, άρνηση, μεγαλύτερη από και επιλογή. Η είσοδος ήταν διάτρητο χαρτί και το πρόγραμμα έτρεξε σε χαρτί. Η μόνη έξοδος ήταν μέσω πέντε φώτων.
13. Πρώτος μεταγλωττιστής: A-0 για το UNIVAC 1 (1952)
Ο μεταγλωττιστής είναι ένα πρόγραμμα που μετατρέπει τη γλώσσα υψηλού επιπέδου σε κώδικα μηχανής. Το σύστημα A-0 ήταν ένα πρόγραμμα που δημιουργήθηκε από το θρυλικό Grace Hopper για να μετατρέψει ένα πρόγραμμα που ορίζεται ως μια ακολουθία υπορουτίνων και επιχειρημάτων στον κώδικα μηχανής. Το A-0 αργότερα εξελίχθηκε σε A-2 και απελευθερώθηκε στους πελάτες με τον πηγαίο κώδικα του καθιστώντας ίσως το ίδιο πρώτο λογισμικό ανοιχτού κώδικα.
14. Πρώτος Autocode: Autocode του Glennie (1952)
Ένα Autocode είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου που χρησιμοποιεί έναν μεταγλωττιστή. Ο πρώτος αυτοκώδικας και ο μεταγλωττιστής του εμφανίστηκαν στο Πανεπιστήμιο του Μάντσεστερ για να καταστήσουν τον προγραμματισμό της μηχανής Mark 1 πιο κατανοητό. Δημιουργήθηκε από τον Alick Glennie, εξ ου και το όνομα Autocode του Glennie.
15. Πρώτος υπολογιστής γραφικών σε πραγματικό χρόνο: AN / FSQ-7 από την IBM (1951)
Το AN / FSQ-7 βασίστηκε σε έναν από τους πρώτους υπολογιστές που έδειξαν απόδοση σε πραγματικό χρόνο, Whirlwind. Έγινε η σωτηρία για το σύστημα αεροπορικής άμυνας των Η.Π.Α γνωστό ως ημι-αυτόματο εδαφολογικό περιβάλλον (SAGE). Οι υπολογιστές έδειξαν διαδρομές για τους στόχους και αυτομάτως έδειξαν ποιες άμυνες ήταν εντός εμβέλειας. Το AN / FSQ-7 είχε 100 κονσόλες συστήματος. εδώ είναι ένα (εικόνα παρακάτω), το OA-1008 εμφάνιση κατάσταση (SD), με ένα ελαφρύ όπλο που χρησιμοποιείται για την επιλογή στόχων στην οθόνη για περισσότερες πληροφορίες.
16. Πρώτη Γλώσσα Προγραμματισμού Υψηλού Επιπέδου: FORTRAN (1957)
Αν ελέγξετε τα εγχειρίδια, θα βρείτε το FORTRAN ως την πρώτη γλώσσα προγραμματισμού υψηλού επιπέδου. Σκεφτόμενος από τον John W. Backus, ο οποίος αντιπάτησε τη συγγραφή προγραμμάτων και αποφάσισε να δημιουργήσει ένα σύστημα προγραμματισμού για να διευκολύνει τη διαδικασία, η χρήση του FORTRAN μείωσε σημαντικά τον αριθμό των δηλώσεων προγραμματισμού που απαιτούνται για να λειτουργήσει ένα μηχάνημα. Μέχρι το 1963, περισσότεροι από 40 μεταγλωτιστές FORTRAN ήταν ήδη διαθέσιμοι.
17. Πρώτο ποντίκι (1964)
Κατά τη συνεδρίαση σε διάσκεψη για τα γραφικά των υπολογιστών, η ιδέα ενός ποντικιού ήρθε στο Douglas Engelbart το 1964. Σκέφτηκε μια συσκευή με ένα ζευγάρι μικρών τροχών (το ένα περιστρέφεται οριζόντια το άλλο κάθετα), το οποίο μπορεί να χρησιμοποιηθεί για να μετακινήσει δρομέα σε μια οθόνη. Ένα πρωτότυπο (βλ. Παρακάτω) δημιουργήθηκε από τον ηγέτη μηχανικό του, Bill English, αλλά και τα αγγλικά και η Engelbart δεν έλαβαν ποτέ δικαιώματα για το σχέδιο επειδή τεχνικά ανήκαν στον SRI, τον εργοδότη του Engelbert.
18. Πρώτος Εμπορικός Επιτραπέζιος Υπολογιστής: Programma 101 (1965)
Επίσης γνωστή ως Perottina, το Programma 101 ήταν ο πρώτος εμπορικός υπολογιστής παγκοσμίως. Θα μπορούσε να εκτελέσει προσθήκη, αφαίρεση, πολλαπλασιασμό, διαίρεση, τετραγωνική ρίζα, απόλυτη τιμή και κλάσμα. Για όλα όσα μπορούσε να κάνει, τιμήθηκε στα $ 3.200 (ήταν πολύ διαφορετική εποχή) και κατάφερε να πουλήσει 44.000 μονάδες. Η Perottina επινοήθηκε από τον Pier Giorgio Perotto και παράγεται από τον Ιταλό κατασκευαστή Olivetti.
19. Η πρώτη οθόνη αφής (1965)
Δεν μοιάζει πολύ, αλλά αυτή ήταν η πρώτη οθόνη αφής που ο κόσμος γνώριζε ποτέ. Πρόκειται για μια χωρητική οθόνη αφής χωρίς ευαισθησία πίεσης (υπάρχει επαφή ή δεν υπάρχει επαφή) και καταγράφει μόνο ένα σημείο επαφής (σε αντίθεση με τον πολυκάναλο). Η ιδέα υιοθετήθηκε από τους ελεγκτές εναέριας κυκλοφορίας στο Ηνωμένο Βασίλειο μέχρι τη δεκαετία του 1990.
20. Πρώτη γλώσσα προγραμματισμού αντικειμενοστραφής: Simula (1967)
Με βάση την ιδέα της κατασκευής τάξεων της C. A. Hoare, οι Ole-Johan Dahl & Kristen Nygaard ενημέρωσαν “SIMULA I” γλώσσα προγραμματισμού με αντικείμενα, κλάσεις και υποκατηγορίες. Αυτό είχε σαν αποτέλεσμα τη δημιουργία του SIMULA 67 που έγινε η πρώτη γλώσσα προγραμματισμού αντικειμενοστραφής.
Τελικές σκέψεις
Όσο αυτή η θέση αφορούσε αυτό που θα μπορούσαμε να μάθουμε για τα πολλά πρώτα στην υπολογιστική ιστορία, είναι δύσκολο να βυθίσουμε τον εαυτό μας στην ίδια την ιστορία. Ως αποτέλεσμα, τουλάχιστον για μένα, εμείς να γίνουν πιο αισιόδοξοι για το έργο των γενεών πριν από τη δική μας, και μπορούμε να κατανοήσουμε καλύτερα τι οδηγεί τις πολλές αλλαγές που διαμορφώνουν τον κόσμο που ζούμε σήμερα.
Ελπίζω ότι αυτή η θέση θα σας εμπνεύσει τόσο πολύ όσο με ενέπνευσε. Μοιραστείτε τις σκέψεις σας σχετικά με αυτές τις πρώτες, και αν μου έλειπε κανένα, το οποίο είμαι βέβαιος ότι το έκανα, προσθέστε τα στα σχόλια.