Jazykové vrstvy

Ahoj, Habr!

Nabízím vám překlad článku „Jazykové vrstvy“ od Roberta C. Martina (Strýčka Boba).

Jazykové vrstvy
Trávím čas hraním staré hry „Lunar Lander“ z roku 1969. Napsal ji Jim Storer, student střední školy. Napsal ji na PDP-8 v jazyce FOCAL. Takhle vypadá program:

Jazykové vrstvy

A tady je zdrojový kód v jazyce FOCAL:

Jazykové vrstvy

Jim Storer byl docela talentovaný student střední školy. Podívej se na tento kód. Obsahuje docela zajímavé Taylorovy výrazy.

Takže provádím binární vyhledávání, abych určil hodnotu K, která při opakovaném použití přesně přistane lodí. Proto jsem změnil program, aby akceptoval pouze jednu hodnotu, a pak ji aplikoval několikrát, dokud loď nepřistane nebo se nerozbije. Zatímco to píšu, vím, že odpověď leží mezi 76.40625 a 76.4453125, takže zkusím 76.4257813. Začínám mít pocit, že mi dojde čas, než najdu odpověď.

Mezitím mě napadlo, že jsem tento program spustil v emulátoru PDP-8, který jsem napsal v Lua pro iPad.

Takže, dobře, pojďme se nad tím zamyslet.

  • iPad má čip A8X, s třemi jádry běžícími na frekvenci giga hertz nebo tak nějak.
  • Lua je napsána v C a kompiluje se do A8X.
  • Můj emulátor PDP8 je napsán v jazyce Lua, s použitím balíčku CODEA z části Two Lives Left.
  • FOCAL byl napsán na konci 60. let na PDP8.
  • Lunar Lander byl napsán v jazyce FOCAL.

Takže, to jsou A8X, C, Lua, PDP8 a FOCAL. Pět různých jazyků. Pět různých mechanismů, jak říct stroji, co má dělat; všechny jsou vrstvené jedna na druhou!

Co to znamená? Proč je tolik jazyků? Odpusťte mi, zapomeňte na iPad, PDP-8, C, Lua a všechno ostatní. Proč je tolik jazyků?

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

Zamysli se nad tím! Kolik programovacích jazyků můžeš vyjmenovat? Tak tady je malý seznam:

  • 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

Samozřejmě, můžeš si vzpomenout na další, které jsem nezmínil. Otázka zní, proč jich je tolik? Na tuto otázku skutečně může být 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é prohlášení. Možná bych měl říct:

Byli jsme v Hollywoodu.
Byli jsme v Redwoodu.
Přešli jsme oceán za zlatým kódem.
Byli jsme ve svém živlu,
To je tak tenká hranice.
To nás nutí hledat zlatý kód.

A my stárneme.

Dobře, možná bych měl mluvit za sebe… Nechtěl jsi prostě zařvat na Neila Younga, aby přestal naříkat, našel nějakou milou dívku a bydlel s ní? Nechtěli jste mu říct, že hledání zlatého srdce bylo marné? Řekněte mu, co by s ním udělal, kdyby ho našel?

A co bychom udělali s dokonalým jazykem, kdybychom ho našli?

Vytvořili jsme emulátory PDP-8 a FOCAL, abychom si zahráli » Lunar Lander», kterou napsal student střední školy v roce 1969!

Tohle si myslím.

Smířte se s tím. Přestaňte hledat. Neexistuje žádný dokonalý jazyk. Hledali jsme všude. Dívali jsme se shora dolů. Dívali jsme se dovnitř i ven.

Podívali jsme se na jazyky z obou stran.
Zevnitř a zvenčí
a pořád tak či onak.
Pamatujeme si, že jsou to jazykové iluze.

O jazycích opravdu nic nechápeme...
... vůbec.

Ano, dnes je zvláštní den.

Ale přesto, podstata je tato:

Nepotřebujeme jiný jazyk.
Nepotřebujeme vědět, jak se dostat domů.
Všechno, co chceme, je dostat se za hranice života.
S.Q.L.

Ano, podivný den.

Takže, je tu jedna myšlenka. Možná bychom měli přestat vytvářet nové jazyky a jen se uklidnit a vybrat jeden nebo dva, které jsou opravdu dobré. To by nám hodně usnadnilo život, že?

A pokud vás to zajímá, 76.43844461 vám dává docela dobré přistání při 2.23 MPH.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster