Hei, Habr!
Jeg vil gjerne presentere oversettelsen av artikkelen «» av Robert C. Martin (Uncle Bob).

Jeg bruker tid på å spille det gamle spillet «Lunar Lander» fra 1969. Det ble skrevet av Jim Storer, en videregående elev. Han skrev det på PDP-8 i FOCAL. Her er hvordan programmet ser ut:

Her er kildekoden i FOCAL:

Jim Storer var en ganske talentfull videregående elev. Ta en titt på denne koden. Den har ganske interessante Taylor-uttrykk.
Generelt bruker jeg binær søking for å bestemme verdien K, som perfekt vil lande romskipet med gjentatt bruk. Så jeg har endret programmet slik at det bare tar ett verdi, og deretter brukes det flere ganger til skipet lander eller krasjer. Mens jeg skriver dette, vet jeg at svaret ligger mellom 76.40625 og 76.4453125, og jeg vil prøve 76.4257813. Jeg begynner å tenke at jeg går tom for tid før jeg finner svaret.
I mellomtiden kom jeg på at jeg kjørte dette programmet på en emulator , som jeg skrev i Lua for iPad.
Så, la oss tenke litt på dette.
- iPad har en chip , med tre kjerner som kjører på en gigahertz eller så.
- Lua er skrevet i C og kompileres til A8X.
- Min PDP8-emulator er skrevet i Lua, ved hjelp av pakken fra Two Lives Left.
- FOCAL ble skrevet på slutten av 1960-tallet på PDP8.
- Lunar Lander ble skrevet i FOCAL.
Så det er A8X, C, Lua, PDP8 og FOCAL. Fem ulike språk. Fem forskjellige mekanismer som forteller maskinen hva den skal gjøre; alle pakket oppå hverandre!
Hva er greia? Hvorfor så mange språk? Egentlig, glem iPad, PDP-8, C, Lua og alt annet. Hvorfor så mange språk?
##Почему существует так много языков?
Tenk på det! Hvor mange programmeringsspråk kan du navngi? La meg gi deg en liten liste:
- 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 sikkert tenke på andre som jeg ikke nevnte. Spørsmålet er, hvorfor er det så mange? Det kan faktisk bare være ett svar på dette spørsmålet. Grunnen til at det finnes så mange dataprogrammeringsspråk:
Vi liker dem ikke.
Vel, kanskje det er en for sterk påstand. Kanskje jeg burde si:
Vi var i Hollywood.
Vi var i Redwood.
Vi krysset havet for den gyldne koden.
Vi var i vårt sinn,
Det er en så tynn linje.
Dette får oss til å lete etter den gyldne koden.Og vi blir eldre.
Vel, kanskje jeg burde snakke for meg selv... Ville du ikke bare rope til Neil Young om å slutte å klage, finne seg en søt jente og bo med henne? Ville du ikke sagt til ham at jakten på det gyldne hjertet var bortkastet? Si meg, hva ville han gjort med det, hvis han fant det?
Og hva ville vi gjort med det perfekte språket hvis vi fant det?
Vi har laget emulatorer av PDP-8 og FOCAL for å spille «Lunar Lander», skrevet av en ungdomsskoleelev i 1969!
Dette er hva jeg tenker.
Godta det. Slutt å lete. Det finnes ikke noe perfekt språk. Vi har lett overalt. Vi har sett opp og ned. Vi har sett innover og utover.
Vi har sett på språk fra begge sider.
Innenfra og utenfra
og likevel på en eller annen måte.
Husk at dette er språklige illusjoner.Vi forstår faktisk ingenting om språk...
... i det hele tatt.
Ja, i dag er en spesiell dag.
Men uavhengig av det, poenget er:
Vi trenger ikke et annet språk.
Vi trenger ikke å vite veien hjem.
Alt vi ønsker er å komme ut av livet.
S.Q.L.
Ja, en rar dag.
Så, det er en tanke. Kanskje vi bør slutte å lage nye språk og bare roe oss ned og velge ett eller to som faktisk er gode. Det ville gjort livet mye enklere, ikke sant?
Og hvis du er interessert, gir 76.43844461 deg en ganske god landing på 2.23 MPH.
Kilde: habr.com
