2 Punkte von GN⁺ 2024-04-22 | 1 Kommentare | Auf WhatsApp teilen

Die Programmiersprache Racket

  • Racket ist eine ausgereifte, praktische, erweiterbare, robuste und elegante Programmiersprache.
  • Racket ist eine Sprache für Language-Oriented Programming und hat unter anderem folgende Merkmale:
    • Unterstützung für Higher-Order Occurrence Typing
    • integrierte Scribble-Sprache zur Dokumentenerstellung
    • Unterstützung für Logikprogrammierung wie mit Datalog
    • ein leistungsfähiges Makrosystem, von kleinen bis großen Makros, einfacher Erstellung von DSLs und Unterstützung sämtlicher Syntaxformen
  • Das Racket-Ökosystem besteht aus Software, Tutorials und Dokumentation, Community, Büchern, Bildung, Merchandise und mehr.
  • Racket wurde von vielen Organisationen und Einzelpersonen gefördert, darunter die NSF, DARPA, FIPSE, die Exxon Foundation, Microsoft, Mozilla und Google.

Meinung von GN⁺

  • Einer der größten Vorteile von Racket ist die Unterstützung für Language-Oriented Programming. Dadurch lassen sich Domain-Specific Languages (DSLs) leicht erstellen, was zur Steigerung der Produktivität beitragen kann.
  • Aufgrund der Eigenschaften von Lisp-Sprachen werden jedoch viele Klammern verwendet, was für Einsteiger die Lesbarkeit beeinträchtigen kann. Es wäre möglicherweise gut, wie bei Clojure statt Klammern andere Syntaxformen einzuführen.
  • Tutorials und Dokumentation sind gut ausgebaut, was das Lernen erleichtert. Die Sprache wird auch häufig in der Ausbildung eingesetzt.
  • Sie kann zwar als allgemeine Programmiersprache verwendet werden, hat aber auch eine Spezialisierung auf die Erstellung von DSLs oder auf Bildungszwecke wie SICP. Für den Einsatz in echten Produktionsumgebungen scheinen Bibliotheken und Ähnliches noch etwas zu fehlen.
  • Für alle, die mit funktionalen Sprachen anfangen möchten, ist sie als Lernsprache empfehlenswert. Für die praktische Arbeit sollte man jedoch auch Haskell, OCaml und F# in Betracht ziehen.

1 Kommentare

 
GN⁺ 2024-04-22
Hacker-News-Kommentar

Zusammenfassung:

  • Die Kernfunktionen von Racket – Compiler, Paketverwaltungssystem, GUI-IDE, Emacs-Bindings usw. – sind attraktiv, aber an dem von einigen Informatikprofessoren geprägten Teil der Programmiersprachenforschung besteht wenig Interesse.
  • Anders als bei Python, wo man Code im Editor schreibt und in der Shell ausführt, muss man bei Racket mit einer langlebigen VM und einem REPL interagieren, was die Eingewöhnung an den Workflow erschwert.
  • Es ist nicht klar, wie sich Sprachen wie typed/racket, racket/gui und scribble/base in einer einzigen Anwendung integrieren lassen. Die Tutorial-Kapitel, die die einzelnen Sprachen erklären, werden ohne Bezug zueinander behandelt, was verwirrend ist.
  • Racket ist schnell und praktisch und verfügt über eine robuste Grundlage sowie eine hervorragende Concurrency-Story. Auch das integrierte Paket-Ökosystem und das ausgezeichnete Dokumentationssystem sind Pluspunkte. Die Abwärtskompatibilität ist besser als bei Python.
  • Es gibt Beispiele für praktische Projekte, die mit Racket entwickelt wurden, etwa eine E-Commerce-Website, Apps für iOS/macOS, ein Desktop-Client für Apache Kafka und ein #lang für Lua.
  • Hacker News selbst wurde ebenfalls in Arc geschrieben und läuft auf Racket.
  • Racket eignet sich gut für die Entwicklung von Binärprogrammen mit GUI sowie für das Parsen von JSON, XML usw.
  • Das Makro-System unterscheidet sich von Common Lisp und erfordert Eingewöhnung, ist aber gut für Metaprogrammierung geeignet.
  • Die akademische und reine Sicht auf Programmierung, die Sprachen aus der Lisp-Familie vermitteln, wirkt weit entfernt von praktischer App-Entwicklung.