Sprachschichten

Hey Habr!

Ich mache Sie auf eine Übersetzung des Artikels „Sprachschichten» von Robert C. Martin (Onkel Bob).

Sprachschichten
Ich verbringe meine Zeit damit, ein altes Spiel namens Lunar Lander aus dem Jahr 1969 zu spielen. Es wurde von Jim Storer, einem High-School-Schüler, geschrieben. Er hat es auf einem PDP-8 in FOCAL geschrieben. So sieht das Programm aus:

Sprachschichten

Und hier ist der Quellcode für FOCAL:

Sprachschichten

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

Im Grunde führe ich eine binäre Suche durch, um den Wert von K zu bestimmen, der bei konsequenter Verwendung das Schiff perfekt landen lässt. Deshalb habe ich das Programm so geändert, dass es nur einen Wert akzeptiert und ihn dann mehrmals anwendet, 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 es mit 76.4257813 versuchen. Ich fange an zu glauben, dass mir die Zeit davonläuft, bis ich die Antwort finde.

Mittlerweile ist mir aufgefallen, dass ich dieses Programm auf einem Emulator ausgeführt habe PDP-8, der in Lua für das iPad schrieb.

Also, okay, lasst uns darüber nachdenken.

  • Das iPad hat einen Chip A8X, mit drei Kernen, die mit etwa Gigahertz laufen.
  • Lua ist in C geschrieben und lässt sich zu A8X kompilieren.
  • Mein PDP8-Emulator ist mit dem Paket in Lua geschrieben CODEA aus dem Abschnitt „Two Lives Left“.
  • FOCAL wurde Ende der 1960er Jahre auf einem PDP8 geschrieben.
  • Lunar Lander wurde in FOCAL geschrieben.

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

Was ist das? Warum gibt es so viele Sprachen? Vergessen Sie tatsächlich iPad, PDP-8, C, Lua und alles andere. Warum gibt es so viele Sprachen?

##Warum gibt es so viele Sprachen?

Denk darüber nach! Wie viele Programmiersprachen können Sie nennen? Hier möchte ich Ihnen eine kleine Liste geben:

  • FORTRAN
  • ALGOL
  • COBOL
  • SNOBOL
  • LISPELN
  • BCPL
  • B
  • C
  • SIMULA
  • SMALLTALK
  • EIFFEL
  • C + +
  • JAVA
  • C#
  • PYTHON
  • RUBIN
  • LOGO
  • MOON
  • BASIC
  • PL / 1
  • JAVA-SKRIPT
  • GO
  • PFEIL
  • PROLOG
  • WEITER
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLAN
  • ELIXIR
  • SCHWERPUNKT

Ihnen fallen natürlich auch andere ein, die ich nicht erwähnt habe. Die Frage ist, warum gibt es so viele davon? Auf diese Frage kann es eigentlich nur eine Antwort 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.
Für den goldenen Code haben wir den Ozean überquert.
Wir waren verrückt
Es ist so ein schmaler Grat.
Das lässt uns nach dem goldenen Code suchen.

Und wir werden alt.

Okay, vielleicht sollte ich für mich selbst sprechen ... Willst du Neil Young nicht einfach anschreien, er solle aufhören, sich zu beschweren und sich ein nettes Mädchen suchen und mit ihr zusammenleben? Wolltest du ihm nicht sagen, dass die Suche nach einem Herzen aus Gold vergeblich war? Sag mir, was würde er damit machen, wenn er es fände?

Und was würden wir mit einer idealen Sprache machen, wenn wir sie finden würden?

Wir haben PDP-8- und FOCAL-Emulatoren entwickelt, um „Lunar Lander“ zu spielen, das 1969 von einem Gymnasiasten geschrieben wurde!

Das ist was ich denke.

Komm damit klar. Hören Sie auf zu suchen. Es gibt keine perfekte Sprache. Wir haben überall gesucht. Wir haben von oben und unten geschaut. Wir schauten rein und raus.

Wir haben uns die Sprachen von beiden Seiten angeschaut.
Drinnen und Draußen
und tue es immer noch, auf die eine oder andere Weise.
Denken wir daran, dass es sich hierbei um sprachliche Illusionen handelt.

Wir verstehen wirklich nichts von Sprachen...
… überhaupt.

Ja, heute ist ein ungewöhnlicher Tag.

Aber dennoch ist der Punkt:

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, seltsamer Tag.

Hier ist also ein Gedanke. Vielleicht müssen wir aufhören, neue Sprachen zu entwickeln und uns einfach beruhigen und eine oder zwei auswählen, die wirklich gut sind. Das wird das Leben viel einfacher machen, nicht wahr?

Und falls Sie sich fragen: 76.43844461 bringt Ihnen eine ziemlich gute Landung mit 2.23 Meilen pro Stunde.

Source: habr.com

Kommentar hinzufügen