Προγραμματισμός

Τι είναι το COBOL; Ο προγραμματισμός COBOL εξήγησε

Ορισμένες τεχνολογίες δεν πεθαίνουν ποτέ - απλώς εξαφανίζονται στο ξύλο.

Ρωτήστε τον μέσο προγραμματιστή λογισμικού για το COBOL (Common Business Oriented Language) και θα σας κοιτάξουν σαν να αναφέρατε ανθρακούχο χαρτί, βενζίνη με μολύβδου ή το ρεκόρ 78 RPM. Σε σύγκριση με τις σύγχρονες γλώσσες όπως το Go ή το Python - ή ακόμα και το Pascal ή το C! - Το COBOL φαίνεται λεία, αδέξια, παθητικό.

Αλλά η COBOL έχει υπομείνει. Μακριά από μια παρωχημένη τεχνολογία με την οποία χωρίσαμε την εταιρεία, η COBOL έχει γίνει ένα ίδρυμα. Οι μαζικές βάσεις κώδικα COBOL εξακολουθούν να χρησιμοποιούνται σε όλο τον κόσμο, πολλές από τις οποίες λειτουργούν σχεδόν ακριβώς όπως ήταν όταν δημιουργήθηκαν για πρώτη φορά. Στη γλώσσα του Χόλιγουντ, η γλώσσα COBOL έχει «πόδια».

Λοιπόν, ναι, η COBOL εξακολουθεί να είναι σχετική και έγκαιρη - οδυνηρά, στην πραγματικότητα. Τους τελευταίους μήνες, η COBOL επανήλθε στη δημόσια συνείδηση, καθώς κράτη όπως το New Jersey έχουν ζητήσει από τους προγραμματιστές να βοηθήσουν στη μεταφορά των εφαρμογών COBOL στον 21ο αιώνα.

Σε αυτό το κομμάτι θα ρίξουμε μια ματιά στις ρίζες της COBOL, πώς ξεχωρίζει ο σχεδιασμός της γλώσσας προγραμματισμού ακόμα και σήμερα, και τι κάνει το COBOL τόσο τόσο ανθεκτικό όσο και τόσο δύσκολο.

Ιστορία COBOL

Ο COBOL εμφανίστηκε στα τέλη της δεκαετίας του 1950 και στις αρχές της δεκαετίας του 1960. Η ανάπτυξη της γλώσσας ήταν ένα έργο που χρηματοδοτήθηκε από το Υπουργείο Άμυνας των Ηνωμένων Πολιτειών (DoD) που περιελάμβανε μια κοινοπραξία εταιρειών υπολογιστών, συμπεριλαμβανομένων των IBM, Honeywell, Sperry Rand και Burroughs. Ο στόχος ήταν να δημιουργηθεί μια γλώσσα προγραμματισμού με τα ακόλουθα χαρακτηριστικά:

  • Φορητότητα μεταξύ συστημάτων υπολογιστών, καθιστώντας έτσι ευκολότερη τη μετεγκατάσταση λογισμικού τόσο από γενιά υλικού όσο και μεταξύ κατασκευαστών υλικού.
  • Περισσότερη αγγλική σύνταξη από άλλες γλώσσες της εποχής (π.χ. FORTRAN) ως ένας τρόπος για να ενθαρρύνετε τον προγραμματισμό από ένα ευρύτερο κοινό, ακόμα κι αν σε βάρος κάποιας λειτουργικής ταχύτητας.
  • Η ικανότητα προσαρμογής μελλοντικών αλλαγών στη γλώσσα.

Οι πρώτες επίσημες προδιαγραφές COBOL κυκλοφόρησαν το 1960. Την επόμενη δεκαετία, και με την ανησυχία των κριτικών της, η COBOL έγινε η προεπιλεγμένη επιλογή για τη σύνταξη επιχειρηματικών εφαρμογών. Ένας λόγος για την ταχεία εξάπλωσή του ήταν τα εφέ δικτύου: η IBM, ένας από τους αρχικούς συνεργάτες στη γλώσσα, έγινε επιθετική πρώιμη υιοθεσία και η κυρίαρχη παρουσία της IBM στον κόσμο των υπολογιστών συνέβαλε στην υιοθέτηση της COBOL.

Λόγω των σχεδιαστικών πλεονεκτημάτων και της υποστήριξης της βιομηχανίας βαρέων βαρών, η COBOL έχει κολλήσει, ξεπερνώντας τα αρχικά συστήματα για τα οποία σχεδιάστηκε με μεγάλο περιθώριο. Σύμφωνα με διάφορες εκτιμήσεις, το 1970 η COBOL ήταν η πιο διαδεδομένη γλώσσα προγραμματισμού στον κόσμο. Μέχρι το 1997, η COBOL πιστεύεται ότι εκτελεί περίπου το 80% των επιχειρηματικών εφαρμογών.

Γλώσσα COBOL

Οι σχεδιαστές της COBOL έσπασαν με τη στενή σύνταξη άλλων γλωσσών προγραμματισμού εκείνη την εποχή (και πάλι, όπως το FORTRAN). Η ιδέα ήταν να δημιουργηθεί μια γλώσσα προγραμματισμού που θα μπορούσε να διαβαστεί και να γίνει κατανοητή από μη προγραμματιστές, ιδίως από λογιστές, χρηματοοικονομικά, ασφαλιστικά και άλλους επαγγελματίες.

Εξετάστε ένα πρόγραμμα «γειά σου κόσμος» γραμμένο σε μια πρώιμη διάλεκτο του COBOL:

ΤΜΗΜΑ ΑΝΑΓΝΩΡΙΣΗΣ.

Αναγνωριστικό προγράμματος. ΓΕΙΑ ΣΟΥ ΚΟΣΜΕ.

ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΔΙΚΑΣΙΑ.

ΔΕΙΤΕ «Γεια σου Κόσμος!».

ΤΕΛΟΣ-ΟΘΟΝΗ.

ΔΙΑΚΟΠΗ.

Για τους σύγχρονους προγραμματιστές λογισμικού που εκτρέφονται για την λιτότητα γλωσσών όπως η Python, αυτός ο κώδικας είναι λεκτικός. Όμως, η ευγένεια του COBOL (αν όχι η εκτέλεσή του) πηγάζει από την ίδια έννοια που ενημερώνει τις σύγχρονες γλώσσες όπως η Python - αυτός ο κώδικας διαβάζεται πολλές φορές περισσότερο από ό, τι είναι γραμμένος, οπότε πρέπει να γραφτεί για να είναι αναγνώσιμος.

Ένα παρόμοιο πρόγραμμα σε μια πιο σύγχρονη έκδοση του COBOL μπορεί να μοιάζει με αυτό:

αναγνωριστικό προγράμματος. γεια.

διαίρεση διαδικασίας.

εμφάνιση "Γεια σου κόσμος!".

σταματήστε να τρέχετε.

Ενώ αυτό το παράδειγμα είναι πιο περιεκτικό, ισχύουν οι ίδιες βασικές αρχές: Ο κώδικας προσπαθεί να είναι σαφής για το τι συμβαίνει σε κάθε βήμα.

Η COBOL έχει αυστηρούς κανόνες σχετικά με τη σύνταξη και την εσωτερική οργάνωση προγραμμάτων. Ένα πρόγραμμα COBOL χωρίζεται ρητά σε ενότητες, ή διαιρέσεις, που διευκολύνουν τον εντοπισμό και την κατανόηση των συστατικών του με μια ματιά:

  • Τμήμα αναγνώρισης: Ουσιαστικά μια ενότητα μεταδεδομένων, που περιέχει λεπτομέρειες σχετικά με το πρόγραμμα, τον συντάκτη του και ούτω καθεξής.
  • Διαίρεση περιβάλλοντος: Περιέχει λεπτομέρειες σχετικά με το περιβάλλον χρόνου εκτέλεσης, για παράδειγμα ψευδώνυμα για εξωτερικές συσκευές, τα οποία ενδέχεται να χρειάζονται επεξεργασία κατά την εκτέλεση του προγράμματος σε διαφορετικό υλικό. Αυτό βοήθησε τη φορητότητα ενός προγράμματος μεταξύ συστημάτων, όπου για παράδειγμα το I / O μπορεί να αντιμετωπιστεί εντελώς διαφορετικά.
  • Διαίρεση δεδομένων: Που περιέχειαρχείο και αποθηκευτικός χώρος εργασίας ενότητες, το τμήμα δεδομένων περιγράφει τα αρχεία και τις μεταβλητές (αντίστοιχα) που χρησιμοποιούνται στο πρόγραμμα.
  • Διαίρεση διαδικασίας: Ο πραγματικός κωδικός προγράμματος ζει εδώ, χωρισμένος σε λογικές ενότητες που ονομάζονται ενότητες, παράγραφοι, προτάσεις, και δηλώσεις. Είναι δελεαστικό να αναλογούν αυτές τις δομές με ενότητες ή συναρτήσεις, επειδή εξυπηρετούν περίπου τις ίδιες λειτουργίες (διαχωρισμός κώδικα σε μπλοκ, με περιορισμένες εισόδους και εξόδους), αλλά είναι πολύ λιγότερο ευέλικτες.

Το COBOL έχει επίσης εξαιρετικά αυστηρούς κανόνες μορφοποίησης για τον κώδικα, μέχρι τον αριθμό των κενών που προηγούνται μιας εντολής. (Οι χρήστες της Python θα το γνωρίσουν αυτό!) Μερικοί από αυτούς τους περιορισμούς είναι ένα υποπροϊόν της ενηλικίωσης της COBOL κατά την εποχή του mainframe της δεκαετίας του 1960, όταν τα προγράμματα κωδικοποιήθηκαν σε κάρτες με διάτρηση και είχε σημασία η ακριβής μορφοποίηση των γραμμών 80 στηλών. . Αλλά άλλοι περιορισμοί μορφοποίησης επιβάλλουν την αναγνωσιμότητα.

Η ιδέα πίσω από τον αυστηρό συνδυασμό των προγραμμάτων COBOL είναι να τα καταστήσουμε όσο το δυνατόν πιο αυτο-έγγραφα. Εξάλλου, τα προγράμματα COBOL έτειναν να παραμένουν σε ισχύ για χρόνια ή δεκαετίες στο τέλος. Ο σκοπός (αν όχι πάντα το τελικό αποτέλεσμα) ήταν να γίνει κάθε πρόγραμμα COBOL ένα τεχνούργημα που κάθε προγραμματιστής COBOL θα μπορούσε να καταλάβει, ακόμη και χρόνια αργότερα, χωρίς τη βοήθεια του προγραμματιστή που το δημιούργησε.

COBOL προκλήσεις

Μεγάλο μέρος της συνεχιζόμενης επικράτησης της COBOL - και της αδράνειας - προέρχεται από το γεγονός ότι οι εφαρμογές COBOL, όταν γράφτηκαν, τείνουν να παραμένουν στη θέση τους επ 'αόριστον, με μόνο μικρές τροποποιήσεις. Όσο μεγαλύτερη και πιο κρίσιμη είναι η εφαρμογή, τόσο λιγότερο πιθανό είναι να διαταραχθεί. Τα βασικά καρέ, όπως οι προσφορές της IBM, έπαιξαν βασικό ρόλο: Κατασκευάστηκαν για να είναι συμβατά με πολύ παλαιότερες εκδόσεις και να εκτελούν λογισμικό παλαιού τύπου - όπως εφαρμογές COBOL - σε γενιές υλικού με ελάχιστες τροποποιήσεις. Το αποτέλεσμα: Δισεκατομμύρια γραμμές κώδικα COBOL που λειτουργούν ουσιαστικά αμετάβλητες για δεκαετίες στο τέλος.

Με τα χρόνια, COBOL έχει εξελίχθηκε, αν αργά. Ακόμα και τώρα έχει μια αντικειμενοστρεφή παραλλαγή, OO-COBOL, η οποία περιλαμβάνει υποστήριξη για σύγχρονες λειτουργίες όπως Unicode, τοπικές ρυθμίσεις και πιο προηγμένους τύπους δεδομένων πέρα ​​από συμβολοσειρές και ακέραιους αριθμούς. Ωστόσο, η COBOL διατηρεί επιθετικά τη συμβατότητα προς τα πίσω, οπότε ακόμη και αυτές οι βελτιώσεις και επεκτάσεις συμμορφώνονται με την εντολή ότι οι υπάρχουσες εφαρμογές COBOL πρέπει να συνεχίσουν να εκτελούνται.

Δεν είναι όλες οι επιλογές σχεδιασμού γλώσσας COBOL δημοφιλείς στους προγραμματιστές COBOL. Ορισμένοι έχουν οδηγήσει σε υπερβολικά περίπλοκα προγράμματα που αποδείχθηκαν δύσκολο να κατανοηθούν ή να εντοπιστούν σφαλμάτων, αποθαρρύνοντας την επανεγγραφή ή βελτιώσεις. COBOL's ΠΑΩ ΣΕ Η εντολή, όπως και το αντίστοιχό της στο C, επέτρεψε στους προγραμματιστές να μετακινούνται ελεύθερα γύρω από ένα πρόγραμμα, και έτσι να γράφουν πιο ισχυρές εφαρμογές. Όμως, μη πειθαρχημένη χρήση του ΠΑΩ ΣΕ θα μπορούσε να μετατρέψει ένα πρόγραμμα COBOL σε φωλιά αρουραίου με δύσκολο να εντοπιστεί παραπομπές.

Ο προγραμματισμός COBOL σήμερα

