Apunto a la vostra atenció una traducció de l'article "Capes del llenguatge» de Robert C. Martin (Oncle Bob).
Em passo el temps jugant a un joc antic anomenat Lunar Lander del 1969. Va ser escrit per Jim Storer, un estudiant de secundària. Ho va escriure en un PDP-8 a FOCAL. Aquest és el que sembla el programa:
I aquí teniu el codi font de FOCAL:
Jim Storer era un estudiant de secundària amb força talent. Fes una ullada a aquest codi. Té algunes expressions de Taylor força interessants.
Bàsicament, faig una cerca binària per determinar el valor de K que, quan s'utilitza de manera coherent, aterrarà el vaixell perfectament. Així que vaig modificar el programa perquè només acceptés un valor i després l'apliqués diverses vegades fins que el vaixell va aterrar o s'estavella. Mentre escric això, sé que la resposta es troba entre 76.40625 i 76.4453125 i provaré 76.4257813. Estic començant a pensar que em quedaré sense temps abans de trobar la resposta.
Mentrestant, se'm va ocórrer que executava aquest programa en un emulador PDP-8, que va escriure en Lua per a l'iPad.
Així que, d'acord, pensem-hi.
L'iPad té un xip A8X, amb tres nuclis que funcionen a gigahertz més o menys.
Lua està escrit en C i es compila a A8X.
El meu emulador PDP8 està escrit en Lua mitjançant el paquet CODEA de la secció Two Lives Left.
FOCAL es va escriure a finals de la dècada de 1960 en un PDP8.
Lunar Lander va ser escrit en FOCAL.
Per tant, aquests són A8X, C, Lua, PDP8 i FOCAL. Són cinc idiomes diferents. Cinc mecanismes diferents que diuen a la màquina què ha de fer; estan tots apilats l'un sobre l'altre!
Què és això? Per què hi ha tantes llengües? De fet, oblideu-vos de l'iPad, PDP-8, C, Lua i tota la resta. Per què hi ha tantes llengües?
##Per què hi ha tants idiomes?
Pensa-hi! Quants llenguatges de programació pots anomenar? Aquí us deixo una petita llista:
FORTRAN
ALGOL
COBOL
SNOBOL
LISP
BCPL
B
C
SIMULA
PETIT SERMO
EIFFEL
C + +
JAVA
C#
PITÓ
RUBY
LOGOTIP
LUA
BASIC
PL/1
JAVASCRIPT
GO
DART
PROLOGLOG
AVANT
SWIFT
ML
OCCAM
OCAML
ADA
ERLANG
ELIXIR
FOCAL
Per descomptat, pots pensar en altres que no he esmentat. La pregunta és, per què n'hi ha tants? Realment només hi pot haver una resposta a aquesta pregunta. El motiu pel qual hi ha tants llenguatges informàtics:
No ens agraden.
Bé, potser és una afirmació massa forta. Potser hauria de dir:
Estàvem a Hollywood.
Estàvem a Redwood.
Vam creuar l'oceà per buscar el codi daurat.
Estàvem fora de cap
És una línia tan fina.
Això ens fa buscar el codi daurat.
I ens fem vells.
D'acord, potser hauria de parlar per mi mateix... No vols cridar a Neil Young perquè deixi de queixar-se i trobi una noia agradable i visqui amb ella? No volies dir-li que la recerca d'un cor d'or era inútil? Digues-me, què en faria si el trobés?
I què faríem amb un llenguatge ideal si el trobéssim?
Hem creat emuladors PDP-8 i FOCAL per jugar a "Lunar Lander", escrit per un estudiant de secundària l'any 1969!
Això és el que penso.
Fer-hi front. Deixa de buscar. No hi ha un llenguatge perfecte. Vam mirar per tot arreu. Hem mirat des de dalt i de baix. Vam mirar dins i fora.
Vam mirar les llengües des d'ambdues parts.
Dins i fora
i encara ho fan, d'una manera o altra.
Recordem que això són il·lusions lingüístiques.
Realment no entenem res de les llengües...
… en absolut.
Sí, avui és un dia inusual.
Però, tanmateix, la qüestió és:
No necessitem una altra llengua.
No necessitem saber el camí a casa.
Tot el que volem és anar més enllà de la vida.
SQL
Sí, dia estrany.
Així que aquí hi ha un pensament. Potser hem de deixar de crear nous idiomes i tranquil·litzar-nos i triar-ne un o dos que siguin realment bons. Això farà la vida molt més fàcil, no?
I, per si us ho pregunteu, 76.43844461 us ofereix un aterratge força bo de 2.23 MPH.