Ciao, Habr!
Vi propongo la traduzione dell'articolo «» dell'autore Robert C. Martin (Zio Bob).

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:

Ecco il codice sorgente in FOCAL:

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 , che ho scritto in Lua per iPad.
Bene, pensiamo a questo.
- L'iPad ha un chip , 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 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
