Hej, Habr!
Jag presenterar för er översÀttningen av artikeln «» av Robert C. Martin (Onkel Bob).

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:

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

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, som jag skrev i Lua för iPad.
SÄ, okej, lÄt oss tÀnka pÄ detta.
- iPad har en chip , 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 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
