2 Punkte von GN⁺ 2024-05-27 | 1 Kommentare | Auf WhatsApp teilen

Hurl, eine außergewöhnliche Sprache

Überblick

  • Hurl ist eine Sprache, die geschaffen wurde, um eine Sprache zu erforschen, die Ausnahmebehandlung als einzigen Kontrollfluss verwendet.
  • Die Sprache entstand aus Gesprächen zwischen Nicole Tietz-Sokolskaya und Freundinnen und Freunden des Recurse Center.
  • Diese Website bietet Dokumentation zur Nutzung von Hurl, Beispiele, einen Debugging-Leitfaden und ein FAQ.

Installation und Verwendung

  • Der Quellcode von Hurl ist im Hurl-Repository verfügbar.
  • Wenn du Bugs oder Fehler findest, sind E-Mail-Patches willkommen, allerdings müssen dafür sämtliche Rechte an dem Patch abgetreten werden.
  • Das dient dazu, Relicensing und kommerzielle Lizenzierung zu ermöglichen.

Syntax und Philosophie von Hurl

  • Hurl ist eine Sprache, die sich um Ausnahmebehandlung dreht.
  • Der Kontrollfluss wird ausschließlich über Ausnahmebehandlung umgesetzt.

Übliche Muster

  • Der Kontrollfluss wird über Ausnahmebehandlung gesteuert.
  • Traditionelle Kontrollstrukturen (z. B. if, for) werden nicht verwendet.

Standardbibliothek

  • Hurl bietet eine Standardbibliothek.
  • Sie enthält verschiedene Funktionen, die auf Ausnahmebehandlung basieren.

Beispiele

  • Es werden verschiedene Beispielprogramme bereitgestellt.
  • Anhand der Beispiele lässt sich die Verwendung von Hurl leicht verstehen.

Debugging und Fehler

  • Ein Debugging-Leitfaden wird bereitgestellt.
  • Er erklärt, wie Fehler effektiv behandelt werden.

FAQ

  • Es werden Antworten auf häufig gestellte Fragen bereitgestellt.
  • Behandelt werden allgemeine Probleme, die bei der Nutzung von Hurl auftreten können.

Lob für Hurl

  • Erika Rowland: "Dieses Monster ist wunderschön, und ich möchte es auf keinen Fall anfassen. Ich möchte nicht, dass mein Name damit in Verbindung gebracht wird."
  • Nicole Tietz-Sokolskaya: "Ich habe beschlossen, diese Sprache Wirklichkeit werden zu lassen. Es tut mir leid."
  • Mary McGrath: "🤮" (Ist das als Zitat verwendbar?)
  • nate (@nmoo@mas.to): "Zertifiziert abartig™!"

Quellcode

  • Der Quellcode von Hurl und dieser Website ist im Hurl-Repository verfügbar.
  • E-Mail-Patches sind willkommen, allerdings müssen sämtliche Rechte abgetreten werden.

Lizenz

  • Dieses Projekt kann unter einer der folgenden drei Lizenzen genutzt werden:
    • AGPL-3.0
    • GAL-1.0 (Gay Agenda License)
    • kommerzielle Lizenz
  • Du kannst eine dieser drei Lizenzen wählen.

Meinung von GN⁺

  • Auf Ausnahmebehandlung zentrierte Sprache: Hurl verfolgt einen einzigartigen Ansatz, bei dem Ausnahmebehandlung im Zentrum des Kontrollflusses steht und traditionelle Kontrollstrukturen ersetzt. Das verlangt Entwicklerinnen und Entwicklern eine neue Denkweise ab.
  • Didaktischer Wert: Hurl kann dabei helfen, die Bedeutung und Anwendung von Ausnahmebehandlung tiefer zu verstehen. Insbesondere zeigt es klar die Probleme, die entstehen können, wenn Ausnahmebehandlung falsch eingesetzt wird.
  • Frage der Praxistauglichkeit: Der Einsatz von Hurl in der Praxis kann herausfordernd sein. Für Entwicklerinnen und Entwickler, die an traditionelle Kontrollstrukturen gewöhnt sind, kann das eine hohe Hürde darstellen.
  • Zusammenarbeit mit der Community: Der Quellcode von Hurl wird als Open Source bereitgestellt und die Beteiligung der Community wird gefördert. Das kann sich positiv auf die Weiterentwicklung des Projekts und auf Bugfixes auswirken.
  • Lizenzwahl: Durch mehrere Lizenzoptionen wird den Nutzerinnen und Nutzern mehr Auswahl geboten. Das trägt zur Flexibilität des Projekts bei.

1 Kommentare

 
GN⁺ 2024-05-27
Hacker-News-Meinung

Zusammenfassung der Hacker-News-Kommentare

  • Bei der Entwicklung von Programmiersprachen ist es wichtig, Namespaces und Imports zu erzwingen

    • Das Erzwingen von Namespaces und Imports macht Code leichter verständlich.
    • Es ist besser, Nebenwirkungen auf der obersten Ebene nicht zuzulassen.
  • Meinungen zur Ausnahmebehandlung

    • Ausnahmebehandlung erschwert den Vertrag zwischen Aufrufer und Aufgerufenem.
    • Es ist besser, Ausnahmen wie in Go oder Rust über Rückgabewerte zu behandeln.
    • Es wäre gut, wenn eine IDE alle unbehandelten Ausnahmen dynamisch erkennen und die Stellen, an denen sie ausgelöst werden, leicht auffindbar machen könnte.
  • Beispiel für die Verwendung von toss

    • toss wird hauptsächlich verwendet, wenn eine Funktion mehrere Werte zurückgibt.
    • Außer in Fällen, in denen die Ausführung nicht sofort fortgesetzt wird, ist es nicht besonders nützlich.
  • Die Sprache Hurl und ihr Condition-System

    • Hurl ähnelt dem Condition-System von Smalltalk/CL.
    • Das Condition-System bietet mehrere Neustart-Optionen.
  • Verwendung der Domain-Endung .wtf

    • Die Welt wäre wohl besser, wenn mehr Dinge die Domain-Endung .wtf verwenden würden.
  • Sprachen, die algebraischen Effekten ähneln

    • Es ähnelt einer schwachen Form algebraischer Effekte, ist aber dennoch interessant.
  • Gemischte Gefühle zur Sprache Hurl

    • Ich mag die Sprache Hurl nicht, aber sie hat auch etwas leicht Elegantes.
    • Ich wünschte, es gäbe eine Syntax, die zwischen wiederaufnehmbaren und nicht wiederaufnehmbaren Ausnahmen unterscheidet.
    • Die Standardbibliothek hätte nicht durch Funktionen ersetzt werden sollen, die normale Werte zurückgeben.
  • Der Unterschied zwischen toss und hurl

    • hurl kann abgefangen werden, toss dagegen nicht.
    • Ich mache mir Sorgen, dass die Leute mich einen "tosser" nennen, wenn ich Hurl oft benutze.
  • Das Sprachkonstrukt toss

    • toss durchsucht den Stack nach einem Exception-Handler und setzt die Ausführung fort, als wäre nichts geschehen.
    • Zur Laufzeit kann zusätzliches Verhalten eingeschleust werden.
    • In objektorientiertem Code erfolgt Dependency Injection über Service-Konstruktoren, bei toss dagegen über einen toss-Handler.