Nyelvi rétegek

Szia Habr!

Figyelmébe ajánlom a cikk fordítását "Nyelvi rétegek» írta: Robert C. Martin (Bob bácsi).

Nyelvi rétegek
Az időmet a Lunar Lander nevű régi játékkal töltöm, 1969-ből. Jim Storer, egy középiskolás diák írta. Egy PDP-8-ra írta FOCAL-ban. Így néz ki a program:

Nyelvi rétegek

És itt van a FOCAL forráskódja:

Nyelvi rétegek

Jim Storer meglehetősen tehetséges középiskolás diák volt. Vessen egy pillantást erre a kódra. Nagyon érdekes Taylor kifejezései vannak.

Alapvetően egy bináris keresést végzek K értékének meghatározására, amely következetes használat esetén tökéletesen leszáll a hajóra. Ezért úgy módosítottam a programot, hogy csak egy értéket fogadjon el, majd többször alkalmazza, amíg a hajó le nem száll vagy lezuhan. Miközben ezt írom, tudom, hogy a válasz 76.40625 és 76.4453125 között van, és megpróbálom a 76.4257813-at. Kezdem azt hinni, hogy kifutom az időből, mielőtt megtalálom a választ.

Közben eszembe jutott, hogy ezt a programot egy emulátoron futtattam PDP-8, aki a Lua nyelven írt az iPad számára.

Szóval oké, gondolkozzunk ezen.

  • Az iPad chippel rendelkezik A8X, három maggal, amely gigahertzen vagy úgy működik.
  • A Lua C nyelven íródott, és A8X-re fordítódik.
  • A PDP8 emulátorom Lua nyelven íródott a csomag segítségével CODEA a Két élet bal oldaláról.
  • A FOCAL az 1960-as évek végén íródott PDP8-ra.
  • A Lunar Lander FOCAL nyelven íródott.

Tehát ezek az A8X, C, Lua, PDP8 és FOCAL. Ez öt különböző nyelv. Öt különböző mechanizmus, amely megmondja a gépnek, hogy mit tegyen; mind egymásra vannak rakva!

Ami? Miért van olyan sok nyelv? Valójában felejtsd el az iPadet, a PDP-8-at, a C-t, a Luát és minden mást. Miért van olyan sok nyelv?

##Miért van olyan sok nyelv?

Gondold át! Hány programozási nyelvet tudsz megnevezni? Hadd adjak egy kis listát:

  • FORTRAN
  • VALAMI
  • COBOL
  • SZNOBOL
  • SELYPÍT
  • BCPL
  • B
  • C
  • SIMULA
  • CSEVEJ
  • EIFFEL
  • C + +
  • JAVA
  • C#
  • PITON
  • RUBIN
  • LOGO
  • LUA
  • BÁZIS
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • BEVEZETŐ
  • TOVÁBB
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELIXÍR
  • FOKÁLIS

Természetesen gondolhatsz másokra is, akiket nem említettem. A kérdés az, hogy miért van belőlük olyan sok? Erre a kérdésre valójában csak egy válasz lehet. Az ok, amiért olyan sok számítógépes nyelv létezik:

Nem szeretjük őket.

Nos, ez talán túl erős kijelentés. Talán azt kellene mondanom:

Hollywoodban voltunk.
Redwoodban voltunk.
Átkeltünk az óceánon az aranykódért.
Elment az eszünk
Olyan finom vonal.
Ez arra késztet bennünket, hogy az arany kódot keressük.

És öregszünk.

Oké, talán beszélnem kellene a magam nevében... Nem akarsz csak rákiabálni Neil Youngra, hogy hagyja abba a panaszkodást, keressen egy kedves lányt, és éljen vele? Nem akartad elmondani neki, hogy hiábavaló az aranyszív keresése? Mondd, mit csinálna vele, ha megtalálná?

És mit kezdenénk egy ideális nyelvvel, ha megtalálnánk?

PDP-8 és FOCAL emulátorokat hoztunk létre a "Lunar Lander" lejátszására, amelyet egy középiskolás diák írt 1969-ben!

Ez az amit gondolok.

Dolgozd fel. Hagyd abba a keresést. Nincs tökéletes nyelv. Mindenfelé néztünk. Felülről és lentről néztünk. Ki-be néztünk.

Mindkét oldalról megvizsgáltuk a nyelveket.
Bent és ki
és még mindig így vagy úgy.
Ne felejtsük el, hogy ezek nyelvi illúziók.

Valójában semmit sem értünk a nyelvekhez...
… egyáltalán.

Igen, a mai egy szokatlan nap.

De ennek ellenére a lényeg:

Nincs szükségünk más nyelvre.
Nem kell tudnunk a hazavezető utat.
Csak annyit akarunk, hogy túllépjünk az életen.
SQL

Igen, furcsa nap.

Tehát itt van egy gondolat. Talán abba kell hagynunk az új nyelvek létrehozását, meg kell nyugodnunk, és ki kell választanunk egy-két igazán jó nyelvet. Ez nagyban megkönnyíti az életet, nem?

És ha kíváncsi lenne, a 76.43844461 nagyon jó 2.23 MPH-s landolást biztosít.

Forrás: will.com

Hozzászólás