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
Hacker-News-Meinung
Zusammenfassung der Hacker-News-Kommentare
Bei der Entwicklung von Programmiersprachen ist es wichtig, Namespaces und Imports zu erzwingen
Meinungen zur Ausnahmebehandlung
Beispiel für die Verwendung von
tosstosswird hauptsächlich verwendet, wenn eine Funktion mehrere Werte zurückgibt.Die Sprache Hurl und ihr Condition-System
Verwendung der Domain-Endung
.wtf.wtfverwenden würden.Sprachen, die algebraischen Effekten ähneln
Gemischte Gefühle zur Sprache Hurl
Der Unterschied zwischen
tossundhurlhurlkann abgefangen werden,tossdagegen nicht.Das Sprachkonstrukt
tosstossdurchsucht den Stack nach einem Exception-Handler und setzt die Ausführung fort, als wäre nichts geschehen.tossdagegen über einentoss-Handler.