Strati linguistici

Ciao, Habr!

Vi propongo la traduzione dell'articolo «Strati di Lingua» dell'autore Robert C. Martin (Zio Bob).

Strati linguistici
Passo il tempo giocando al vecchio gioco «Lunar Lander» del 1969. È stato scritto da Jim Storer, un allievo delle scuole superiori. L'ha scritto su PDP-8 in linguaggio FOCAL. Ecco a cosa somiglia il programma:

Strati linguistici

Ecco il codice sorgente in FOCAL:

Strati linguistici

Jim Storer era un allievo delle scuole superiori piuttosto talentuoso. Dai un'occhiata a questo codice. Ha alcune espressioni di Taylor piuttosto interessanti.

In generale, sto eseguendo una ricerca binaria per determinare il valore di K che atterrerà perfettamente la navetta con un uso ripetuto. Quindi ho modificato il programma in modo che accettasse solo un valore e poi lo applicasse diverse volte fino a quando la navetta non atterra o non si schianta. Mentre scrivo questo, so che la risposta è compresa tra 76.40625 e 76.4453125 e proverò 76.4257813. Comincio a pensare che potrei rimanere senza tempo prima di trovare la risposta.

Nel frattempo, mi è venuto in mente che ho eseguito questo programma su un emulatore PDP-8, che ho scritto in Lua per iPad.

Bene, pensiamo a questo.

  • L'iPad ha un chip A8X, con tre core che lavorano a una frequenza di circa gigahertz.
  • Lua è scritto in C e compilato per A8X.
  • Il mio emulatore PDP8 è scritto in Lua, usando il pacchetto CODEA nella sezione Two Lives Left.
  • FOCAL è stato scritto alla fine degli anni '60 su PDP8.
  • Lunar Lander è stato scritto in FOCAL.

Quindi, abbiamo A8X, C, Lua, PDP8 e FOCAL. Questi sono cinque linguaggi diversi. Cinque diversi meccanismi che dicono alla macchina cosa fare; tutti sovrapposti!

Cos'è tutto questo? Perché ci sono così tanti linguaggi? In realtà, dimentica l'iPad, il PDP-8, C, Lua e tutto il resto. Perché ci sono così tanti linguaggi?

##Почему существует так много языков?

Pensaci! Quanti linguaggi di programmazione puoi nominare? Ecco, permette che ti dia un piccolo elenco:

  • FORTRAN
  • ALGOL
  • COBOL
  • SNOBOL
  • LISP
  • BCPL
  • B
  • C
  • SIMULA
  • SMALLTALK
  • EIFFEL
  • C++
  • JAVA
  • C#
  • PYTHON
  • RUBY
  • LOGO
  • LUA
  • BASIC
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • PROLOG
  • FORTH
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELIXIR
  • FOCAL

Certo, puoi pensare ad altri che non ho menzionato. La domanda è: perché ce ne sono così tanti? A questa domanda potrebbe esserci davvero solo una risposta. Il motivo per cui esistono così tanti linguaggi informatici è:

Non ci piacciono.

Beh, forse è un'affermazione troppo forte. Forse dovrei dire:

Siamo stati a Hollywood.
Siamo stati nel Redwood.
Abbiamo attraversato l'oceano per un codice d'oro.
Eravamo nella nostra mente,
È una linea così sottile.
Questo ci spinge a cercare il codice d'oro.

E noi invecchiamo.

Va bene, forse dovrei parlare per me... Non avresti voluto semplicemente urlare contro Neil Young, dicendogli di smettere di lamentarsi, trovare una ragazza carina e vivere con lei? Non volevi dirgli che la ricerca del cuore d'oro è stata inutile? Dimmi, cosa ne avrebbe fatto se lo avesse trovato?

E che cosa faremmo con la lingua perfetta, se la trovassimo?

Abbiamo creato emulatori PDP-8 e FOCAL per giocare a 'Lunar Lander', scritto da uno studente delle superiori nel 1969!

Ecco cosa penso.

Accettalo. Smetti di cercare. Non c'è una lingua perfetta. Abbiamo cercato ovunque. Abbiamo guardato sopra e sotto. Abbiamo guardato dentro e fuori.

Abbiamo esaminato le lingue da entrambi i lati.
Dall'interno e dall'esterno
e ancora in un modo o nell'altro.
Ricordiamo che sono illusioni linguistiche.

In realtà non comprendiamo nulla delle lingue...
… affatto.

Sì, oggi è un giorno insolito.

Ma, comunque, la sostanza è questa:

Non abbiamo bisogno di un'altra lingua.
Non abbiamo bisogno di sapere la strada di casa.
Tutto ciò che vogliamo è andare oltre la vita.
S.Q.L.

Sì, una giornata strana.

Quindi, c'è un pensiero. Forse dobbiamo smettere di creare nuove lingue e semplicemente calmarsi e sceglierne una o due che siano davvero buone. Questo renderà la vita molto più semplice, vero?

E, se ti interessa, 76.43844461 ti dà un atterraggio piuttosto buono a 2.23 MPH.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster