Sprachschichten

Hallo habr

Ich mache Sie auf eine Übersetzung des Artikels „ Language Layers “ von Robert C. Martin (Onkel Bob) aufmerksam.

Bild

Ich spiele das alte Lunar Lander-Spiel von 1969. Es wurde von Jim Storer, einem Schüler, geschrieben. Er schrieb es auf PDP-8 in FOCAL. So sieht das Programm aus:

Bild

Und hier ist der Quellcode für FOCAL:

Bild

Jim Storer war ein ziemlich talentierter Schüler. Schauen Sie sich diesen Code an. Er hat dort sehr interessante Taylor-Ausdrücke.

Im Allgemeinen führe ich eine binäre Suche durch, um den Wert von K zu bestimmen, der, wenn er in Reihe verwendet wird, das Schiff idealerweise landet. Daher habe ich das Programm so geändert, dass es nur einen Wert annimmt, und es dann mehrmals angewendet, bis das Schiff landet oder abstürzt. Während ich dies schreibe, weiß ich, dass die Antwort zwischen 76.40625 und 76.4453125 liegt, und ich werde 76.4257813 versuchen. Ich beginne zu denken, dass mir die Zeit ausgehen wird, bevor ich die Antwort finde.

In der Zwischenzeit ist mir aufgefallen, dass ich dieses Programm auf dem PDP-8- Emulator ausgeführt habe, den ich auf Lua für das iPad geschrieben habe.

Also lasst uns darüber nachdenken.

  • Das iPad verfügt über einen A8X- Chip, bei dem drei Kerne mit einer Gigahertz-Frequenz arbeiten.
  • Lua ist in C geschrieben und in A8X kompiliert.
  • Mein PDP8-Emulator ist in Lua mit dem CODEA- Paket aus dem Abschnitt Two Lives Left geschrieben.
  • FOCAL wurde Ende der 1960er Jahre auf PDP8 geschrieben.
  • Lunar Lander wurde in FOCAL geschrieben.

Das sind also A8X, C, Lua, PDP8 und FOCAL. Dies sind fünf verschiedene Sprachen. Fünf verschiedene Mechanismen, die der Maschine sagen, was zu tun ist; sie sind alle übereinander gestapelt!

Was ist das? Warum gibt es so viele Sprachen? Vergessen Sie in der Tat das iPad, PDP-8, C, Lua und alles andere. Warum gibt es so viele Sprachen?

## Warum gibt es so viele Sprachen?

Denken Sie darüber nach! Wie viele Programmiersprachen können Sie nennen? Lassen Sie mich hier eine kurze Liste geben:

  • FORTRAN
  • Algol
  • COBOL
  • SNOBOL
  • Lisp
  • Bcpl
  • B
  • C
  • SIMULA
  • SMALLTALK
  • Eiffel
  • C ++
  • Java
  • C #
  • Python
  • RUBIN
  • LOGO
  • LUA
  • Basic
  • PL / 1
  • JAVASCRIPT
  • GO
  • DART
  • PROLOG
  • FORTH
  • Schnell
  • ML
  • Ocam
  • OCAML
  • ADA
  • Erlang
  • Elixier
  • Fokus

Natürlich können Sie an andere denken, die ich nicht erwähnt habe. Die Frage ist, warum gibt es so viele? Es kann wirklich nur eine Antwort auf diese Frage geben. Der Grund, warum es so viele Computersprachen gibt:

Wir mögen sie nicht.

Nun, vielleicht ist das eine zu starke Aussage. Vielleicht sollte ich sagen:
Wir waren in Hollywood.
Wir waren in Redwood.
Wir überquerten den Ozean für den goldenen Code.
Wir waren verrückt
Das ist so eine feine Linie.
Dies lässt uns nach einem goldenen Code suchen.

Und wir werden alt.
Okay, vielleicht sollte ich für mich selbst sprechen ... Wolltest du nicht nur Neil Young anschreien, damit er aufhört, sich zu beschweren, ein nettes Mädchen findet und mit ihr zusammenlebt? Wolltest du ihm nicht sagen, dass die Suche nach einem goldenen Herzen sinnlos war? Sag mir, was würde er mit ihm machen, wenn er ihn finden würde?

Und was würden wir mit der perfekten Sprache machen, wenn wir sie finden würden?
Wir haben die PDP-8- und FOCAL-Emulatoren entwickelt, um den „Lunar Lander“ zu spielen, der 1969 von einem Schüler geschrieben wurde!
Hier ist was ich denke.

Beschäftige dich damit. Stoppen Sie die Suche. Es gibt keine perfekte Sprache. Wir haben überall gesucht. Wir haben oben und unten geschaut. Wir haben nach innen und außen geschaut.
Wir haben Sprachen von beiden Seiten betrachtet.
Innen und außen
und trotzdem.
Wir erinnern uns, dass dies sprachliche Illusionen sind.

In Sprachen verstehen wir wirklich nichts ...
... absolut.
Ja, heute ist ein ungewöhnlicher Tag.

Trotzdem lautet das Fazit:
Wir brauchen keine andere Sprache.
Wir müssen den Weg nach Hause nicht kennen.
Alles, was wir wollen, ist, über das Leben hinauszugehen.
SQL
Ja, ein seltsamer Tag.

Es gibt also einen Gedanken. Vielleicht müssen wir aufhören, neue Sprachen zu erschaffen, uns beruhigen und eine oder zwei auswählen, die wirklich gut sind. Es wird das Leben viel einfacher machen, oder?

Und wenn Sie interessiert sind, gibt Ihnen 76.43844461 eine ziemlich gute Passform bei 2,23 MPH.

Source: https://habr.com/ru/post/de476644/


All Articles