Sprachschichten

Hallo, Habr!

Ich präsentiere Ihnen die Übersetzung des Artikels „Language Layers“ von Robert C. Martin (Onkel Bob).

Sprachschichten
Ich verbringe Zeit damit, das alte Spiel „Lunar Lander“ aus dem Jahr 1969 zu spielen. Es wurde von Jim Storer, einem Mittelschüler, geschrieben. Er schrieb es auf einem PDP-8 in der Sprache FOCAL. So sieht das Programm aus:

Sprachschichten

Hier ist der Quellcode in FOCAL:

Sprachschichten

Jim Storer war ein ziemlich talentierter Mittelschüler. Schau dir diesen Code an. Er hat dort ziemlich interessante Taylor-Ausdrücke.

Also führe ich eine binäre Suche durch, um den Wert K zu bestimmen, der beim wiederholten Einsatz das Raumschiff perfekt landen lässt. Deshalb habe ich das Programm geändert, so dass es nur einen Wert annimmt, und ihn dann mehrmals anwendet, bis das Raumschiff landet oder abstürzt. Während ich das schreibe, weiß ich, dass die Antwort zwischen 76.40625 und 76.4453125 liegt, und ich werde 76.4257813 ausprobieren. Ich beginne zu denken, dass mir die Zeit ausgehen wird, bevor ich die Antwort finde.

In der Zwischenzeit kam mir der Gedanke, dass ich dieses Programm auf einem Emulator ausgeführt habe PDP-8, den ich in Lua für das iPad geschrieben habe.

Gut, lassen Sie uns darüber nachdenken.

  • Das iPad hat den Chip A8X, mit drei Kernen, die mit einer Frequenz von Gigahertz oder so ähnlich arbeiten.
  • Lua wurde in C geschrieben und in A8X kompiliert.
  • Mein PDP8 Emulator ist in Lua geschrieben und verwendet das Paket CODEA aus dem Abschnitt Two Lives Left.
  • FOCAL wurde Ende der 1960er Jahre auf PDP8 geschrieben.
  • Lunar Lander wurde in FOCAL geschrieben.

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

Was ist das? Warum gibt es so viele Sprachen? Tatsächlich, vergiss das iPad, PDP-8, C, Lua und all das andere. Warum so viele Sprachen?

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

Denk mal darüber nach! Wie viele Programmiersprachen kannst du nennen? Lass mich dir eine kleine Liste geben:

  • 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 kannst sicher auch an andere denken, die ich nicht erwähnt habe. Die Frage ist, warum gibt es so viele? Auf diese Frage gibt es tatsächlich nur eine Antwort: Der Grund, warum es so viele Programmiersprachen gibt:

Wir mögen sie nicht.

Nun, vielleicht ist das eine zu starke Aussage. Vielleicht sollte ich sagen:

Wir waren in Hollywood.
Wir waren im Redwood.
Wir haben den Ozean überquert für den goldenen Code.
Wir waren neben der Spur,
Es ist eine feine Linie.
Das zwingt uns, nach dem goldenen Code zu suchen.

Und wir werden älter.

Okay, vielleicht sollte ich für mich selbst sprechen… Hast du nicht einfach nur laut auf Neil Young schreien wollen, damit er aufhört zu jammern, ein nettes Mädchen findet und mit ihr lebt? Wolltest du ihm nicht sagen, dass die Suche nach dem goldenen Herzen vergeblich war? Sag ihm, was er damit gemacht hätte, wenn er es gefunden hätte?

Und was würden wir mit einer perfekten Sprache tun, wenn wir sie finden würden?

Wir haben PDP-8 und FOCAL Emulatoren erstellt, um das »Lunar Lander« zu spielen, das 1969 von einem Schüler geschrieben wurde!

Das denke ich.

Akzeptiere es. Hör auf zu suchen. Es gibt keine perfekte Sprache. Wir haben überall gesucht. Wir haben oben und unten geschaut. Wir haben innen und außen geschaut.

Wir haben die Sprachen von beiden Seiten betrachtet.
Von innen und außen
und immer noch irgendwie.
Wir erinnern uns, dass es sprachliche Illusionen sind.

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

Ja, heute ist ein ungewöhnlicher Tag.

Aber dennoch, das Wesentliche ist:

Wir brauchen keine andere Sprache.
Wir müssen den Weg nach Hause nicht wissen.
Alles, was wir wollen, ist, über das Leben hinauszugehen.
S.Q.L.

Ja, ein seltsamer Tag.

Also, es gibt da einen Gedanken. Vielleicht sollten wir aufhören, neue Sprachen zu entwickeln, und uns einfach auf ein oder zwei konzentrieren, die wirklich gut sind. Das würde das Leben erheblich einfacher machen, oder?

Und wenn Sie sich fragen, 76.43844461 gibt Ihnen eine ziemlich gute Landung bei 2,23 MPH.

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster