Taallagen

Hallo, Habr!

Ik bied u de vertaling aan van het artikel «Taallagen» geschreven door Robert C. Martin (Uncle Bob).

Taallagen
Ik breng mijn tijd door met het spelen van een oud spel, «Lunar Lander», uit 1969. Het werd geschreven door Jim Storer, een middelbare scholier. Hij schreef het op een PDP-8 in de taal FOCAL. Hier is hoe het programma eruit ziet:

Taallagen

Hier is de broncode in FOCAL:

Taallagen

Jim Storer was een behoorlijk getalenteerde middelbare scholier. Kijk eens naar deze code. Hij bevat nogal interessante Taylor-expressies.

In wezen voer ik een binaire zoekopdracht uit om de waarde van K te bepalen die, door deze herhaaldelijk toe te passen, het schip perfect landt. Daarom heb ik het programma aangepast, zodat het slechts één waarde accepteert en deze meerdere keren toepast totdat het schip landt of neerstort. Terwijl ik dit schrijf, weet ik dat het antwoord ligt tussen 76.40625 en 76.4453125, en ik ga 76.4257813 proberen. Ik begin te denken dat ik geen tijd meer heb voordat ik het antwoord vind.

Intussen kwam het in me op dat ik dit programma op een emulator heb gedraaid PDP-8, die ik in Lua heb geschreven voor de iPad.

Dus, laten we daar eens over nadenken.

  • De iPad heeft een chip A8X, met drie cores die draaien op een frequentie van ongeveer een gigahertz.
  • Lua is geschreven in C en wordt gecompileerd naar A8X.
  • Mijn PDP8-emulator is geschreven in Lua, met behulp van het pakket CODEA uit de sectie Two Lives Left.
  • FOCAL werd eind jaren '60 geschreven op de PDP8.
  • Lunar Lander werd geschreven in FOCAL.

Dus, we hebben A8X, C, Lua, PDP8 en FOCAL. Dat zijn vijf verschillende talen. Vijf verschillende mechanismen die de machine vertellen wat te doen; allemaal over elkaar heen gelegd!

Wat is dit? Waarom zijn er zoveel talen? Eigenlijk, laat de iPad, PDP-8, C, Lua en al het andere maar zitten. Waarom zoveel talen?

##Почему существует так много языков?

Denk daar eens over na! Hoeveel programmeertalen kun je noemen? Kijk, laat me je een kleine lijst geven:

  • 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

Je kunt vast aan andere denken die ik niet heb genoemd. De vraag is, waarom zijn er zoveel? Voor deze vraag kan eigenlijk maar één antwoord zijn. De reden waarom er zoveel programmeertalen zijn:

We vinden ze niet leuk.

Nou, misschien is dat een te sterke bewering. Misschien moet ik zeggen:

We waren in Hollywood.
We waren in Redwood.
We zijn de oceaan overgestoken voor de gouden code.
We waren bij onze zinnen,
Het is zo'n dunne lijn.
Het dwingt ons om naar de gouden code te zoeken.

En we worden ouder.

Oké, misschien moet ik voor mezelf spreken… Wilde je niet gewoon schreeuwen naar Neil Young om te stoppen met klagen, een leuk meisje te vinden en met haar te leven? Wilde je hem niet vertellen dat zijn zoektocht naar een gouden hart zinloos was? Zeg je, wat zou hij ermee doen als hij het zou vinden?

En wat zouden we met de perfecte taal doen als we deze zouden vinden?

We hebben PDP-8 en FOCAL-emulators gemaakt om te spelen met 'Lunar Lander', dat geschreven is door een middelbare scholier in 1969!

Dit is wat ik denk.

Accepteer het. Stop met zoeken. Er is geen perfecte taal. We hebben overal gezocht. We keken omhoog en omlaag. We keken naar binnen en naar buiten.

We hebben naar de talen aan beide kanten gekeken.
Van binnen en van buiten
en nog steeds op de een of andere manier.
We herinneren ons dat dit taalkundige illusies zijn.

We begrijpen echt niets van talen…
… helemaal niet.

Ja, vandaag is een bijzondere dag.

Maar toch, de essentie is dit:

We hebben geen andere taal nodig.
We hoeven de weg naar huis niet te weten.
Alles wat we willen, is voorbij het leven komen.
S.Q.L.

Ja, een vreemde dag.

Dus, er is één gedachte. Misschien moeten we stoppen met het maken van nieuwe talen en gewoon kalm blijven en één of twee kiezen die echt goed zijn. Dat zou het leven veel gemakkelijker maken, nietwaar?

En als je het je afvraagt, 76.43844461 geeft je een redelijk goede landing op 2.23 MPH.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster