Jezikovni sloji

Hello, Habr!

Predstavljam vam prevod članka „Jezikovni slojevi“ autora Roberta C. Martina (Uncle Bob).

Jezikovni sloji
Provodim vreme igrajući staru igru „Lunar Lander” iz 1969. godine. Napisaо ju je Jim Storer, srednjoškolac. Napisaо je to na PDP-8 na jeziku FOCAL. Evo kako izgleda program:

Jezikovni sloji

A evo izvornog koda na FOCAL-u:

Jezikovni sloji

Jim Storer je bio prilično talentovan srednjoškolac. Pogledaj ovaj kod. Ima prilično zanimljive Taylorove izraze.

U suštini, obavljam binarno pretraživanje da odredim vrednost K koja će savršeno sleteti brod pri ponovljenom korišćenju. Zbog toga sam promenijo program tako da prihvata samo jednu vrednost, a zatim je primenjuje nekoliko puta dok se brod ne sleti ili se ne slomi. Dok ovo pišem, znam da se odgovor nalazi između 76.40625 i 76.4453125, i probat ću 76.4257813. Počnem da mislim da će mi vreme iscuriti pre nego što nađem odgovor.

U međuvremenu, palo mi je na pamet da sam pokrenuo ovaj program na emulatoru PDP-8, koji sam napisao u Lua za iPad.

Dakle, dobro, hajde da razmislimo o tome.

  • iPad ima čip A8X, sa tri jezgra koja rade na frekvenciji od jednog gigaherca ili tako nešto.
  • Lua je napisan u C i kompajliran je u A8X.
  • Moj emulator PDP8 je napisan u Lua, koristeći paket CODEA iz sekcije Two Lives Left.
  • FOCAL je napisan krajem 1960-ih na PDP8.
  • Lunar Lander je napisan na FOCAL-u.

Dakle, to su A8X, C, Lua, PDP8 i FOCAL. To je pet različitih jezika. Pet različitih mehanizama koji govore mašini šta da radi; svi su složeni jedni na druge!

Šta je to? Zašto toliko jezika? Zapravo, zaboravite na iPad, PDP-8, C, Lua i sve ostalo. Zašto toliko jezika?

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

Razmislite o tome! Koliko programskih jezika možete imenovati? Evo, dozvolite mi da vam dam mali spisak:

  • 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

Naravno, možete razmišljati o drugima koje nisam spomenuo. Pitanje je, zašto ih ima toliko? Na ovo pitanje zapravo može postojati samo jedan odgovor. Razlog zbog kojeg postoji toliko računalnih jezika je:

Ne sviđaju nam se.

Pa, možda je to previše snažna izjava. Možda bih trebao reći:

Bili smo u Holivudu.
Bili smo u Redwood-u.
Prešli smo okean radi zlatnog koda.
Bili smo u svom umu,
To je tako tanka granica.
To nas podobaja, da iščemo zlato kodo.

In staramo se.

V redu, morda bi moral govoriti le zase… Ali nisi želel samo zakričati na Neila Younga, da neha tožiti, najde kakšno lepo dekle in živi z njo? Ali mu nisi želel povedati, da so iskanja zlatega srca brez pomena? Povej, kaj bi z njim naredil, če bi ga našel?

In kaj bi naredili z idealnim jezikom, če bi ga našli?

Ustvarili smo emulatorje PDP-8 in FOCAL, da bi igrali »Lunar Lander«, ki ga je napisal dijak srednje šole leta 1969!

To je tisto, kar mislim.

Sprijaznite se s tem. Nehamo s iskanjem. Ni nobenega idealnega jezika. Iskali smo povsod. Gledali smo zgoraj in spodaj. Gledali smo znotraj in zunaj.

Pogleli smo jezike z obeh strani.
Znotraj in zunaj
in še vedno tako ali tako.
Spomnimo se, da so to jezikovne iluzije.

Resnično ne razumemo ničesar o jezikih...
... povsem.

Ja, danes je nenavaden dan.

Toda kljub temu je bistvo:

Ne potrebujemo drugega jezika.
Ne potrebujemo vedeti poti domov.
Vse, kar želimo, je, da gremo onkraj življenja.
S.Q.L.

Ja, nenavaden dan.

Torej, ena misel. Morda bi se morali prenehati ustvarjati nove jezike in se preprosto pomiriti ter izbrati enega ali dva, ki sta res dobra. To bi poenostavilo življenje, kajne?

In, če vas zanima, 76.43844461 vam daje precej dobro pristajanje pri 2.23 MPH.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster