1 Punkte von GN⁺ 2026-01-04 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Eine Programmiersprache, die Clojure-Syntax und LLVM-basierte native Performance kombiniert und nahtlose Interoperabilität mit C++ bietet
  • Behält die funktionalen und wertorientierten Eigenschaften von Clojure bei, nutzt aber LLVM als Host-Umgebung statt der JVM
  • Alle Datenstrukturen sind unveränderlich (persistent & immutable) und können direkt mit der C++-Standardbibliothek zusammenarbeiten
  • Derzeit in der Alpha-Phase; offizielle Dokumentation und Beispiele sind im jank book verfügbar
  • Ein Versuch, das Clojure-Ökosystem mit nativer C++-Performance zu verbinden, mit der Bedeutung, die Grenze zwischen funktionalen und Systemsprachen zu verkleinern

Überblick über jank

  • jank ist eine LLVM-gehostete Sprache, die auf Syntax und Philosophie von Clojure basiert
    • Sie basiert auf LLVM statt auf der JVM und unterstützt Interoperabilität mit C++
    • Sie bewahrt die funktionalen, interaktiven und wertzentrierten Eigenschaften von Clojure
  • Ziel ist eine hohe Kompatibilität mit Clojure; so wie Clojure mit Java interagiert, integriert sich jank in C++
  • Derzeit wird es als Alpha-Version entwickelt; Details finden sich in der offiziellen Dokumentation

Sprachmerkmale

  • Alle eingebauten Datenstrukturen sind unveränderlich (persistent & immutable)
    • Beispiel: (def george {:name "George Clooney"})
  • Side Effects können bei Bedarf explizit ausgeführt werden
    • Beispiel: (defn say-hi [who] (println (str "Hi " (:name who) "!")) (assoc who :greeted? true))
  • Direkte Anbindung an die C++-Standardbibliothek möglich
    • Beispiel: (cpp/std.this_thread.sleep_for (cpp/std.chrono.milliseconds ms))
  • Bietet verschiedene Core-Funktionen für funktionale Datenverarbeitung
    • Beispiel: (apply + (distinct [12 8 12 16 8 6])) ; => 42

Entwicklung und Dokumentation

  • Offizielle Dokumentation: jank book
  • Das Projekt basiert auf LLVM 22 und ist mit aktuellen C++-Standards kompatibel
  • Unterstützt AOT-Kompilierung, GC-Profiling und CMake-Build-Optionen
  • Einschließlich Einrichtung für Nix-Umgebungen und automatisierte CI-Builds

Community und Sponsoring

  • Das Projekt kann über GitHub Sponsors unterstützt werden
  • Unterstützende Unternehmen und Einzelpersonen: Clojure Together, nubank, multiply.co, modulr-software u. a.
  • Community-Kanäle: Slack (Clojurians), Twitter

Verwandte Vorträge und Einführungen

  • Vortragsvideo von der Clojure Conj 2023
  • Sprachvorstellung in The REPL Interview und Compiler Spotlight
  • YouTube: Language Introduction-Video verfügbar

Zusammenfassung:
jank ist eine Sprache, die die funktionale Philosophie von Clojure in eine LLVM- und C++-native Umgebung überträgt und damit versucht, die Produktivität von Clojure mit der Performance von C++ zu verbinden. Sie befindet sich derzeit in der Alpha-Phase, bietet aber bereits eine neue integrierte Entwicklungserfahrung für Clojure-Entwickler und Systemprogrammierer.

Noch keine Kommentare.

Noch keine Kommentare.