Upozorňuji na překlad článku “Jazykové vrstvy» od Roberta C. Martina (strýček Bob).
Trávím čas hraním staré hry s názvem Lunar Lander z roku 1969. Napsal ji Jim Storer, student střední školy. Napsal to na PDP-8 ve FOCALu. Takto vypadá program:
A zde je zdrojový kód pro FOCAL:
Jim Storer byl poměrně talentovaný středoškolský student. Podívejte se na tento kód. Má tam docela zajímavé Taylorovy výrazy.
V podstatě provádím binární vyhledávání, abych určil hodnotu K, která při důsledném používání s lodí dokonale přistane. Upravil jsem tedy program tak, aby akceptoval pouze jednu hodnotu a pak ji aplikoval vícekrát, dokud loď nepřistane nebo havaruje. Když to píšu, vím, že odpověď leží mezi 76.40625 a 76.4453125 a zkusím 76.4257813. Začínám si myslet, že mi dojde čas, než najdu odpověď.
Mezitím mě napadlo, že jsem tento program spustil na emulátoru PDP-8, který napsal v Lua pro iPad.
Tak dobře, zamysleme se nad tím.
iPad má čip A8X, se třemi jádry běžícími na gigahertz nebo tak.
Lua je napsána v C a zkompilována do A8X.
Můj emulátor PDP8 je napsán v jazyce Lua pomocí balíčku CODEA ze sekce Dva životy vlevo.
FOCAL byl napsán koncem 1960. let na PDP8.
Lunar Lander byl napsán ve FOCALu.
Jedná se tedy o A8X, C, Lua, PDP8 a FOCAL. Jedná se o pět různých jazyků. Pět různých mechanismů, které stroji říkají, co má dělat; všechny jsou naskládané na sobě!
co to je? Proč je tolik jazyků? Ve skutečnosti zapomeňte na iPad, PDP-8, C, Lua a vše ostatní. Proč je tolik jazyků?
##Proč je tolik jazyků?
Přemýšlejte o tom! Kolik programovacích jazyků dokážete vyjmenovat? Dovolte mi, abych vám dal malý seznam:
FORTRAN
NĚCO
COBOL
SNOBOL
LISP
BCPL
B
C
SIMULA
POKEC
EIFFEL
C + +
JAVA
C#
Python
RUBÍN
LOGO
LUA
ZÁKLADNÍ
PL/1
JAVASKRIPT
GO
DART
PROLOG
VPŘED
SWIFT
ML
OCCAM
OCAML
ADA
ERLANG
ELIXÍR
FOKÁLNÍ
Samozřejmě můžete myslet na další, které jsem nezmínil. Otázkou je, proč je jich tolik? Na tuto otázku může být opravdu jen jedna odpověď. Důvod, proč existuje tolik počítačových jazyků:
Nemáme je rádi.
No, možná je to příliš silné tvrzení. Možná bych měl říct:
Byli jsme v Hollywoodu.
Byli jsme v Redwoodu.
Pro zlatý kód jsme překročili oceán.
Byli jsme při smyslech
Je to taková tenká čára.
To nás nutí hledat zlatý kód.
A stárneme.
Dobře, možná bych měl mluvit za sebe... Nechceš jen křičet na Neila Younga, aby si přestal stěžovat a našel si nějakou milou dívku a žil s ní? Nechtěl jsi mu říct, že hledání zlatého srdce bylo marné? Řekni mi, co by s tím udělal, kdyby to našel?
A co bychom dělali s ideálním jazykem, kdybychom ho našli?
Vytvořili jsme emulátory PDP-8 a FOCAL pro hraní "Lunar Lander", napsané středoškolským studentem v roce 1969!
To si myslím.
Smiř se s tím. Přestaňte hledat. Neexistuje žádný dokonalý jazyk. Dívali jsme se všude. Dívali jsme se shora i zdola. Dívali jsme se dovnitř a ven.
Podívali jsme se na jazyky z obou stran.
Uvnitř a venku
a stále to dělám, tak či onak.
Pamatujme, že jde o jazykové iluze.
Jazykům opravdu nerozumíme...
… vůbec.
Ano, dnes je neobvyklý den.
Ale přesto jde o to, že:
Nepotřebujeme další jazyk.
Nepotřebujeme znát cestu domů.
Vše, co chceme, je jít za hranice života.
SQL
Ano, zvláštní den.
Takže tady je jedna myšlenka. Možná musíme přestat vytvářet nové jazyky a prostě se uklidnit a vybrat jeden nebo dva, které jsou opravdu dobré. To hodně usnadní život, ne?
A v případě, že by vás to zajímalo, 76.43844461 vám zajistí docela dobré přistání 2.23 MPH.