Hola Habr!
Les traigo a su atención una traducción del artículo "
Capas de idiomas " de Robert C. Martin (tío Bob).
Paso tiempo jugando al viejo juego Lunar Lander de 1969. Fue escrito por Jim Storer, un estudiante de secundaria. Lo escribió en PDP-8 en FOCAL. Así es como se ve el programa:

Y aquí está el código fuente de FOCAL:

Jim Storer era un estudiante de secundaria bastante talentoso. Echa un vistazo a este código. Tiene expresiones de Taylor bastante interesantes allí.
En general, realizo una búsqueda binaria para determinar el valor de K, que, cuando se usa en serie, idealmente aterrizará el barco. Por lo tanto, cambié el programa para que solo tomara un valor, y luego lo apliqué varias veces hasta que el barco aterriza o se estrella. Mientras escribo esto, sé que la respuesta se encuentra entre 76.40625 y 76.4453125, e intentaré 76.4257813. Estoy empezando a pensar que se me acabará el tiempo antes de encontrar la respuesta.
Mientras tanto, se me ocurrió que ejecuté este programa en el emulador
PDP-8 , que escribí en Lua para iPad.
Entonces, bueno, pensemos en ello.
- El iPad tiene un chip A8X , con tres núcleos que funcionan a una frecuencia de gigahercios más o menos.
- Lua está escrito en C y compilado en A8X.
- Mi emulador PDP8 está escrito en Lua usando el paquete CODEA de la sección Dos vidas a la izquierda.
- FOCAL fue escrito a fines de la década de 1960 en PDP8.
- Lunar Lander fue escrito en FOCAL.
Entonces estos son A8X, C, Lua, PDP8 y FOCAL. Estos son cinco idiomas diferentes. Cinco mecanismos diferentes que le dicen a la máquina qué hacer; ¡todos están apilados uno encima del otro!
Que es esto ¿Por qué hay tantos idiomas? De hecho, olvídate del iPad, PDP-8, C, Lua y todo lo demás. ¿Por qué hay tantos idiomas?
## ¿Por qué hay tantos idiomas?
¡Piénsalo! ¿Cuántos lenguajes de programación puedes nombrar? Aquí, déjame darte una breve lista:
- FORTRAN
- Algol
- COBOL
- SNOBOL
- Lisp
- Bcpl
- B
- C
- SIMULA
- Pequeña charla
- Eiffel
- C ++
- Java
- C #
- Pitón
- RUBIO
- LOGOTIPO
- LUA
- Básico
- PL / 1
- JAVASCRIPT
- Ir
- DART
- PROLOG
- FORTALEZA
- Veloz
- ML
- Ocam
- OCAML
- ADA
- Erlang
- Elixir
- Focal
Por supuesto, puedes pensar en otros que no he mencionado. La pregunta es, ¿por qué hay tantos? Realmente solo puede haber una respuesta a esta pregunta. La razón por la que hay tantos lenguajes de computadora:
No nos gustan
Bueno, tal vez esta es una declaración demasiado fuerte. Quizás debería decir:
Estábamos en Hollywood
Estábamos en Redwood.
Cruzamos el océano por el código dorado.
Estábamos fuera de nuestras mentes
Esta es una línea muy fina.
Esto nos hace buscar un código dorado.
Y nos estamos haciendo viejos.
De acuerdo, tal vez debería hablar por mí mismo ... ¿No querías gritarle a Neil Young para que dejara de quejarse, encontrara a una chica agradable y viviera con ella? ¿No querías decirle que la búsqueda de un corazón dorado era inútil? Dime, ¿qué haría él con él si lo encontrara?
¿Y qué haríamos con el lenguaje perfecto si lo encontramos?
¡Creamos los emuladores PDP-8 y FOCAL para interpretar el "Lunar Lander" escrito por un estudiante de secundaria en 1969!
Aquí está lo que pienso.Tratar con eso. Detén la búsqueda. No hay lenguaje perfecto. Buscamos por todos lados. Miramos arriba y abajo. Miramos por dentro y por fuera.
Nos fijamos en los idiomas de ambos lados.
Por dentro y por fuera
y aun así de todos modos.
Recordamos que estas son ilusiones lingüísticas.
Realmente no entendemos nada en idiomas ...
... absolutamente
Sí, hoy es un día inusual.
Pero, sin embargo, la conclusión es:
No necesitamos otro idioma.
No necesitamos saber el camino a casa.
Todo lo que queremos es ir más allá de la vida.
SQL
Si, un dia extraño.
Entonces hay un pensamiento. Tal vez necesitemos dejar de crear nuevos idiomas y simplemente calmarnos y elegir uno o dos que sean realmente buenos. Hará la vida mucho más fácil, ¿verdad?
Y, si está interesado, 76.43844461 le ofrece un ajuste bastante bueno a 2.23 MPH.