Επίπεδα γλώσσας

Γεια σου Χαμπρ!

Φέρνω στην προσοχή σας μια μετάφραση του άρθρου "Επίπεδα Γλωσσών» του Robert C. Martin (Uncle Bob).

Επίπεδα γλώσσας
Περνάω τον χρόνο μου παίζοντας ένα παλιό παιχνίδι που ονομάζεται Lunar Lander από το 1969. Το έγραψε ο Jim Storer, μαθητής γυμνασίου. Το έγραψε σε ένα PDP-8 στο FOCAL. Έτσι φαίνεται το πρόγραμμα:

Επίπεδα γλώσσας

Και εδώ είναι ο πηγαίος κώδικας για το FOCAL:

Επίπεδα γλώσσας

Ο Jim Storer ήταν ένας αρκετά ταλαντούχος μαθητής γυμνασίου. Ρίξτε μια ματιά σε αυτόν τον κώδικα. Έχει μερικές πολύ ενδιαφέρουσες εκφράσεις του Taylor εκεί.

Βασικά, κάνω μια δυαδική αναζήτηση για να προσδιορίσω την τιμή του K που, όταν χρησιμοποιείται με συνέπεια, θα προσγειώσει τέλεια το πλοίο. Έτσι τροποποίησα το πρόγραμμα έτσι ώστε να δέχεται μόνο μία τιμή και στη συνέχεια να την εφαρμόζει πολλές φορές μέχρι να προσγειωθεί ή να συντριβεί το πλοίο. Καθώς το γράφω, ξέρω ότι η απάντηση βρίσκεται μεταξύ 76.40625 και 76.4453125 και θα δοκιμάσω το 76.4257813. Έχω αρχίσει να σκέφτομαι ότι θα μου τελειώσει ο χρόνος πριν βρω την απάντηση.

Εν τω μεταξύ, μου πέρασε από το μυαλό ότι έτρεξα αυτό το πρόγραμμα σε έναν εξομοιωτή PDP-8, ο οποίος έγραψε στο Lua για το iPad.

Λοιπόν, εντάξει, ας το σκεφτούμε αυτό.

  • Το iPad έχει τσιπ A8X, με τρεις πυρήνες που λειτουργούν στα gigahertz περίπου.
  • Το Lua είναι γραμμένο σε C και μεταγλωττίζεται σε A8X.
  • Ο εξομοιωτής μου PDP8 είναι γραμμένος σε Lua χρησιμοποιώντας το πακέτο CODEA από την ενότητα Two Lives Left.
  • Το FOCAL γράφτηκε στα τέλη της δεκαετίας του 1960 σε ένα PDP8.
  • Το Lunar Lander γράφτηκε στο FOCAL.

Αυτά λοιπόν είναι τα A8X, C, Lua, PDP8 και FOCAL. Αυτές είναι πέντε διαφορετικές γλώσσες. Πέντε διαφορετικοί μηχανισμοί που λένε στο μηχάνημα τι να κάνει. είναι όλα στοιβαγμένα το ένα πάνω στο άλλο!

Τι είναι? Γιατί υπάρχουν τόσες πολλές γλώσσες; Στην πραγματικότητα, ξεχάστε τα iPad, PDP-8, C, Lua και οτιδήποτε άλλο. Γιατί υπάρχουν τόσες πολλές γλώσσες;

##Γιατί υπάρχουν τόσες πολλές γλώσσες;

Σκέψου το! Πόσες γλώσσες προγραμματισμού μπορείτε να ονομάσετε; Εδώ, επιτρέψτε μου να σας δώσω μια μικρή λίστα:

  • ΦΟΡΤΡΑΝ
  • ΑΛΥΌΛ
  • COBOL
  • ΣΝΟΜΠΟΛ
  • ΨΕΛΛΙΖΩ
  • BCPL
  • B
  • C
  • SIMULA
  • ΨΙΛΟΚΟΥΒΕΝΤΑ
  • ΑΙΦΕΛ
  • C + +
  • JAVA
  • C#
  • Python
  • ΡΟΥΜΠΊΝΙ
  • LOGO
  • LUA
  • ΒΑΣΙΚΟ
  • PL/1
  • ΔΗΜΟΚΡΑΤΙΑ
  • GO
  • DART
  • ΠΡΟΛΟΓΟΣ
  • ΕΜΠΡΟΣ
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ΕΛΙΞΗΡΙΟ
  • ΕΣΤΙΑΚΟΣ

Μπορείτε φυσικά να σκεφτείτε άλλα που δεν ανέφερα. Το ερώτημα είναι γιατί υπάρχουν τόσα πολλά από αυτά; Μπορεί πραγματικά να υπάρχει μόνο μία απάντηση σε αυτή την ερώτηση. Ο λόγος για τον οποίο υπάρχουν τόσες πολλές γλώσσες υπολογιστών:

Δεν μας αρέσουν.

Λοιπόν, ίσως αυτή είναι πολύ ισχυρή δήλωση. Ίσως θα έπρεπε να πω:

Ήμασταν στο Χόλιγουντ.
Ήμασταν στο Redwood.
Διασχίσαμε τον ωκεανό για τον χρυσό κώδικα.
Είχαμε ξεφύγει από τα μυαλά μας
Είναι τόσο λεπτή γραμμή.
Αυτό μας κάνει να αναζητήσουμε τον χρυσό κώδικα.

Και γερνάμε.

Εντάξει, ίσως πρέπει να μιλήσω για τον εαυτό μου... Δεν θέλεις απλώς να φωνάξεις στον Νιλ Γιανγκ να σταματήσει να παραπονιέται και να βρει ένα ωραίο κορίτσι και να ζήσει μαζί της; Δεν ήθελες να του πεις ότι η αναζήτηση μιας χρυσής καρδιάς ήταν μάταιη; Πες μου, τι θα το έκανε αν το έβρισκε;

Και τι θα κάναμε με μια ιδανική γλώσσα αν τη βρίσκαμε;

Δημιουργήσαμε εξομοιωτές PDP-8 και FOCAL για να παίξουμε το "Lunar Lander", που γράφτηκε από έναν μαθητή γυμνασίου το 1969!

Αυτό νομίζω.

Αντιμετωπίστε το. Σταματήστε την αναζήτηση. Δεν υπάρχει τέλεια γλώσσα. Ψάξαμε παντού. Κοιτούσαμε από πάνω και κάτω. Κοιτάξαμε μέσα και έξω.

Εξετάσαμε τις γλώσσες και από τις δύο πλευρές.
Μέσα και έξω
και εξακολουθούν να το κάνουν, με τον ένα ή τον άλλο τρόπο.
Ας θυμηθούμε ότι πρόκειται για γλωσσικές ψευδαισθήσεις.

Πραγματικά δεν καταλαβαίνουμε τίποτα από γλώσσες...
… καθόλου.

Ναι, σήμερα είναι μια ασυνήθιστη μέρα.

Ωστόσο, το θέμα είναι:

Δεν χρειαζόμαστε άλλη γλώσσα.
Δεν χρειάζεται να ξέρουμε τον δρόμο για το σπίτι.
Το μόνο που θέλουμε είναι να πάμε πέρα ​​από τη ζωή.
SQL

Ναι, περίεργη μέρα.

Να λοιπόν μια σκέψη. Ίσως πρέπει να σταματήσουμε να δημιουργούμε νέες γλώσσες και απλώς να ηρεμήσουμε και να διαλέξουμε μία ή δύο που είναι πραγματικά καλές. Αυτό θα κάνει τη ζωή πολύ πιο εύκολη, έτσι δεν είναι;

Και, σε περίπτωση που αναρωτιέστε, το 76.43844461 σας προσφέρει μια πολύ καλή προσγείωση 2.23 MPH.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο