Στις 9 Σεπτεμβρίου του 1947, ένας υπολογιστής στο Harvard άρχισε να κάνει τα δικά του.
Κανείς δεν μπορούσε να πατήσει Ctrl+Alt+Delete γιατί μωρέ, ξέρετε, το 1947 ούτε το Ctrl ούτε το Alt ούτε το Delete είχαν ακόμη ιδιαίτερο λόγο ύπαρξης.
Το πρόβλημα ήταν πιο... Οργανικό.
Μέσα σε ένα relay του Harvard Mark II είχε σφηνώσει ένας σκόρος.
Οι μηχανικοί τον έβγαλαν, τον κόλλησαν με σελοτέιπ στο ημερολόγιο του μηχανήματος και έγραψαν από κάτω:
"First actual case of bug being found."
(Η πρώτη πραγματική περίπτωση που βρέθηκε bug)
...Και κάπως έτσι ένα ταπεινό λεπιδόπτερο εξασφάλισε μεταθανάτια καριέρα στην ιστορία της πληροφορικής.
Έτσι διάβασα και έτσι κυκλοφορεί στα social.
Μόνο που τώρα χρειάζεται η πρώτη διόρθωση στον, κατά τα άλλα, πολύ ωραίο μύθο.
Η λέξη bug δεν γεννήθηκε εκείνη την ημέρα. Οι μηχανικοί χρησιμοποιούσαν τη λέξη για μικρές τεχνικές δυσλειτουργίες ήδη από τον 19ο αιώνα. Ο Thomas Edison μιλούσε για "bugs" στα ηλεκτρικά κυκλώματα από τη δεκαετία του 1870.
Και γιατί bug και όχι hair; Όχι pin, roach... Ξέρω κι εγώ... Γιατί όχι κάτι άλλο;
Στα αγγλικά η λέξη bug είχε πολύ παλιότερα μια σημασία κοντά στο "μικρό ενοχλητικό πράγμα / φόβητρο / κάτι που σε ταλαιπωρεί και δεν το βρίσκεις εύκολα". Συνδέεται ετυμολογικά με παλιότερες λέξεις όπως bugbear και bugaboo, δηλαδή κάτι σαν φόβητρο ή ενοχλητικό "δαιμονάκι". Αργότερα η λέξη χρησιμοποιήθηκε και γενικότερα για μικρά έντομα. Διαδικτυακό λεξικό ετυμολογίας
Στην τηλεγραφία του 19ου αιώνα, όμως, το bug απέκτησε πολύ συγκεκριμένη τεχνική χροιά. Στα τηλεγραφικά κυκλώματα εμφανίζονταν μικρά, ενοχλητικά, συχνά δύσκολο να εντοπιστούν σφάλματα ή ψευδή σήματα. Οι μηχανικοί τα αποκαλούσαν bugs και χρησιμοποιούσαν μέχρι και τον όρο bug trap για διατάξεις που εξουδετέρωναν τέτοια προβλήματα.
Και ο Edison το διασκέδαζε κιόλας! Σε επιστολή του το 1878 μιλά για ένα πρόβλημα στο τηλέφωνό του σαν να ήταν πραγματικό έντομο και γράφει ότι το "έντομο" φαίνεται να βρίσκει ευνοϊκές συνθήκες στα κυκλώματα κλήσης. Δηλαδή η μεταφορά "ένα μικρό διαβολάκι έχει χωθεί μέσα και χαλάει τη μηχανή" ήταν ήδη ζωντανή και χρησιμοποιούταν. IEEE Spectrum
Το bug δηλαδή ήταν τέλειο επειδή ήταν αόριστο. Κάτι μικρό, ενοχλητικό, κρυμμένο, που προκαλεί ανεξήγητη δυσλειτουργία.
Κάπως σαν να λέγαμε ελληνικά: Κάποιο διαβολάκι έχει μπει μέσα.
Και γι’ αυτό η ατάκα του 1947 είναι τόσο καλή. Το αστείο δεν ήταν "α, βρήκαμε ένα ζουζούνι και από σήμερα θα λέμε τα σφάλματα bugs".
Ήταν ακριβώς το αντίστροφο. "Τόσα χρόνια λέμε τα τεχνικά προβλήματα bugs και τώρα βρήκαμε επιτέλους ένα πραγματικό bug (ζωύφιο) μέσα στη μηχανή."
Γι’ αυτό άλλωστε το σημείωμα γράφει actual bug.
Και τώρα ακολουθεί η δεύτερη διόρθωση.
Η γυναίκα με την οποία συνδέθηκε για πάντα η ιστορία, η Grace Murray Hopper, δεν ξέρουμε αν ήταν εκείνη που ανακάλυψε προσωπικά τον σκόρο. Το Smithsonian αναφέρει ότι τον βρήκαν οι μηχανικοί που δούλευαν στον Mark II και ότι το συγκεκριμένο ημερολόγιο πιθανότατα δεν ήταν καν δικό της.
Η Hopper όμως ήταν μέλος της ομάδας και αργότερα διηγούνταν την ιστορία στις διαλέξεις της. Εκείνη και οι συνάδελφοί της συνέβαλαν ώστε τα bug και debugging να μπουν για τα καλά στο λεξιλόγιο των προγραμματιστών.
Αν όμως σταματούσαμε εδώ, θα ήταν προσβολή για την ίδια.
Γιατί ο σκόρος ήταν απλώς ένα ωραίο ανέκδοτο.
Η Grace Hopper ήταν ένα από τα άτομα που άλλαξαν τον τρόπο με τον οποίο σκεφτόμαστε τον προγραμματισμό (σκεφτόΣαστε βασικά, εγώ δεν σκέφτομαι τίποτα για τον προγραμματισμό).
Η Grace Brewster Murray γεννήθηκε στη Νέα Υόρκη το 1906 και φαίνεται ότι είχε από μικρή μια ελαφρώς επικίνδυνη σχέση με την ερώτηση:
- Και πώς δουλεύει αυτό;
Σύμφωνα με μια ιστορία που διηγούνταν και η ίδια, όταν ήταν περίπου επτά ετών αποφάσισε να ανακαλύψει πώς λειτουργούσε ένα ξυπνητήρι.
Το διέλυσε. Δεν κατάφερε να το ξαναφτιάξει. Η λογική συνέχεια για ένα φυσιολογικό επτάχρονο θα ήταν να σταματήσει. Η Grace Hopper όμως διέλυσε κι άλλα. Μέχρι να την πάρει χαμπάρι η μητέρα της, είχαν πέσει θύματα της επιστημονικής της μεθόδου 7 (επτά) οικογενειακά ξυπνητήρια.
Τελικά της επέτρεψαν να πειραματίζεται μόνο με ένα. Ευτυχώς για την ανθρωπότητα, δηλαδή, μερικές φορές αυτό που ακούγαμε όλοι μικροί και άρχιζε με το "Μην το πειράζεις..." και συνέχιζε με "...αυτό που κρατάς" δεν πιάνει.
Η Hopper σπούδασε μαθηματικά και φυσική στο Vassar College και συνέχισε στο Yale, όπου πήρε μεταπτυχιακό το 1930 και διδακτορικό στα μαθηματικά το 1934. Κι αυτό, να σημειωθεί, σε μια εποχή όπου αυτό δεν ήταν ακριβώς η συνηθισμένη επαγγελματική διαδρομή μιας γυναίκας.
Έπειτα δίδαξε μαθηματικά στο Vassar και πιθανότατα θα μπορούσε να είχε συνεχίσει μια απολύτως αξιοπρεπή ακαδημαϊκή καριέρα. Μόνο που ήρθε ο Β΄ Παγκόσμιος Πόλεμος και το 1943 η Hopper αποφάσισε να μπει στο αμερικανικό Ναυτικό.
Υπήρχαν όμως δύο μικρά προβλήματα.
Ήταν μεγαλύτερη από το συνηθισμένο όριο ηλικίας και ζύγιζε λιγότερο από το απαιτούμενο κατώτατο βάρος.
Με άλλα λόγια, το Ναυτικό κοίταξε αυτή τη μελλοντική Rear Admiral και αρχικά σκέφτηκε περίπου:
- Μμμ... Μπα, ούτε καν.
Χρειάστηκε ειδική εξαίρεση για να ενταχθεί στις WAVES, το γυναικείο σώμα της Naval Reserve.
Το 1944 βρέθηκε στο Harvard, στην ομάδα του Howard Aiken.
Και εκεί συνάντησε τον Harvard Mark I. Δεν ήταν υπολογιστής σαν αυτούς που ξέρουμε.
Ήταν ένας τεράστιος ηλεκτρομηχανικός μηχανισμός, μήκους περίπου ενός δωματίου, γεμάτος διακόπτες, relays και κινούμενα μέρη. Και η Hopper έγινε μία από τους πρώτους ανθρώπους που χρειάστηκε να μάθουν πώς ακριβώς δίνεις εντολές σε κάτι που ακόμη καλά καλά δεν είχε αποφασιστεί τι σημαίνει να προγραμματίζεις υπολογιστή.
Δηλαδή, το επάγγελμα ουσιαστικά κατασκευαζόταν ενώ το ασκούσαν.
Και τότε δημιουργήθηκε μια πολύ παράλογη αλλά πολύ απλή ερώτηση
Σήμερα γράφω σε Python:
print("Hello")
και κανείς δεν εντυπωσιάζεται ιδιαίτερα. Και πολύ καλά κάνει. Ούτε κι εγώ.
Εκείνη την εποχή όμως ο προγραμματισμός ήταν πολύ πιο κοντά στη γλώσσα της ίδιας της μηχανής. Αριθμητικοί κωδικοί, διευθύνσεις μνήμης, εντολές που απαιτούσαν από τον άνθρωπο να προσαρμοστεί στον υπολογιστή.
Και η Hopper άρχισε να σκέφτεται κάτι που τότε φαινόταν σε πολλούς σχεδόν ανόητο.
- Γιατί;
Γιατί πρέπει ο άνθρωπος να μάθει να μιλά σαν μηχανή;
Γιατί να μη γράφει κάτι πιο κοντά στη δική του γλώσσα και να υπάρχει ένα πρόγραμμα που θα κάνει τη μετάφραση;
Σήμερα η ιδέα φαίνεται αυτονόητη. Τότε δεν ήταν καθόλου.
Ο compiler
Το 1952 η Hopper ολοκλήρωσε το A-0, ένα από τα πρώτα συστήματα compiler στην ιστορία.
Εδώ χρειάζεται να καταρρίψουμε και τον μύθο ότι η Grace Hopper εφηύρε μόνη της τον πρώτο compiler και τελείωσε.
Η ιστορία των πρώτων compilers έχει τεχνικές και ορολογικές αποχρώσεις και η έννοια του compiler εξελίχθηκε μαζί με τα ίδια τα συστήματα.
Αλλά το A-0 αποτελεί αναμφισβήτητα ένα από τα πρωτοποριακά πρώτα compiler systems και είχε χαρακτηριστικά που αναγνωρίζουμε στους μεταγλωττιστές που ακολούθησαν.
Η ουσία της ιδέας ήταν επαναστατική:
Ας κάνουμε τον υπολογιστή να αναλάβει ένα μέρος της δουλειάς του προγραμματιστή. Δεν χρειάζεται ο άνθρωπος να ξαναγράφει από την αρχή κάθε στοιχειώδη διαδικασία. Μπορεί να χρησιμοποιεί ήδη γραμμένες υπορουτίνες και ένα πρόγραμμα να αναλαμβάνει να τις οργανώσει σε κάτι που μπορεί να εκτελέσει η μηχανή.
Γιατί το πιο ενδιαφέρον χαρακτηριστικό της Hopper ήταν ότι δεν έβλεπε την ευκολία ως τεμπελιά. Την έβλεπε ως πρόοδο. Ο υπολογιστής υπάρχει για να αναλαμβάνει δουλειά από τον άνθρωπο. Όχι για να του δημιουργεί περισσότερη.
Και τώρα ας βάλουμε και λέξεις!
Η Hopper όμως δεν σταμάτησε εκεί.
Εργαζόμενη στην Eckert-Mauchly Computer Corporation και αργότερα στην UNIVAC, προχώρησε στην ανάπτυξη συστημάτων που θα μπορούσαν να χρησιμοποιούν εκφράσεις πολύ πιο κοντά στην κανονική αγγλική γλώσσα.
Έτσι φτάσαμε στο FLOW-MATIC, την πρώτη γλώσσα επεξεργασίας δεδομένων που χρησιμοποίησε σε σημαντικό βαθμό αγγλικές λέξεις.
Και εδώ αρκετοί δεν ενθουσιάστηκαν καθόλου. Η αντίληψη τότε, ήταν ότι οι υπολογιστές κάνουν αριθμητική. Οι λέξεις είναι δουλειά των ανθρώπων.
Η Hopper επέμενε. Οι άνθρωποι των επιχειρήσεων δεν θα έπρεπε να μάθουν μια σχεδόν εξωγήινη σημειογραφία για να χρησιμοποιήσουν έναν υπολογιστή. Ο υπολογιστής μπορούσε να προσαρμοστεί σε αυτούς.
Εδώ είναι το σημείο όπου αρχίζει να διαφαίνεται γιατί η συνεισφορά της είναι πολύ μεγαλύτερη από έναν compiler.
Η Hopper προωθούσε μια διαφορετική φιλοσοφία για την τεχνολογία.
Μην αναγκάζεις εκατομμύρια ανθρώπους να προσαρμοστούν στη μηχανή αν μπορείς να προσαρμόσεις τη μηχανή στους ανθρώπους.
Και κάπως έτσι φτάνουμε στην COBOL.
Το 1959 δημιουργήθηκε μια επιτροπή με στόχο μια κοινή γλώσσα προγραμματισμού για επιχειρηματικές εφαρμογές. Από εκεί προέκυψε η COBOL - Common Business-Oriented Language.
Εδώ έχουμε άλλον έναν μύθο που αξίζει να ξεκαθαρίσουμε.
Όχι, η Grace Hopper δεν έγραψε μόνη της την COBOL. Η COBOL ήταν συλλογική δουλειά πολλών ανθρώπων στο πλαίσιο της CODASYL. Η Hopper όμως είχε σημαντική επιρροή στην κατεύθυνσή της. Το FLOW-MATIC αποτέλεσε έναν από τους σημαντικότερους προδρόμους της και η ίδια εργάστηκε έντονα για την ανάπτυξη, τυποποίηση και διάδοσή της.
Και η COBOL δεν υπήρξε κάποια ιστορική υποσημείωση που εξαφανίστηκε με τις διάτρητες κάρτες. Έγινε μία από τις σημαντικότερες γλώσσες επιχειρηματικού λογισμικού στην ιστορία και παρέμεινε για δεκαετίες βαθιά χωμένη σε τράπεζες, κυβερνητικά συστήματα, ασφαλιστικές εταιρείες και μεγάλα πληροφοριακά συστήματα.
Με άλλα λόγια, υπάρχει μια αξιοπρεπής πιθανότητα κάπου στον πλανήτη να τρέχει ακόμη κώδικας που κουβαλάει "DNA" από τις ιδέες της Grace Hopper.
Η γυναίκα που μοίραζε... νανοδευτερόλεπτα
Κι εδώ ερχόμαστε σε ένα από τα αγαπημένα μου fun facts.
Η Hopper είχε ένα πρόβλημα ως καθηγήτρια και ομιλήτρια.
Πώς εξηγείς σε κάποιον πόσο μικρό είναι ένα nanosecond;
Ένα νανοδευτερόλεπτο είναι 0,000000001 δευτερόλεπτο.
Ωραία. Το διάβασες. Το ένιωσες; Το αντιλήφθηκες;
Οπότε η Hopper έπαιρνε κομμάτια σύρματος μήκους περίπου 30 εκατοστών. Αυτή είναι περίπου η απόσταση που μπορεί να διανύσει ένα ηλεκτρικό σήμα σε ένα νανοδευτερόλεπτο, και τα μοίραζε στους ακροατές της.
- Να. Ένα nanosecond!
Το Smithsonian έχει μάλιστα στη συλλογή του μια δεσμίδα περίπου εκατό τέτοιων καλωδίων που είχε φέρει η Hopper σε διάλεξή της το 1985.
Και όταν άρχισε να χρειάζεται να εξηγεί picoseconds, δηλαδή τρισεκατομμυριοστά του δευτερολέπτου;
Τα καλώδια παραήταν μικρά. Οπότε χρησιμοποιούσε κόκκους πιπεριού.
Εκπαιδευτική τεχνολογία Grace Hopper "σύρμα και πιπέρι". Και λειτουργεί ακόμη!
Και ναι, είχε και ένα ρολόι που πήγαινε ανάποδα.
Στην Hopper αποδίδεται μια φράση που περιγράφει αρκετά καλά τη σχέση της με την παράδοση:
- Οι άνθρωποι είναι αλλεργικοί στην αλλαγή. Λατρεύουν να λένε "Πάντα έτσι το κάναμε".
Και λέγεται ότι είχε στον τοίχο της ένα ρολόι που γύριζε αριστερόστροφα για να θυμίζει σε όποιον το κοιτάζει ότι κάτι δεν γίνεται σωστό απλώς επειδή συνηθίσαμε να γίνεται έτσι.
Αυτό, αν το σκεφτεί κανείς, περιγράφει σχεδόν ολόκληρη την καριέρα της.
"Οι υπολογιστές δουλεύουν έτσι."
- Γιατί;
"Έτσι τους προγραμματίζουμε."
- Γιατί;
"Οι άνθρωποι πρέπει να μάθουν τη γλώσσα της μηχανής."
- Γιατί;
Από τις καλύτερες ερωτήσεις όσων ασχολούνται με την επιστήμη!
Την ανάγκασαν να αποστρατευτεί και μετά τη φώναξαν πίσω.
Το 1966 η Hopper αναγκάστηκε να αποχωρήσει από το Ναυτικό λόγω ηλικιακών περιορισμών. Αργότερα χαρακτήρισε εκείνη την ημέρα μία από τις πιο θλιβερές της ζωής της.
Μερικούς μήνες αργότερα το Ναυτικό συνειδητοποίησε ότι... βασικά τη χρειαζόταν.
Την επανέφερε στην ενεργό υπηρεσία για να βοηθήσει στην τυποποίηση των γλωσσών και των συστημάτων υπολογιστών του.
Η "προσωρινή" επιστροφή κράτησε περίπου δεκαεννέα χρόνια.
Το 1986 αποστρατεύτηκε οριστικά. Στην τελετή της έδωσαν 43 κόκκινα τριαντάφυλλα, ένα για κάθε χρόνο υπηρεσίας. Ήταν 79 ετών, είχε τον βαθμό Rear Admiral και τότε ήταν ο γηραιότερος εν ενεργεία αξιωματικός στις αμερικανικές ένοπλες δυνάμεις.
Ζήτησε η τελετή αποστρατείας της να γίνει πάνω στο USS Constitution, το παλαιότερο εν ενεργεία πολεμικό πλοίο του αμερικανικού Ναυτικού.
Η γηραιότερη εν ενεργεία αξιωματικός στο γηραιότερο εν ενεργεία πλοίο!
Touché!
Και επειδή προφανώς στα 79 δεν είχε έρθει ακόμη η ώρα να καθίσει σπίτι της, αμέσως μετά πήγε να εργαστεί στη Digital Equipment Corporation.
Γιατί σύνταξη μπορείς να πάρεις μεν, η έμφυτη περιέργεια δεν είναι απαραίτητο να συνεργαστεί με αυτή σου την απόφαση δε.
Από το "είσαι πολύ μεγάλη" στο USS Hopper
Η Hopper πέθανε την 1η Ιανουαρίου 1992. Τάφηκε με πλήρεις στρατιωτικές τιμές στο Arlington National Cemetery. Είχε ήδη αποκτήσει περισσότερα από σαράντα τιμητικά πτυχία και το 1991 είχε γίνει η πρώτη γυναίκα που έλαβε ως μεμονωμένη αποδέκτρια το National Medal of Technology.
Το 1996 το αμερικανικό Ναυτικό βάφτισε προς τιμήν της ένα αντιτορπιλικό κατευθυνόμενων πυραύλων: USS Hopper.
Το 2016 της απονεμήθηκε μεταθανάτια το Presidential Medal of Freedom, η υψηλότερη πολιτική τιμή των ΗΠΑ.
Και σήμερα το όνομά της βρίσκεται σε πανεπιστημιακούς χώρους, υποτροφίες, συνέδρια και βραβεία πληροφορικής.
Αλλά ίσως το σημαντικότερο μνημείο της δεν έχει πάνω του το όνομά της.
Είναι κάθε φορά που ένας άνθρωπος γράφει μια εντολή σε μια γλώσσα που μπορεί να καταλάβει και αφήνει τον υπολογιστή να κάνει τη μετάφραση...
Τελικά, τι έκανε η Grace Hopper;
- Δεν ανακάλυψε το πρώτο bug.
- Δεν εφηύρε μόνη της την COBOL.
- Αν ψάξουμε την ιστορία της πληροφορικής για έναν μοναδικό άνθρωπο που εφηύρε τον compiler, μάλλον θα καταλήξουμε να τσακωνόμαστε για τους ορισμούς.
Η πραγματική ιστορία της όμως είναι καλύτερη από τον μύθο.
Η Grace Hopper βρέθηκε σε μια εποχή όπου ο υπολογιστής ήταν ένα τεράστιο, δύσχρηστο μηχάνημα που μόνο μια χούφτα ειδικών μπορούσε να χειριστεί.
Και πέρασε μεγάλο μέρος της ζωής της υποστηρίζοντας μια ιδέα που σήμερα θεωρούμε αυτονόητη:
όχι ο άνθρωπος δυσκολότερος για χάρη της τεχνολογίας.
Ο σκόρος απλώς ήταν εκεί την κατάλληλη στιγμή.
Η Hopper ήταν αυτή που κατάλαβε προς τα πού έπρεπε να πάει το πράγμα.
Και υπάρχει κάτι υπέροχο στο γεγονός ότι μια γυναίκα που στα επτά της διέλυε ξυπνητήρια για να μάθει πώς λειτουργούν, πέρασε τελικά τη ζωή της διαλύοντας μια πολύ μεγαλύτερη ιδέα:
Έτσι γίνεται επειδή πάντα έτσι γινόταν.
Ευτυχώς, μερικοί άνθρωποι δεν μπορούν να αφήσουν ούτε το ξυπνητήρι ούτε τον κόσμο στην ησυχία του.
Πηγές:
- Telegraph History — The origin of the word bug: https://www.telegraph-history.org/bug/
- Smithsonian National Museum of American History — το αυθεντικό ημερολόγιο με τον σκόρο: https://americanhistory.si.edu/collections/search/object/nmah_334663
- Smithsonian — Grace Hopper, Navy and Computers: https://www.si.edu/spotlight/women-mathematicians/grace-hopper-the-navy-and-computers
- Smithsonian — τα περίφημα «nanoseconds» της Grace Hopper: https://www.si.edu/object/nanoseconds-associated-grace-hopper%3Anmah_692464
- Yale University — Biography of Grace Murray Hopper: https://president.yale.edu/biography-grace-murray-hopper
- Computer History Museum — Software & Languages Timeline: https://www.computerhistory.org/timeline/software-languages/
- Computer History Museum — Grace Murray Hopper: https://computerhistory.org/profile/grace-murray-hopper/
- Computer History Museum — Oral History of Captain Grace Hopper, PDF: https://archive.computerhistory.org/resources/access/text/2015/06/102702026-05-01-acc.pdf
- Vassar College — Grace Hopper: Life: https://www.vassar.edu/grace-hopper/life
- U.S. Navy — USS Hopper DDG-70: https://www.surfpac.navy.mil/Warships/USS-Hopper-DDG-70/About/


