Jezicki slojevi

Bok, Habr!

Predlažem vam prijevod članka „Jezicne razine“ autora Robert C. Martin (Ujak Bob).

Jezicki slojevi
Provodim vrijeme igrajući staru igru „Lunar Lander“ iz 1969. godine. Napisao ju je Jim Storer, srednjoškolac. Napisao ju je na PDP-8 u jeziku FOCAL. Evo kako izgleda program:

Jezicki slojevi

A evo i izvorni kod na FOCAL-u:

Jezicki slojevi

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

Dakle, provodim binarno pretraživanje kako bih odredio vrijednost K koja će savršeno sletjeti brod prilikom uzastopne upotrebe. Zato sam izmijenio program tako da prihvaća samo jednu vrijednost, a zatim je primjenjuje nekoliko puta dok brod ne sleti ili se ne razbije. Dok ovo pišem, znam da odgovor leži između 76.40625 i 76.4453125, i probat ću 76.4257813. Počinjemo misliti da će mi ponestati vremena prije nego što pronađem odgovor.

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

Dakle, dobro, hajde da razmislimo o tome.

  • iPad ima čip A8X, s tri jezgre koja rade na brzini od gigeherca ili otprilike tako.
  • Lua je napisana u C i kompilira se u A8X.
  • Moj emulator PDP8 napisan je u Lua, koristeći paket CODEA iz dijela 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 su pet različitih jezika. Pet različitih mehanizama koji govore mašini što da radi; svi su složeni jedni na druge!

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

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

Razmislite o tome! Koliko jezika programiranja možete nabrojati? Evo, dopustite mi da vam dam mali popis:

  • 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 drugim jezicima koje nisam spomenuo. Pitanje je zašto ih ima toliko? Na to pitanje zapravo može biti samo jedan odgovor. Razlog zašto postoji toliko jezika programiranja:

Nisu nam se svidjeli.

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

Bili smo u Hollywoodu.
Bili smo u Redwoodu.
Prešli smo ocean zbog zlatnog koda.
Bili smo u svom umu,
To je tako tanka granica.
To nas tjera da tražimo zlatni kod.

A mi starimo.

Dobro, možda bi trebalo da govorim za sebe… Zar nisi samo želeo da vičeš na Nila Younga da prestane da se žali, da nađe neku slatku devojku i živi sa njom? Zar nisi hteo da mu kažeš da su potraga za zlatnim srcem bile uzaludne? Reci mi, šta bi on uradio s njim da ga je našao?

I šta bismo uradili s idealnim jezikom da ga pronađemo?

Napravili smo emulatore PDP-8 i FOCAL da bismo igrali 'Lunar Lander', koju je napisao srednjoškolac 1969. godine!

Evo šta mislim.

Pomirite se s tim. Prestanite sa potragom. Ne postoji idealni jezik. Tražili smo svuda. Gledali smo odozgo i odozdo. Gledali smo unutra i napolju.

Pogledali smo jezike s obe strane.
Iznutra i spolja
i do danas na ovaj ili onaj način.
Setimo se da su ovo jezičke iluzije.

U stvari ne razumemo ništa o jezicima…
… uopšte.

Da, danas je neobičan dan.

Ali, suština je:

Ne trebamo drugi jezik.
Ne treba nam da znamo put kući.
Sve što želimo je da pređemo granice života.
S.Q.L.

Da, čudan dan.

Dakle, postoji jedna misao. Možda bismo trebali prestati sa stvaranjem novih jezika i jednostavno se smiriti i izabrati jedan ili dva koja su stvarno dobra. To bi mnogo olakšalo život, zar ne?

I, ako vas zanima, 76.43844461 vam daje prilično dobar slet na 2.23 MPH.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster