Εισαγωγή
Γεια. Καλώς ήρθες. Ελπίζω να είσαι καλά. Ο Ιούνιος ήταν ένας μεγάλος μήνας στο Exercism, με την κυκλοφορία του Premium και τη δεκαετή επέτειό μας. Και ελπίζω να διασκέδασες παίζοντας με Lisps στο Summer of Sexps. Τώρα πάμε στον 7ο μήνα του 2023 και στον 6ο θεματικό μας μήνα: Jurassic July.
Τι εννοούμε με το Jurassic; Λοιπόν, όχι ότι αυτές οι γλώσσες έχουν εξαφανιστεί, αν και δύσκολα θα γράψεις καινούριο λογισμικό σε COBOL στις μέρες μας. Αλλά είναι μερικές από τις παλαιότερες γλώσσες, μερικές πάνω από 60 ετών. Ένας απίστευτος όγκος λογισμικού (ειδικά εταιρικού λογισμικού) έχει γραφτεί σε αυτές. Όλες τους είναι απίστευτα επιτυχημένες γλώσσες.
Ποιες είναι, λοιπόν, οι γλώσσες; Λοιπόν, θα δούμε τις C, C++, COBOL, Fortran και Visual Basic. Δεν θα εξερευνήσουμε τις C και C++ σε αυτό το βίντεο, αφού τις καλύψαμε ήδη στον Mechanical March, οπότε δες εκείνο το βίντεο αν σε ενδιαφέρουν αυτές οι γλώσσες. Αλλά θα δούμε τις COBOL, Fortran και Visual Basic σε λίγο!
Τα σήματα
Πάρε το σήμα ολοκληρώνοντας 5 ασκήσεις σε μία από αυτές αυτόν τον μήνα. Και για το σήμα της χρονιάς, χρειάζεται να ολοκληρώσεις:
- Bob: δουλεύεις με συμβολοσειρές και συνθήκες
- Allergies: δουλεύεις με συμβολοσειρές, αριθμούς και πράξεις bitwise
- Reverse String: διατρέχεις τους χαρακτήρες μιας συμβολοσειράς
- High Scores: διατρέχεις πίνακες αριθμών
- Armstrong Numbers: δουλεύεις με αριθμούς και βρόχους/επανάληψη
Επισκόπηση
Fortran
-
Ξεκίνησε από τον John Backus στην IBM τη δεκαετία του 1950, για να αναπτυχθεί μια πιο πρακτική εναλλακτική της assembly για τον προγραμματισμό του mainframe υπολογιστή τους IBM 704
-
Σχεδιάστηκε για να είναι καλή στην κατασκευή επιστημονικών και μηχανικών εφαρμογών (το όνομά της είναι σύντμηση του Formula Translating System)
-
Η πρώτη γλώσσα προγραμματισμού υψηλού επιπέδου (μειώνει τις γραμμές κώδικα κατά περίπου 20 φορές)
-
Επίσης ο πρώτος μεταγλωττιστής βελτιστοποίησης (οι πελάτες δίσταζαν να χρησιμοποιήσουν μια γλώσσα υψηλού επιπέδου, εκτός αν ο μεταγλωττιστής της μπορούσε να παράγει κώδικα με απόδοση κοντά σε αυτήν του χειροκίνητου assembly)
-
Γλώσσα με στατική και ισχυρή τυποποίηση
-
Στην αρχή υποστήριζε μόνο προστακτικό προγραμματισμό, αλλά σύντομα μετά προστέθηκε και ο διαδικαστικός. Αργότερα, επεκτάσεις πρόσθεσαν υποστήριξη για άλλα παραδείγματα, όπως τον αντικειμενοστρεφή προγραμματισμό και τον προγραμματισμό πινάκων
-
Τυποποιήθηκε, πρώτα το 1966 με τη Fortran 66, και ενημερώθηκε τελευταία φορά το 2018!
-
Με τεράστια επιρροή, από τη Basic μέχρι την ALGOL, πηγή έμπνευσης για πολλές γλώσσες. Μεγάλο μέρος της πρώιμης έρευνας στις γλώσσες προγραμματισμού είχε στόχο να βοηθήσει στη βελτίωση της Fortran
-
Αναπτύσσεται ακόμα ενεργά, με νέες δυνατότητες να προστίθενται, ενώ διατηρεί ισχυρές εγγυήσεις συμβατότητας προς τα πίσω (ο παλιός κώδικας συνήθως μεταγλωττίζεται και τρέχει ακόμα)
-
Ενσωματωμένος παραλληλισμός με coarrays, μια ασφαλή και αποδοτική μέθοδο έκφρασης παραλληλισμού. Οι συναρτήσεις μπορούν να χαρακτηριστούν ως pure, κάτι που βοηθά τον μεταγλωττιστή να βελτιστοποιήσει για παράλληλο υπολογισμό
-
Ασφαλής διαχείριση μνήμης με μεταβλητές allocatable, όπου ο μεταγλωττιστής είναι υπεύθυνος για την απελευθέρωση της μνήμης.
-
Ενσωματωμένη διαλειτουργικότητα με τη C
COBOL
-
Σχεδιάστηκε το 1959 από την κοινοπραξία CODASYL (με χορηγία του Υπουργείου Άμυνας!) σε μια προσπάθεια να μειωθεί το κόστος ανάπτυξης επιχειρηματικών εφαρμογών (το όνομα σημαίνει Common Business-Oriented Language)
-
Έγινε πρότυπο το 1968, με την τελευταία αναθεώρηση από το 2014
-
Διαφορετικές υλοποιήσεις, όπως οι IBM COBOL, GnuCOBOL (που μεταγλωττίζεται σε C) και Micro Focus™ Visual COBOL, που τρέχει και στο JVM και στο .NET runtime
-
Γλώσσα με στατική τυποποίηση
-
Πολυπαραδειγματική, υποστηρίζει προστακτικό και αντικειμενοστρεφή προγραμματισμό
-
Φλύαρη (πολλές λέξεις-κλειδιά) αλλά πολύ ανθρώπινα αναγνώσιμη σύνταξη. Ωφελεί την αναγνωσιμότητα και τη συντήρηση
-
Καλή συμβατότητα προς τα πίσω, με σταθερή προδιαγραφή. Δοκιμασμένη σε πραγματικές συνθήκες
-
Καλή απόδοση (χρησιμοποιείται στον χρηματοπιστωτικό τομέα)
Visual Basic
-
Αναπτύχθηκε από τη Microsoft ως διάδοχος της Visual Basic και τρέχει στο .NET runtime (το επίθεμα .NET έπεσε μετά τη Visual Basic 2003)
-
Η πρώτη έκδοση κυκλοφόρησε το 2002 και η γλώσσα χαρακτηρίστηκε "σταθερή" το 2023. Αυτό σημαίνει ότι δεν θα προστεθεί νέα σύνταξη στη γλώσσα, αλλά εξακολουθεί να είναι υποστηριζόμενη γλώσσα
-
Μοιράζεται κυρίως τη σύνταξη με τη Visual Basic, αλλά έγιναν κάποιες αλλαγές
-
Γλώσσα με στατική τυποποίηση που υποστηρίζει ισχυρή και αδύναμη τυποποίηση
-
Πολυπαραδειγματική γλώσσα: κυρίως αντικειμενοστρεφής, αλλά και προστακτικός και προγραμματισμός οδηγούμενος από γεγονότα
-
Εύκολη στην εκμάθηση (η Visual Basic σχεδιάστηκε για να είναι εύκολη στην εκμάθηση)
-
Εξαιρετική υποστήριξη για αντικειμενοστρεφή προγραμματισμό
-
Τρέχει στο δοκιμασμένο .NET runtime, με πρόσβαση σε όλες τις βιβλιοθήκες .NET
-
Εύκολη ανάπτυξη σε παραγωγικό περιβάλλον με το ClickOnce
Περιπτώσεις χρήσης
Fortran
Χρησιμοποιείται σε σενάρια υπολογισμών υψηλών επιδόσεων (υπερυπολογιστές), όπως η πρόγνωση του καιρού, η αστρονομία και η δομική μηχανική. Χρησιμοποιείται επίσης σε λογισμικό CAD και σε πολλές εφαρμογές που βασίζονται σε FORTRAN, π.χ. διάφορα modules του NumPy χρησιμοποιούν βιβλιοθήκες FORTRAN 77
COBOL
Χρησιμοποιείται πολύ στον χρηματοπιστωτικό τομέα, με πολλά χρηματοοικονομικά συστήματα να τρέχουν ακόμα σε μεγάλο βαθμό σε λογισμικό COBOL (εκτιμήσεις λένε ότι περίπου το 80% των χρηματοοικονομικών συναλλαγών τροφοδοτούνται από COBOL), αν και σήμερα πρόκειται κυρίως για συντήρηση. Χρησιμοποιείται επίσης σε πολλές επιχειρηματικές εφαρμογές, ακόμα και σε ένα key/value store που χρησιμοποιείται στη Walmart.
Visual Basic
Χρησιμοποιείται για GUIs (π.χ. διεπαφή με βάσεις δεδομένων) και για ιστοσελίδες που παράγονται από τον διακομιστή. Εταιρείες που τη χρησιμοποιούν είναι οι Boeing, Wells Fargo και General Electric
Πώς διαφέρουν από την οπτική του προγραμματισμού;
Fortran
Στην αρχή υποστήριζε μόνο προστακτικό προγραμματισμό, αλλά σύντομα μετά προστέθηκε και ο διαδικαστικός. Αργότερα, επεκτάσεις πρόσθεσαν υποστήριξη για άλλα παραδείγματα, όπως τον αντικειμενοστρεφή προγραμματισμό και τον προγραμματισμό πινάκων
COBOL
Πολυπαραδειγματική, υποστηρίζει προστακτικό και αντικειμενοστρεφή προγραμματισμό
Visual Basic
Πολυπαραδειγματική γλώσσα: κυρίως αντικειμενοστρεφής, αλλά και προστακτικός και προγραμματισμός οδηγούμενος από γεγονότα
Ξεχωριστά χαρακτηριστικά
Fortran
- Απόδοση. Η γλώσσα Fortran και οι τύποι/δομές δεδομένων της είναι σχεδιασμένες να είναι αποδοτικές/να έχουν εξαιρετική απόδοση. Γι' αυτό χρησιμοποιείται σε υπερυπολογιστές
- Από προεπιλογή, υποστηρίζει πολλές μαθηματικές συναρτήσεις
- Ο προγραμματισμός πινάκων είναι ένας πολύ κομψός τρόπος να εφαρμόζεις πράξεις σε πίνακες και σε τμήματα πινάκων, χωρίς να χρειάζεται να κάνεις χειροκίνητη επανάληψη ή να ορίσεις τα όρια του πίνακα
COBOL
- Η αριθμητική σταθερής υποδιαστολής δεν έχει σφάλματα στρογγυλοποίησης, σε αντίθεση με τους αριθμούς κινητής υποδιαστολής. Αυτό την κάνει ιδανική για τα χρηματοοικονομικά
- Ιδανική για ανάγνωση και εγγραφή σε αρχεία (καταγραφές)
- Η ενσωματωμένη υποστήριξη της COBOL για τη δημιουργία αναφορών (ένας ακόμα λόγος που ήταν δημοφιλής σε επιχειρηματικές εφαρμογές)
Visual Basic
- Εξαιρετική για την κατασκευή εφαρμογών με GUI χρησιμοποιώντας τα Windows Forms. Επεξεργαστής WYSIWYG με drag and drop
- Εξαιρετική υποστήριξη IDE, με refactorings, αυτόματη συμπλήρωση κώδικα και άλλα πολλά
Ποια να δοκιμάσεις;
- Αν σε ενδιαφέρει ο επιστημονικός υπολογισμός ή οι υψηλές επιδόσεις, η Fortran είναι εξαιρετική επιλογή
- Αν θέλεις να πάρεις μια γεύση από το πώς χτίζονταν παλιά οι επιχειρηματικές εφαρμογές, η COBOL είναι εξαιρετική
- Αν σε ενδιαφέρει να φτιάχνεις εφαρμογές με GUI ή βρίσκεσαι ήδη στην πλατφόρμα .NET, η Visual Basic λειτουργεί πολύ καλά
- Αν σε ενδιαφέρει η ιστορία του προγραμματισμού, οι διαδρομές COBOL και Fortran είναι και οι δύο ωραίες για να τις τσεκάρεις