Jezikovne plasti

Pozdravljeni, Habr!

Predstavljam vam prevod članka "Jezikovne plasti» avtor Robert C. Martin (Uncle Bob).

Jezikovne plasti
Čas preživljam z igranjem stare igre Lunar Lander iz leta 1969. Napisal jo je Jim Storer, srednješolec. Napisal ga je na PDP-8 v FOCAL-u. Tako izgleda program:

Jezikovne plasti

In tukaj je izvorna koda za FOCAL:

Jezikovne plasti

Jim Storer je bil dokaj nadarjen srednješolec. Oglejte si to kodo. Tam ima nekaj precej zanimivih Taylorjevih izrazov.

V bistvu izvajam binarno iskanje, da določim vrednost K, ki bo ob dosledni uporabi popolnoma pristala na ladji. Zato sem program spremenil tako, da bi sprejel samo eno vrednost in jo nato uporabil večkrat, dokler ladja ne bi pristala ali se zrušila. Ko to pišem, vem, da je odgovor med 76.40625 in 76.4453125, zato bom poskusil 76.4257813. Začenjam misliti, da mi bo zmanjkalo časa, preden najdem odgovor.

Medtem se mi je zazdelo, da sem ta program pognal na emulatorju PDP-8., ki je pisal v Lui za iPad.

Torej, v redu, razmislimo o tem.

  • iPad ima čip A8X, s tremi jedri, ki delujejo na približno gigahercih.
  • Lua je napisan v C in se prevede v A8X.
  • Moj emulator PDP8 je napisan v Lua z uporabo paketa CODEA iz rubrike Two Lives Left.
  • FOCAL je bil napisan v poznih šestdesetih letih na PDP1960.
  • Lunar Lander je bil napisan v jeziku FOCAL.

To so torej A8X, C, Lua, PDP8 in FOCAL. To je pet različnih jezikov. Pet različnih mehanizmov, ki govorijo stroju, kaj naj naredi; vsi so zloženi drug na drugega!

Kaj je to? Zakaj obstaja toliko jezikov? Pravzaprav pozabite na iPad, PDP-8, C, Lua in vse ostalo. Zakaj obstaja toliko jezikov?

##Zakaj je toliko jezikov?

Premisli! Koliko programskih jezikov lahko imenujete? Naj vam dam kratek seznam:

  • FORTRAN
  • NEKAJ
  • COBOL
  • SNOBOL
  • LISP
  • BCPL
  • B
  • C
  • SIMULA
  • SMALLTALK
  • EIFFEL
  • C + +
  • JAVA
  • C#
  • PITON
  • RUBY
  • LOGO
  • Lua
  • BASIC
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • PROLOG
  • ČETRT
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELIKSIR
  • FOKALNO

Seveda lahko pomislite na druge, ki jih nisem omenil. Vprašanje je, zakaj jih je toliko? Na to vprašanje je res lahko samo en odgovor. Razlog, zakaj obstaja toliko računalniških jezikov:

Ne maramo jih.

No, morda je to premočna izjava. Mogoče bi moral reči:

Bili smo v Hollywoodu.
Bili smo v Redwoodu.
Za zlato kodo smo prečkali ocean.
Bili smo iz sebe
To je tako tanka linija.
Zaradi tega iščemo zlato kodo.

In staramo se.

V redu, morda bi moral govoriti zase... Ali ne želiš samo kričati na Neila Younga, naj se neha pritoževati in si najde kakšno prijetno dekle in živi z njo? Ali mu nisi hotel povedati, da je iskanje zlatega srca zaman? Povej mi, kaj bi naredil z njim, če bi ga našel?

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

Ustvarili smo emulatorja PDP-8 in FOCAL za igranje igre "Lunar Lander", ki jo je napisal srednješolec leta 1969!

Tako mislim.

Sprijazni se s tem. Nehajte iskati. Popolnega jezika ni. Iskali smo povsod. Pogledali smo od zgoraj in od spodaj. Pogledala sva noter in ven.

Jezike smo pogledali z obeh strani.
Zunaj in zunaj
in še vedno, tako ali drugače.
Spomnimo se, da gre za jezikovne iluzije.

Res nič ne razumemo jezikov...
… nasploh.

Ja, danes je nenavaden dan.

Vendar je bistvo vseeno:

Ne potrebujemo drugega jezika.
Ni nam treba poznati poti domov.
Vse, kar si želimo, je preseči življenje.
SQL

Ja, čuden dan.

Torej, tukaj je ena misel. Mogoče bi morali nehati ustvarjati nove jezike in se preprosto umiriti ter izbrati enega ali dva, ki sta res dobra. To bo zelo olajšalo življenje, kajne?

In če ste se spraševali, 76.43844461 vam zagotovi precej dobro pristajanje s hitrostjo 2.23 MPH.

Vir: www.habr.com

Dodaj komentar