Η COBOL επιβιώνει σήμερα σε μερικές ενσαρκώσεις. Η IBM διατηρεί ενεργά τις δικές της εφαρμογές COBOL και υποστηρίζει πολλές υπάρχουσες εφαρμογές COBOL όπου εκτελούνται. Το Micro Focus COBOL είναι μια εμπορική έκδοση COBOL που εκτελείται σε Microsoft Windows, μεταγλωττίζει εφαρμογές COBOL σε Java και .NET, ακόμη και αναπτύσσεται σε περιβάλλοντα cloud όπως το Azure. Θα βρείτε επίσης υλοποιήσεις ανοιχτού κώδικα COBOL, όπως το GnuCOBOL, οι οποίες είναι ελεύθερα διαθέσιμες και μεταγλωττίζονται με τον εγγενή κώδικα του μηχανήματος. Ωστόσο, ενδέχεται να μην διαθέτουν μερικές από τις πιο προηγμένες δυνατότητες ανάπτυξης ή εντοπισμού σφαλμάτων των εμπορικών COBOLs.

Ενώ η COBOL παραμένει σε ευρεία χρήση, η βαθιά τεχνογνωσία της COBOL γίνεται δυσκολότερη με κάθε περνώντας έτος. Ως αποτέλεσμα, πολλοί πρώην προγραμματιστές COBOL πρέπει να πείσουν από τη συνταξιοδότησή τους για να γίνουν παλαιότερες αιτήσεις στον 21ο αιώνα. Συχνά, οι γνώσεις προγραμματισμού COBOL δεν είναι πολύ υψηλές, αλλά η οικεία κατανόηση των περιβαλλόντων mainframe όπου λειτουργεί το COBOL. Πολλές εφαρμογές COBOL συνεργάζονται με τεχνολογία παλαιού τύπου, όπως η διαχείριση συναλλαγών IMS και CICS της IBM και τα συστήματα βάσεων δεδομένων, τα οποία απαιτούν εξειδίκευση που είναι όλο και πιο σπάνια.

Έτσι, όσο παλιό σχολείο όσο COBOL φαίνεται, η ανάγκη για εξειδίκευση γλωσσών και ανάπτυξης-περιβάλλοντος COBOL αυξάνεται με κάθε περασμένο έτος. Οι λίστες εργασίας για COBOL και συναφείς γνώσεις αφθονούν. Τον Μάρτιο του 2020, το Νιου Τζέρσεϋ πραγματοποίησε έκκληση έκτακτης ανάγκης για τους προγραμματιστές COBOL για να βοηθήσουν στην αναβάθμιση των κρατικών συστημάτων παροχών ανεργίας μετά την κρίση του COVID-19

Μάθετε COBOL

Οι πόροι μάθησης για το COBOL πολλαπλασιάζονται ξανά, δεδομένης της αυξανόμενης ζήτησης για τη γλώσσα. Οι σύγχρονοι προγραμματιστές που θέλουν να φτάσουν στην ταχύτητα με αυτήν την πιο διαρκή γλώσσα έχουν μερικές επιλογές:

  • Το Πανεπιστήμιο του Λίμερικ της Ιρλανδίας προσφέρει ένα πλήρες μάθημα προγραμματισμού COBOL online, με ευγένεια του Τμήματος Επιστήμης Υπολογιστών και Πληροφοριακών Συστημάτων. Δεν είναι τόσο ενημερωμένο όσο μερικοί άλλοι πόροι, αλλά δεδομένου του πόσο λίγη COBOL αλλάζει με το χρόνο, αυτό δεν είναι απαραίτητα ένα ελάττωμα.
  • Το Open Mainframe Project (μέρος του Linux Foundation) προσφέρει επίσης πόρους COBOL. Το ένα είναι ένα πλήρες μάθημα στον προγραμματισμό COBOL, που συγχρηματοδοτείται από την IBM. Είναι πιο μοντέρνο από το μάθημα του Πανεπιστημίου του Λίμερικ και είναι προσαρμοσμένο στην εφαρμογή της COBOL της IBM για το zOS, η οποία είναι μια ευρέως διαδεδομένη έκδοση της γλώσσας.

Η COBOL υπήρξε βασική βάση των υπολογιστικών επιχειρήσεων εδώ και δεκαετίες και η ζήτηση για ταλέντα προγραμματισμού COBOL συνεχίζει να αυξάνεται. Αν σας ενδιαφέρει η διατήρηση ή ο εκσυγχρονισμός των προγραμμάτων COBOL, ο χρόνος φαίνεται πιο ώριμος από ποτέ για να βουτήξετε.