Capes del llenguatge

Hola Habr!

Apunto a la vostra atenció una traducció de l'article "Capes del llenguatge» de Robert C. Martin (Oncle Bob).

Capes del llenguatge
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:

Capes del llenguatge

I aquí teniu el codi font de FOCAL:

Capes del llenguatge

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.

Font: www.habr.com

Afegeix comentari