Jazykové vrstvy

Čau Habr!

Upozorňuji na překlad článku “Jazykové vrstvy» od Roberta C. Martina (strýček Bob).

Jazykové vrstvy
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:

Jazykové vrstvy

A zde je zdrojový kód pro FOCAL:

Jazykové vrstvy

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.

Zdroj: www.habr.com

Přidat komentář