Capas lingüísticas

¡Hola, Habr!

Le presento la traducción del artículo «Language Layers» del autor Robert C. Martin (Uncle Bob).

Capas lingüísticas
Paso tiempo jugando a un viejo juego llamado «Lunar Lander» de 1969. Fue escrito por Jim Storer, un estudiante de secundaria. Lo escribió en PDP-8 usando el lenguaje FOCAL. Aquí está cómo se ve el programa:

Capas lingüísticas

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

Capas lingüísticas

Jim Storer era un estudiante de secundaria bastante talentoso. Mira este código. Tiene expresiones de Taylor bastante interesantes.

Así que, estoy realizando una búsqueda binaria para determinar el valor de K que hará que la nave aterrice perfectamente con el uso repetido. Por lo tanto, modifiqué el programa para que aceptara un solo valor, y luego lo aplicara varias veces 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 me quedará poco tiempo antes de encontrar la respuesta.

Mientras tanto, se me ocurrió que ejecuté este programa en un emulador PDP-8, que escribí en Lua para iPad.

Bien, reflexionemos sobre esto.

  • El iPad tiene un chip A8X, con tres núcleos funcionando a una frecuencia de gigahercios o algo así.
  • Lua está escrito en C y se compila en A8X.
  • Mi emulador PDP8 está escrito en Lua, utilizando el paquete CODEA de Two Lives Left.
  • FOCAL fue escrito a finales de los años 60 en PDP8.
  • Lunar Lander fue escrito en FOCAL.

Así que, tenemos A8X, C, Lua, PDP8 y FOCAL. Estos son cinco lenguajes diferentes. Cinco mecanismos diferentes que le dicen a la máquina qué hacer; ¡todos están apilados unos sobre otros!

¿Qué significa esto? ¿Por qué hay tantos lenguajes? De hecho, olvida el iPad, PDP-8, C, Lua y todo lo demás. ¿Por qué hay tantos lenguajes?

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

¡Piénsalo! ¿Cuántos lenguajes de programación puedes nombrar? Aquí, permíteme darte una pequeña lista:

  • 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

Por supuesto, puedes pensar en otros que no mencioné. La pregunta es, ¿por qué hay tantos? Realmente puede haber solo una respuesta a esta pregunta. La razón por la que existen tantos lenguajes de computadora es:

No nos gustan.

Bueno, tal vez esa sea una afirmación demasiado fuerte. Quizás debería decir:

Estuvimos en Hollywood.
Estuvimos en Redwood.
Cruzamos el océano en busca del código dorado.
Estuvimos en nuestra mente,
Es una delgada línea.
Esto nos lleva a buscar el código dorado.

Y nosotros envejecemos.

Bueno, tal vez debería hablar por mí mismo... ¿No querías simplemente gritarle a Neil Young para que dejara de quejarse, encontrara a una chica linda y viviera con ella? ¿No querías decirle que buscar un corazón dorado era inútil? Dime, ¿qué haría con él si lo encontrara?

¿Y qué haríamos con el lenguaje perfecto si lo encontráramos?

¡Creamos emuladores de PDP-8 y FOCAL para jugar a "Lunar Lander", escrito por un estudiante de secundaria en 1969!

Esto es lo que pienso.

Acepta esto. Deja de buscar. No hay ningún lenguaje perfecto. Hemos buscado en todas partes. Miramos arriba y abajo. Miramos dentro y fuera.

Vimos los lenguajes desde ambos lados.
Desde adentro y por fuera
y aún así de una manera u otra.
Recordamos que son ilusiones lingüísticas.

Realmente no entendemos nada de los lenguajes...
... en absoluto.

Sí, hoy es un día inusual.

Pero, aun así, la esencia es:

No necesitamos otro idioma.
No necesitamos saber el camino a casa.
Todo lo que queremos es salir más allá de la vida.
S.Q.L.

Sí, un día extraño.

Así que, hay una idea. Tal vez deberíamos dejar de crear nuevos idiomas y simplemente relajarnos y elegir uno o dos que realmente sean buenos. Eso haría la vida mucho más fácil, ¿no?

Y, si tienes curiosidad, 76.43844461 te da un aterrizaje bastante bueno a 2.23 MPH.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster