Jazykové vrstvy

Ahoj, Habr!

Predstavujem vám preklad článku „Jazykové vrstvy“ od autora Roberta C. Martina (Uncle Bob).

Jazykové vrstvy
Trávim čas hraním starej hry „Lunar Lander“ z roku 1969. Napísal ju Jim Storer, študent strednej školy. Napísal ju na PDP-8 v jazyku FOCAL. Takto vyzerá program:

Jazykové vrstvy

A tu je pôvodný kód v jazyku FOCAL:

Jazykové vrstvy

Jim Storer bol dosť talentovaný študent strednej školy. Pozri sa na tento kód. Obsahuje niekoľko zaujímavých Taylorových výrazov.

V podstate prevádzam binárne vyhľadávanie, aby som určil hodnotu K, ktorá pri opakovanom použití presne pristane loď. Tak som upravil program tak, aby prijímal iba jednu hodnotu, a potom ju aplikoval niekoľkokrát, kým loď nepristane alebo sa nerozbije. Zatiaľ čo toto píšem, viem, že odpoveď leží medzi 76.40625 a 76.4453125, a pokúsim sa o 76.4257813. Začínam si myslieť, že mi čas vyprší skôr, ako nájdem odpoveď.

Medzitým ma napadlo, že som spustil tento program na emulátore PDP-8, ktorý som napísal v Lua pre iPad.

Tak, dobre, zamyslime sa nad tým.

  • iPad má čip A8X, so tromi jadrami pracujúcimi na približne gigahertzoch.
  • Lua je napísaná v C a kompiluje sa do A8X.
  • Môj emulator PDP8 je napísaný v Lua, pričom využíva balík CODEA z Two Lives Left.
  • FOCAL bol napísaný na konci 60. rokov na PDP8.
  • Lunar Lander bol napísaný v FOCAL.

Takže, toto sú A8X, C, Lua, PDP8 a FOCAL. To je päť rôznych jazykov. Päť rôznych mechanizmov, ktoré určujú, čo má stroj robiť; všetky sú na seba navrstvené!

Čo to znamená? Prečo je toľko jazykov? V skutočnosti, zabudnite na iPad, PDP-8, C, Lua a všetky ostatné jazyk. Prečo je tak veľa jazykov?

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

Premýšľajte o tom! Koľko programovacích jazykov si dokážete vymenovať? Tu, dovoľte mi dať vám malý zoznam:

  • 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

Iste, môžete myslieť na iné, ktoré som nespomenul. Otázka znie, prečo ich je tak veľa? Na túto otázku existuje naozaj len jedna odpoveď. Dôvod, prečo existuje toľko počítačových jazykov:

Nepáčia sa nám.

No, možno, že to je príliš silné vyhlásenie. Možno by som mal povedať:

Boli sme v Hollywoode.
Boli sme v Redwood.
Prekročili sme oceán za zlatým kódom.
Boli sme na svojom mieste,
To je taká tenká hranica.
To nás přimělo hledat zlatý kód.

Ale stárneme.

Dobře, možná bych měl mluvit za sebe... Nechtěl jsi prostě naříkat na Neila Younga, aby přestal si stěžovat, našel si nějakou milou dívku a žil s ní? Nechtěl bys mu říct, že hledání zlatého srdce bylo marné? Řekni, co by s ním udělal, kdyby ho našel?

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

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

Tady je to, co 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ř a ven.

Podívali jsme se na jazyky z obou stran.
Z vnitřku a zvenku
a stále tak nebo onak.
Pamatujme, že to jsou jazykové iluze.

O jazycích skutečně nic nechápeme...
... vůbec.

Ano, dnes je neobvyklý den.

Nicméně, podstata je tato:

Nepotřebujeme jiný jazyk.
Nemusíme znát cestu domů.
Všechno, co chceme, je vyjít 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 prostě se uklidnit a vybrat si jeden nebo dva, které opravdu fungují. To by udělalo život mnohem jednodušším, co říkáte?

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

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster