Chamo á súa atención unha tradución do artigo "Capas da linguaxe» de Robert C. Martin (tío Bob).
Paso o tempo xogando a un vello xogo chamado Lunar Lander de 1969. Foi escrito por Jim Storer, un estudante de secundaria. Escribiuno nun PDP-8 en FOCAL. Este é o aspecto do programa:
E aquí está o código fonte de FOCAL:
Jim Storer era un estudante de secundaria con bastante talento. Bótalle un ollo a este código. Ten algunhas expresións de Taylor bastante interesantes alí.
Basicamente, fago unha busca binaria para determinar o valor de K que, cando se usa de forma consistente, aterrará o barco perfectamente. Entón, modifiquei o programa para que só aceptase un valor e despois aplicouno varias veces ata que o barco aterrase ou estrelouse. Mentres escribo isto sei que a resposta está entre 76.40625 e 76.4453125 e probarei 76.4257813. Estou empezando a pensar que me faltará o tempo antes de atopar a resposta.
Mentres tanto, ocorréuseme que executaba este programa nun emulador PDP-8, quen escribiu en Lua para o iPad.
Entón, vale, pensemos nisto.
iPad ten un chip A8X, con tres núcleos funcionando a gigahercios máis ou menos.
Lua está escrito en C e compila a A8X.
O meu emulador PDP8 está escrito en Lua usando o paquete CODEA da sección Two Lives Left.
FOCAL foi escrito a finais da década de 1960 nun PDP8.
Lunar Lander foi escrito en FOCAL.
Polo tanto, estes son A8X, C, Lua, PDP8 e FOCAL. Trátase de cinco linguas diferentes. Cinco mecanismos diferentes que lle indican á máquina o que debe facer; están todos apilados uns encima dos outros!
Que é? Por que hai tantas linguas? De feito, esquece o iPad, PDP-8, C, Lua e todo o demais. Por que hai tantas linguas?
##Por que hai tantos idiomas?
Pénsao! Cantas linguaxes de programación podes nomear? Aquí, permíteme darche unha pequena lista:
FORTRAN
ALGO
COBOL
SNOBOL
LISP
BCPL
B
C
SIMULA
PEQUENA CONVERSA
EIFFEL
C ++
JAVA
C#
PITÓN
RUBÍ
LOGO
LÚA
BASIC
PL/1
GUIÓN JAVA
GO
DART
PRÓLOGO
ADIANTE
SWIFT
ML
OCCAM
OCAML
ADA
ERLANG
ELIXIR
FOCAL
Por suposto, podes pensar noutros que non mencionei. A pregunta é, por que hai tantos deles? Realmente só pode haber unha resposta a esta pregunta. A razón pola que hai tantos linguaxes informáticos:
Non nos gustan.
Ben, quizais esa sexa unha afirmación demasiado forte. Quizais debería dicir:
Estivemos en Hollywood.
Estivemos en Redwood.
Cruzamos o océano para buscar o código dourado.
Estabamos fóra de cabeza
É unha liña tan fina.
Isto fainos buscar o código dourado.
E estamos facendo vellos.
Vale, quizais debería falar por min mesmo... Non queres gritarlle a Neil Young para que deixe de queixarse e atope unha rapaza agradable e viva con ela? Non querías dicirlle que a procura dun corazón de ouro era inútil? Dime, que faría con el se o atopase?
E que fariamos cunha lingua ideal se a atopamos?
Creamos emuladores PDP-8 e FOCAL para xogar "Lunar Lander", escrito por un estudante de secundaria en 1969!
Iso é o que penso.
Tratalo. Deixa de buscar. Non existe unha linguaxe perfecta. Miramos por todas partes. Miramos dende arriba e abaixo. Miramos dentro e fóra.
Miramos as linguas de ambos os dous lados.
Dentro e fóra
e aínda así, dun xeito ou doutro.
Lembremos que se trata de ilusións lingüísticas.
Realmente non entendemos nada das linguas...
… en absoluto.
Si, hoxe é un día inusual.
Pero, con todo, a cuestión é:
Non necesitamos outro idioma.
Non necesitamos saber o camiño para casa.
O único que queremos é ir máis aló da vida.
SQL
Si, día estraño.
Entón, aquí hai un pensamento. Quizais teñamos que deixar de crear novos idiomas e simplemente calmarnos e escoller un ou dous que sexan realmente bos. Isto facilitará moito a vida, non si?
E, por se o estabas a preguntar, 76.43844461 obtén un aterraxe bastante bo de 2.23 MPH.