¡Hola, Habr!
Les presento una traducción del artículo "» por Robert C. Martin (Tío Bob).

Estoy jugando a un viejo juego llamado "Lunar Lander" de 1969. Fue escrito por Jim Storer, un estudiante de secundaria. Lo creó en una PDP-8 usando el lenguaje de programación FOCAL. Así es como se ve el programa:

Aquí está el código fuente de FOCAL:

Jim Storer era un estudiante de secundaria bastante talentoso. Mira este código. Tiene algunas expresiones de Taylor interesantes.
Básicamente, estoy realizando una búsqueda binaria para encontrar el valor de K que, al usarse repetidamente, hará que la nave aterrice perfectamente. Así que modifiqué el programa para que acepte solo un valor y lo aplique repetidamente hasta que la nave aterrice o se estrelle. Mientras escribo esto, sé que la respuesta está entre 76.40625 y 76.4453125, y probaré con 76.4257813. Empiezo a pensar que se me acabará el tiempo antes de encontrar la respuesta.
Mientras tanto, se me ocurrió que estaba ejecutando este programa en un emulador. , que fue escrito en Lua para iPad.
Bueno, pensemos en esto.
- El iPad tiene un chip , con tres núcleos funcionando a un gigahercio aproximadamente.
- Lua está escrito en C y se compila a A8X.
- Mi emulador PDP8 está escrito en Lua usando el paquete de la sección Dos vidas quedan.
- FOCAL fue escrito a finales de la década de 1960 en una PDP8.
- Lunar Lander fue escrito en FOCAL.
Así que, esos son A8X, C, Lua, PDP8 y FOCAL. Son cinco lenguajes diferentes. Cinco mecanismos distintos para indicarle a la máquina qué hacer, ¡todos apilados uno sobre el otro!
¿Qué es esto? ¿Por qué tantos idiomas? En serio, olvídense del iPad, PDP-8, C, Lua y todo lo demás. ¿Por qué tantos idiomas?
##¿Por qué hay tantos idiomas?
¡Piénsalo! ¿Cuántos lenguajes de programación conoces? Te daré una lista corta:
- FORTRAN
- ALGOL
- COBOL
- SNOBOL
- CECEO
- BCPL
- B
- C
- SIMULA
- CHARLA PEQUEÑA
- EIFFEL
- C + +
- JAVA
- C#
- PYTHON
- RUBÍ
- LOGO
- LUNA
- ED. BÁSICA
- PL / 1
- DESARROLLADOR
- GO
- DART
- PRÓLOGO
- ADELANTE
- SWIFT
- ML
- OCCAM
- OCAML
- ADA
- ERLANG
- ELIXIR
- FOCAL
Por supuesto, puedes pensar en otros que no he mencionado. La pregunta es: ¿por qué hay tantos? Solo hay una respuesta. La razón por la que hay tantos lenguajes de programación es:
No nos gustan.
Bueno, quizá sea una afirmación demasiado fuerte. Quizás debería decir:
Estábamos en Hollywood.
Estábamos en Redwood.
Cruzamos el océano en busca del código dorado.
Estábamos en nuestro sano juicio,
Es una línea muy fina.
Esto nos hace buscar el código dorado.Y nos estamos haciendo viejos.
Bueno, quizás debería hablar por mí mismo... ¿No querías gritarle a Neil Young que dejara de quejarse, que buscara a una buena chica y se fuera a vivir con ella? ¿No querías decirle que buscar un corazón de oro era inútil? Dime, ¿qué haría con él si lo encontrara?
¿Y qué haríamos con el lenguaje ideal si lo encontráramos?
¡Creamos emuladores PDP-8 y FOCAL para jugar "Lunar Lander", escrito por un estudiante de secundaria en 1969!
Eso es lo que pienso.
Acéptalo. Deja de buscar. No existe el lenguaje perfecto. Hemos buscado por todas partes. Hemos buscado arriba y abajo. Hemos buscado dentro y fuera.
Observamos los idiomas desde ambos lados.
Por dentro y por fuera
y todavía lo es, de una forma u otra.
Recordemos que éstas son ilusiones lingüísticas.Realmente no entendemos nada sobre idiomas...
…en absoluto.
Sí, hoy es un día inusual.
Pero aun así, el punto 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
Sí, es un día extraño.
Entonces, tengo una idea. Quizás deberíamos dejar de crear nuevos lenguajes y simplemente sentarnos y elegir uno o dos que sean realmente buenos. Eso nos facilitaría mucho la vida, ¿no?
Y, en caso de que te lo estés preguntando, 76.43844461 te da un ajuste bastante bueno a 2.23 MPH.
Fuente: habr.com
