Straturi lingvistice

Salut, Habr!

Vă propun spre atenție traducerea articolului „Straturi de limbaj” autor Robert C. Martin (Uncle Bob).

Straturi lingvistice
Îmi petrec timpul jucând un joc vechi numit „Lunar Lander” din 1969. A fost scris de Jim Storer, un elev de liceu. El l-a scris pe PDP-8 în limbajul FOCAL. Iată cum arată programul:

Straturi lingvistice

Iată codul sursă în FOCAL:

Straturi lingvistice

Jim Storer era un elev de liceu destul de talentat. Uită-te la acest cod. Are acolo expresii Taylor destul de interesante.

În general, efectuez o căutare binară pentru a determina valoarea K care va ateriza perfect nava prin utilizarea consecutivă. Așa că am modificat programul astfel încât să accepte o singură valoare și apoi să o folosească de mai multe ori, până când nava va ateriza sau se va prăbuși. În timp ce scriu asta, știu că răspunsul se află între 76.40625 și 76.4453125, așa că voi încerca 76.4257813. Încep să cred că voi rămâne fără timp înainte să găsesc răspunsul.

Între timp, mi-a venit în minte că am rulat acest program pe un emulator PDP-8, pe care l-am scris în Lua pentru iPad.

Așa că, bine, să reflectăm asupra acestui lucru.

  • iPad are un chip A8X, cu trei nuclee care funcționează la o frecvență de un gigahertz sau ceva similar.
  • Lua este scris în C și se compilează în A8X.
  • Emulatorul meu PDP8 este scris în limbajul Lua, folosind pachetul CODEA din secțiunea Two Lives Left.
  • FOCAL a fost scris la sfârșitul anilor '60 pe PDP8.
  • Lunar Lander a fost scris în FOCAL.

Deci, avem A8X, C, Lua, PDP8 și FOCAL. Cinci limbaje diferite. Cinci mecanisme diferite care indică mașinii ce să facă; toate sunt împletite unele în altele!

Ce este asta? De ce atât de multe limbaje? De fapt, lasă deoparte iPad-ul, PDP-8, C, Lua și tot restul. De ce atât de multe limbaje?

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

Gândește-te la asta! Câte limbaje de programare poți numi? Iată, permit-mi să-ți ofer o listă mică:

  • 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

Desigur, poți gândi la altele pe care nu le-am menționat. Întrebarea este, de ce sunt atât de multe? La această întrebare, de fapt, poate exista doar un singur răspuns. Motivul pentru care există atât de multe limbaje de calculatoare:

Nu ne plac.

Ei bine, poate că aceasta este o afirmație prea puternică. Poate ar trebui să spun:

Am fost în Hollywood.
Am fost în Redwood.
Am traversat oceanul pentru a obține codul de aur.
Am fost în propria noastră minte,
Este o linie atât de fină.
Aceasta ne face să căutăm codul de aur.

Și noi îmbătrânim.

Bine, poate că ar trebui să vorbesc în numele meu... Nu voiai doar să îi strigi lui Neil Young să înceteze să se plângă, să găsească o fată drăguță și să trăiască cu ea? Nu ai vrut să-i spui că căutarea inimii aurii a fost în zadar? Spune-mi, ce ar fi făcut el cu ea dacă ar fi găsit-o?

Și ce am face cu limba perfectă, dacă am găsi-o?

Am creat emulatoare PDP-8 și FOCAL pentru a juca "Lunar Lander", scris de un elev de liceu în 1969!

Iată ce cred.

Acceptă asta. Încetează căutările. Nu există nici o limbă perfectă. Am căutat peste tot. Ne-am uitat sus și jos. Ne-am uitat înăuntru și afară.

Ne-am uitat la limbi din ambele părți.
Din interior și din exterior
și totuși în acest fel sau altul.
Amintindu-ne că acestea sunt iluzii lingvistice.

De fapt, nu înțelegem nimic despre limbi...
…deloc.

Da, astăzi este o zi neobișnuită.

Dar, cu toate acestea, esența este:

Nu avem nevoie de o altă limbă.
Nu trebuie să știm drumul spre casă.
Tot ce vrem este să depășim limitele vieții.
S.Q.L.

Da, o zi ciudată.

Deci, există o idee. Poate că ar trebui să încetăm să creăm noi limbaje și pur și simplu să ne liniștim și să alegem unul sau două care sunt cu adevărat bune. Ar face viața mult mai simplă, nu-i așa?

Și, dacă te întrebi, 76.43844461 îți oferă o aterizare destul de bună la 2.23 MPH.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster