«Πώς στο καλό φτάσαμε εδώ που χρειαζόμαστε κυριολεκτικά προγραμματιστές COBOL;» ρώτησε ο κυβερνήτης του Νιου Τζέρσεϊ Φιλ Μέρφι σε πρόσφατη συνέντευξη Τύπου.
Περιεχόμενα
- Fortran
- Ada
- Πασκάλ
- BASIC / Visual Basic
- COBOL
Αντιμέτωποι με έναν άνευ προηγουμένου αριθμό ανεργία αιτήσεις, το κράτος έπρεπε να επεκτείνει αμέσως την πλατφόρμα αιτήσεων ανεργίας 40 ετών — μια γενική αναθεώρηση που ξεκίνησε αμέσως μια ξέφρενη αναζήτηση για προγραμματιστές εξοικειωμένους με τη γλώσσα κωδικοποίησης δεκαετιών COBOL.
Προτεινόμενα βίντεο
Δεν είναι μόνο το New Jersey που έχει αυτό το πρόβλημα, ωστόσο. Πολλά από τα τραπεζικά συστήματα, τα συστήματα άμυνας και τεχνητής νοημοσύνης του κόσμου συνδυάζονται με γλώσσες προγραμματισμού που ήταν στη μόδα όταν η Apple τελείωσε από ένα γκαράζ.
Η βιομηχανία της τεχνολογίας έχει μια συνάφεια με πράγματα που είναι νέα και αιχμής, αλλά αν δεν ήταν αρχαίες γλώσσες κωδικοποίησης όπως η COBOL, Ο Ada, ο Pascal και ο Fortran, η πιστωτική βιομηχανία, οι επιστημονικοί ερευνητικοί οργανισμοί και τα πολυάριθμα αμυντικά συστήματα θα έφταναν σε μια κραυγή παύση. Με άλλα λόγια, χωρίς όλο αυτόν τον παλιό κώδικα, θα ήμασταν βιδωμένοι.
Γλώσσες προγραμματισμού πενήντα ετών εξακολουθούν να υπολογίζουν εκατομμύρια συναλλαγές και στατιστικά στοιχεία και να χρησιμεύουν ως η ραχοκοκαλιά για συστήματα στα οποία βασίζεται ο σύγχρονος κόσμος. Για παράδειγμα, πάνω από το 95 τοις εκατό των ΑΤΜ και το 40 τοις εκατό των τραπεζών χρησιμοποιούν κωδικό COBOL, σύμφωνα με ένα 2017 Αναφορά του Reuters.
Αρκετοί από αυτούς τους αρχαίους ταμπελοποιητές εξακολουθούν να κάνουν πολύ καλά συγκεκριμένες λειτουργίες. Υπάρχουν επίσης πολλά στελέχη επιχειρήσεων που δεν θέλουν να ξεχωρίσουν το δοκιμασμένο στο χρόνο λογισμικό που είναι ζωτικής σημασίας για την επιχείρηση της εταιρείας τους, επομένως αντί να αναθεωρήσουν και να εκσυγχρονίσουν, απλώς διορθώνουν τον παλιό κώδικα και ελπίζουν για τον καλύτερος.
Η πάλη με την αρχαία τεχνολογία δεν είναι νέο φαινόμενο. Για παράδειγμα, Καλιφόρνια έχει εκτινάξει εκατοντάδες εκατομμύρια δολάρια προσπαθώντας να ενημερώσει την τεχνολογία DMV και μισθοδοσίας της. Ωστόσο, η τρέχουσα πανδημία και το επακόλουθο κύμα ανεργίας έχουν φωτίσει πόσο μεγάλο μέρος της υποδομής λογισμικού της Αμερικής καταρρέει όπως και η φυσική της.
Ακολουθούν πέντε «vintage» γλώσσες από τις οποίες εξαρτάται ο κόσμος μας περισσότερα από όσα φαντάζεστε και γιατί αυτό μπορεί να σας κάνει λίγο νευρικούς.
Fortran
Αν δεν ήταν το Fortran, πολλοί από τους υπερυπολογιστές και τα μοντέλα που χρησιμοποιούμε για πράγματα όπως η πρόβλεψη καιρού, η αστροφυσική και η στατιστική ανάλυση υψηλού επιπέδου απλά δεν θα λειτουργούσαν.
Κατασκευασμένο από την IBM τη δεκαετία του 1950, η Fortran (σύντομη λέξη Formula Translation) ήταν μια από τις πρώτες γλώσσες υψηλού επιπέδου που χρησιμοποίησε λέξεις αντί για αριθμούς και επέτρεψε στους κωδικοποιητές να γράφουν προγράμματα 500% πιο γρήγορα από ό, τι όταν χρησιμοποιούν μηχανή κώδικας. Όχι σχεδόν τόσοι πολλοί προγραμματιστές μαθαίνουν τη γλώσσα σήμερα.
«Χρησιμοποιώ το Fortran όλη την ώρα – απλώς δεν το σκέφτομαι ποτέ», λέει ο James Howard, επιστήμονας δεδομένων στο Johns Hopkins Applied Physics Laboratory. Ενώ ο Χάουαρντ δεν έχει προγραμματίσει στη γλώσσα για χρόνια, οι εφαρμογές του έχουν τακτική πρόσβαση στις βασικές βιβλιοθήκες του Fortran. Χτισμένα στις αρχές της δεκαετίας του '70, είναι καλοδιατηρημένα και «τυφλώς γρήγορα».
Η τελευταία φορά που ο Χάουαρντ χρειάστηκε να γράψει ένα πρόγραμμα Fortran ήταν πριν από περίπου 10 χρόνια. Εργαζόταν στην Federal Reserve και έπρεπε να μετακινήσει δεδομένα μεταξύ δύο εφαρμογών. το ένα που ήταν γραμμένο σε C και το άλλο σε Fortran. Τα προγράμματα σταμάτησαν να επικοινωνούν επειδή ο προμηθευτής σταμάτησε να παρέχει τη βιβλιοθήκη Fortran.
Ο 40χρονος προγραμματιστής θυμήθηκε κάτι που είχε διαβάσει ως παιδί, ότι η δομή κλήσης δεδομένων για τη γλώσσα προγραμματισμού C είναι αντίθετη από αυτή του Fortran. Έγραψε ένα απλό σενάριο για να ανατρέψει την παραγγελία και, voila, η Federal Reserve επανήλθε στη λειτουργία της.
Ada
Οι κυβερνητικοί προγραμματιστές βασίζονται στη σχετικά ασαφή βάση κώδικα Ada όταν αναπτύσσουν συστήματα που απαιτούν αξιοπιστία, όπως συστήματα άμυνας και ασφάλειας. Τι ακριβώς είναι προγραμματισμένο σε αυτό; Λοιπόν, αυτό είναι λίγο κυβερνητικό μυστικό, αλλά η NASA και η Boeing έχουν χρησιμοποιήσει κώδικα βασισμένο στο Ada τα τελευταία χρόνια για τον προγραμματισμό δορυφόρων και αεροπλάνων.
Το Υπουργείο Άμυνας (DOD) επέβλεψε την ανάπτυξη της Ada τη δεκαετία του 1970 για να μειώσει τον αριθμό των γλωσσών προγραμματισμού που χρησιμοποιούσε ο στρατός, ο οποίος εκείνη την εποχή ήταν πάνω από 400. Το Ada κατασκευάστηκε για να είναι αναμφισβήτητα αξιόπιστο σε καταστάσεις ζωής ή θανάτου και ενισχυμένο έναντι σφαλμάτων προγραμματιστή. Αν και η γλώσσα παραδόθηκε το 1980, το Κογκρέσο δεν όρισε τη χρήση της σε όλα τα κυβερνητικά συστήματα μέχρι το 1995. Δύο χρόνια αργότερα, το DOD εγκατέλειψε την εντολή, πιστεύοντας ότι θα είναι φθηνότερο και πιο ευέλικτο να χρησιμοποιεί ευρέως διαθέσιμα, ενημερωμένα συστήματα. Αλλά εξακολουθεί να χρησιμοποιείται σήμερα.
Πασκάλ
Πολλοί προγραμματιστές θεωρούν την Pascal μια σχεδόν νεκρή γλώσσα προγραμματισμού, αλλά ζει με διάφορους τρόπους. «Είτε το πιστεύετε είτε όχι, εξακολουθεί να είναι μια πολύ δημοφιλής γλώσσα σε πολλά μέρη του κόσμου, αλλά στις Η.Π.Α. καλά να μιλάς λατινικά», λέει ο Dave Hatter, ο οποίος πέρασε τρία χρόνια σε μια μεγάλη ασφαλιστική εταιρεία βοηθώντας στην ενημέρωση ενός εκατομμύρια γραμμές κώδικα που υπολόγιζαν το κόστος των πολιτικών και το ποσό που πλήρωσαν.
Πολλά από αυτά τα παλαιότερα προγράμματα γράφτηκαν πολύ πριν από τις σημερινές ανησυχίες για παραβιάσεις της ασφάλειας και έχουν ευαίσθητες ιδιόκτητες πληροφορίες. Ο Hatter, ο οποίος τώρα εργάζεται ως τεχνολογία κυβερνοασφάλειας, πιστεύει ότι τα προγράμματα μπορεί να είναι σχετικά ασφαλή μόνο και μόνο λόγω της «ασφάλειας από την αφάνεια» - οι νέοι κωδικοποιητές δεν ξέρουν τι να κάνουν με κώδικα δεκαετιών. «Ένας 15χρονος χάκερ δεν θα έχει ιδέα πώς να δουλέψει με κάποιου είδους mainframe IBM 390 με την COBOL», λέει. «Τώρα δεν λέω ότι δεν μπορούσαν να μάθουν. Αλλά δεν πρόκειται να μάθουν».
Το Pascal ήταν η βάση για ένα πρώιμο λειτουργικό σύστημα της Apple και ο απόγονος της γλώσσας, οι Δελφοί, εξακολουθεί να έχει ισχυρούς υποστηρικτές. Στην πραγματικότητα, το Skype - μια από τις πρώτες εφαρμογές βιντεοκλήσεων που κέρδισε ευρεία δημοτικότητα και χρήση - γράφτηκε αρχικά στους Δελφούς.
BASIC / Visual Basic
Το BASIC δεν βρίσκεται ακριβώς στην κορυφή της λίστας όσον αφορά τις γλώσσες που χρησιμοποιούν οι άνθρωποι το 2020, αλλά πολλές από τις σύγχρονες εφαρμογές στις οποίες βασιζόμαστε απλά δεν θα υπήρχαν χωρίς αυτό. Για παράδειγμα, εάν έχετε προγραμματίσει ποτέ μια μακροεντολή Excel, έχετε χρησιμοποιήσει μια μορφή BASIC.
Σύντομο για Beginner's All-Purpose Symbolic Instruction Code, το BASIC κυκλοφόρησε το 1963 στο Dartmouth College ως ένας τρόπος διδασκαλίας ενός γενικό κοινό τις θεωρίες και τις δυνατότητες του προγραμματισμού — μια βουτιά στο νερό πριν ασχοληθείτε με πιο ισχυρές γλώσσες όπως Fortran. Η δημοτικότητα του BASIC αυξήθηκε μαζί με τον προσωπικό υπολογιστή - οι υπολογιστές Apple, IBM και Atari είχαν όλοι τις εκδόσεις τους.
Μέχρι τα μέσα της δεκαετίας του 1980, οι αυτοδίδακτοι σπασίκλες των υπολογιστών ήταν λιγότερο τζαζί για το BASIC και ενδιαφερόντουσαν περισσότερο για προγράμματα τρίτων. Στη συνέχεια, η Microsoft κυκλοφόρησε τη Visual Basic το 1991, η οποία δεν ήταν ακριβώς μια ενημέρωση της BASIC, αλλά χρησιμοποιούσε κάποιες ίδιες εντολές και δομή και είχε καλύτερη διεπαφή γραφικών. Στη συνέχεια, η γλώσσα χρησιμοποιήθηκε από πολλές επιχειρήσεις για τη σύνταξη προγραμμάτων μεγάλων και μικρών. Παρόλο που η Microsoft είπε ότι σταμάτησε την υποστήριξη της Visual Basic 6 (την πιο πρόσφατη έκδοση) το 2008, αλλά η γλώσσα εξακολουθεί να έχει πολλούς χρήστες. Ελεγξε το Δείκτης Tiobe (το οποίο καταγράφει τις πιο δημοφιλείς γλώσσες προγραμματισμού): Η VB εξακολουθεί να είναι στο top 10!
COBOL
«Θα έλεγα ότι πάνω από το 90% των ανθρώπων που βλέπουμε έχουν το COBOL ως βασικό μέρος αυτών που έχουν γράψει», εκτιμά ο Brandon Edenfield, ο οποίος ενημερώνει και μεταφέρει παλαιού τύπου εφαρμογές για Σύγχρονα Συστήματα και βοήθησε στην αναθεώρηση του κώδικα για τα χρηματιστήρια της Νέας Υόρκης και της Σιγκαπούρης. «Κάθε μεγάλη εταιρεία που μπορείτε να σκεφτείτε έχει πιθανώς μια ανθυγιεινή ποσότητα από αυτά τα πράγματα».
Το COBOL, ένα ακρωνύμιο του Common Business-Oriented Language, κυκλοφόρησε το 1959 για εργασίες επεξεργασίας δεδομένων όπως η παρακολούθηση προϋπολογισμού, οι τραπεζικές συναλλαγές και η λογιστική μισθοδοσίας. Το Υπουργείο Άμυνας (DOD) σχεδίασε αρχικά τη γλώσσα ως ένα έργο διακοπής. Στη συνέχεια, το DOD ζήτησε από τους κατασκευαστές υπολογιστών να συμπεριλάβουν το COBOL στις μηχανές που πουλούσαν και η γλώσσα εξαπλώθηκε γρήγορα τις επόμενες δεκαετίες. Πάνω από το 95% των ΑΤΜ και το 40% των τραπεζών εξακολουθούν να χρησιμοποιούν κωδικό COBOL, σύμφωνα με ένα 2017 Αναφορά του Reuters.
Μεγάλο μέρος αυτού του προγραμματισμού αναπτύχθηκε μέσω υπολογιστών mainframe και τα σύγχρονα συστήματα έχουν μεταφερθεί στο cloud. Όπως καταδεικνύεται από τη δύσκολη θέση του Νιου Τζέρσεϊ, οι προγραμματιστές που ήξεραν πώς να διατηρούν τον κώδικα COBOL γερνούν από το εργατικό δυναμικό ή έχουν ήδη συνταξιοδοτηθεί.
Οι εταιρείες που εκσυγχρονίζουν αυτά τα προγράμματα συνήθως το κάνουν με μερικούς διαφορετικούς τρόπους.
«Ένας μεγάλος ολοκληρωμένος συστημάτων θα ρίξει ένα σωρό σώματα στον κώδικα. θα καθίσουν, θα το δουν και θα το ξαναγράψουν», λέει ο Έντενφιλντ. Αυτή η προσέγγιση είναι συχνά η πιο επικίνδυνη, χρονοβόρα και δαπανηρή. Κατά μέσο όρο, οι θέσεις εργασίας με χειροκίνητη κωδικοποίηση και μεγάλη αναπλατφόρμα μπορεί να διαρκέσουν από 3 έως 10 χρόνια και μπορεί να κοστίσουν εκατοντάδες εκατομμύρια δολάρια.
Ο Edenfield προτείνει αυτοματοποιημένες λύσεις και λέει ότι το πρώτο λογικό βήμα μπορεί να είναι απλώς η μετακίνηση του κώδικα από μια ξεπερασμένη έκδοση της COBOL σε μια τρέχουσα, η οποία θα επέτρεπε σε πολλά συστήματα να μεταβούν σε σύγχρονα διακομιστές. Παρομοιάζει μια ενημέρωση μηχανής με τη μετάφραση γαλλικών στα αγγλικά: «Η βάση αυτού που λέγεται μεταφράζεται τέλεια. Απλώς πρέπει να διορθώσετε τη σύνταξη του τρόπου διατύπωσής του." Αυτή η προσέγγιση μπορεί επίσης να μειώσει τον χρόνο και το κόστος μιας ενημέρωσης, λέει, κάπου μεταξύ έξι και 24 μηνών.
Θα είναι φτηνό; Λοιπόν, θα είναι φθηνότερο. Τα έργα σύγχρονων συστημάτων κυμαίνονται συνήθως σε τιμές από 200.000 $ έως 10 εκατομμύρια $. Ένα μεγάλο μέρος του έργου, εξηγεί ο Edenfield, δεν μεταφράζει τον κώδικα, αλλά δοκιμάζει για να βεβαιωθεί ότι κάνει τα πάντα σωστά.
Ο λόγος που δεν γίνονται αυτές οι ενημερώσεις;
«Κανείς δεν είχε ακούσει για αυτό πριν γιατί δεν είναι ένα σέξι θέμα και οι άνθρωποι συνήθως δεν προσπαθούν να μιλήσουν για τα βρώμικα ρούχα που έχουν», εξηγεί. Τα στελέχη πληροφορικής έχουν επίσης τη συνήθεια να κλωτσούν το κουτάκι στο δρόμο.
«Θα σας στοιχηματίσω ότι η πολιτεία του Νιου Τζέρσεϊ θα δώσει προσοχή σε αυτό το θέμα τώρα, αλλά θα σας στοιχηματίσω επίσης ότι οι μισοί από τους συναδέλφους τους θα πιστεύουν ότι δεν θα τους συμβεί, «όχι σε μένα»».