SprÄkliga lager

Hej, Habr!

Jag presenterar för er översÀttningen av artikeln «Language Layers» av Robert C. Martin (Onkel Bob).

SprÄkliga lager
Jag tillbringar tid med att spela det gamla spelet «Lunar Lander» frÄn 1969. Det skrevs av Jim Storer, en gymnasieelev. Han skrev det pÄ PDP-8 med sprÄket FOCAL. SÄ hÀr ser programmet ut:

SprÄkliga lager

Och hÀr Àr kÀllkoden pÄ FOCAL:

SprÄkliga lager

Jim Storer var en rÀtt begÄvad gymnasieelev. Ta en titt pÄ den hÀr koden. Den innehÄller nÄgra ganska intressanta Tayloruttryck.

Generellt kör jag en binÀr sökning för att bestÀmma vÀrdet av K som perfektt skulle landa rymdskeppet. SÄ jag har Àndrat programmet sÄ att det bara tar ett vÀrde och sedan tillÀmpar det flera gÄnger tills skeppet landar eller kraschar. Just nu nÀr jag skriver detta vet jag att svaret ligger mellan 76.40625 och 76.4453125, sÄ jag kommer att prova 76.4257813. Jag börjar tÀnka att jag kommer att fÄ ont om tid innan jag hittar svaret.

Under tiden fick jag en tanke att jag körde det hÀr programmet pÄ en emulator, PDP-8som jag skrev i Lua för iPad.

SÄ, okej, lÄt oss tÀnka pÄ detta.

  • iPad har en chip A8X, med tre kĂ€rnor som arbetar pĂ„ en gigahertzfrekvens eller dĂ€r omkring.
  • Lua Ă€r skrivet i C och kompileras till A8X.
  • Min PDP8-emulator Ă€r skriven i Lua, med hjĂ€lp av paketet CODEA frĂ„n Two Lives Left.
  • FOCAL skrevs i slutet av 1960-talet pĂ„ PDP8.
  • Lunar Lander skrevs i FOCAL.

Det betyder att vi har A8X, C, Lua, PDP8 och FOCAL. Fem olika sprÄk. Fem olika mekanismer som talar om för maskinen vad den ska göra; alla staplade pÄ varandra!

Vad handlar detta om? Varför sÄ mÄnga sprÄk? Faktiskt, glöm bort iPad, PDP-8, C, Lua och allt annat. Varför sÄ mÄnga sprÄk?

##ĐŸĐŸŃ‡Đ”ĐŒŃƒ ŃŃƒŃ‰Đ”ŃŃ‚ĐČŃƒĐ”Ń‚ таĐș ĐŒĐœĐŸĐłĐŸ ŃĐ·Ń‹ĐșĐŸĐČ?

TÀnk pÄ det! Hur mÄnga programmeringssprÄk kan du nÀmna? HÀr, lÄt mig ge dig en liten lista:

  • 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

Du kan sÀkert tÀnka pÄ andra som jag inte nÀmnde. FrÄgan Àr, varför finns det sÄ mÄnga? Det finns faktiskt bara ett riktigt svar pÄ den frÄgan. Anledningen till att sÄ mÄnga datorsprÄk finns:

Vi gillar dem inte.

NÄvÀl, kanske Àr det ett för starkt uttalande. Kanske borde jag sÀga:

Vi var i Hollywood.
Vi var i Redwood.
Vi korsade oceanen för att hitta den gyllene koden.
Vi var vid vÄrt sinnestillstÄnd,
Det Àr en sÄ tunn grÀns.
Det fÄr oss att söka den gyllene koden.

Och vi blir gamla.

Okej, kanske jag borde tala för mig sjÀlv... Ville du inte bara skrika pÄ Neil Young att han skulle sluta klaga, hitta en söt flicka och leva med henne? Ville ni inte sÀga till honom att jakten pÄ det gyllene hjÀrtat var meningslös? SÀg mig, vad skulle han göra med det om han hittade det?

Och vad skulle vi göra med det perfekta sprÄket om vi hittade det?

Vi har skapat emulerare för PDP-8 och FOCAL för att spela » Lunar Lander», skriven av en gymnasieelev 1969!

HÀr Àr vad jag tÀnker.

Acceptera det. Sluta leta. Det finns inget perfekt sprÄk. Vi har letat överallt. Vi har tittat uppifrÄn och ner. Vi har tittat inÄt och utÄt.

Vi har tittat pÄ sprÄk frÄn bÄda sidor.
InifrÄn och ut
och fortfarande pÄ ett eller annat sÀtt.
Vi pÄminner oss sjÀlva att detta Àr sprÄkliga illusioner.

Vi förstĂ„r faktiskt ingenting om sprĂ„k


 alls.

Ja, idag Àr en ovanlig dag.

Men, trots det, poÀngen Àr:

Vi behöver inget annat sprÄk.
Vi behöver inte veta vÀgen hem.
Allt vi vill Àr att gÄ bortom livet.
S.Q.L.

Ja, en konstig dag.

SÄ, det finns en tanke. Kanske vi ska sluta skapa nya sprÄk och bara lugna ner oss och vÀlja ett eller tvÄ som verkligen Àr bra. Det skulle göra livet mycket enklare, eller hur?

Och om du Àr intresserad, 76.43844461 ger dig en ganska bra landning pÄ 2.23 MPH.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster