2 Punkte von GN⁺ 2023-12-07 | 1 Kommentare | Auf WhatsApp teilen

Warum ist Jepsen in Clojure geschrieben?

  • Jepsen wurde entwickelt, um nebenläufige Systeme, vor allem Datenbanken, zu testen.
  • Clojures unveränderliche Datenstrukturen und die hervorragende Unterstützung für Nebenläufigkeit erleichtern das Schreiben korrekter nebenläufiger Programme.
  • Es wird Unterstützung für verschiedene Datenbank-Clients benötigt, und Clojure bietet gute Interoperabilität mit Java.

Wahl der Sprache für Tests

  • Für experimentelle Testarbeit wird eine knappe und flexible Sprache benötigt.
  • Clojure ist kompakt und bietet durch sein Makro-System syntaktische Flexibilität.
  • Für Tests, die mit komplexen Datenstrukturen arbeiten, eignen sich Clojures Datenstrukturen und Standardbibliotheksfunktionen sehr gut.

Leistung und Stabilität

  • Es wird eine Sprache mit „gut genug“ Leistung benötigt; Clojure ist im Vergleich zu Java relativ langsam, aber der Leistungsunterschied lässt sich bewältigen.
  • Die hervorragenden Profiling-Tools der JVM funktionieren gut mit Clojure.
  • Clojure zeigt sowohl durch sein JVM-Ziel als auch durch die Sprache selbst hohe Stabilität, mit wenig schneller Erosion bei Bibliotheken.

Nachteile und Entscheidung

  • Clojure hat die Nachteile einer kleinen Engineering-Community und eines fehlenden breit akzeptierten statischen Typsystems.
  • Da Jepsen von einem kleinen Team gepflegt und genutzt wird, sind diese Nachteile kein großes Problem.
  • Nach dem Prototyping von Jepsen in Clojure kam man zu dem Schluss, dass dies ein ziemlich guter Kompromiss war.

Meinung von GN⁺

  • Der wichtigste Grund, warum Jepsen in Clojure geschrieben wurde, ist, dass es dank Clojures unveränderlicher Datenstrukturen und starker Unterstützung für Nebenläufigkeit gut geeignet ist, komplexe nebenläufige Datenbanksysteme zu testen.
  • Dieser Artikel könnte für Menschen interessant sein, die sich für Software Engineering, insbesondere nebenläufige Programmierung und Datenbanksysteme, interessieren, und bietet ein praktisches Beispiel dafür, wie sich die Wahl einer bestimmten Programmiersprache auf reale Projekte auswirken kann.

1 Kommentare

 
GN⁺ 2023-12-07
Hacker-News-Kommentare
  • Ein Nutzer, der Clojure und ClojureScript seit 10 Jahren verwendet, hebt als Vorteile von Clojure hervor, dass Domänen-Code in .cljc-Dateien geschrieben und sowohl auf Server- als auch auf Client-Seite kompiliert werden kann, sowie die Performance und Wiederverwendbarkeit von Transducern und die Stabilität und langjährige Kompatibilität von Clojure.
  • Als Probleme des Clojure-Ökosystems wird genannt, dass Zugänglichkeit und Benutzerfreundlichkeit der Tools stark auseinandergehen; mit einfacheren Tools oder Frameworks würde Clojure wohl breiter angenommen werden.
  • Ein Entwickler, der seit 7 Jahren ausschließlich Clojure nutzt, nennt das Fehlen eines starken Typsystems als Hauptkritikpunkt und meint, dass Clojure Entwicklern, die Ruby oder Python mögen, mehr Ausdruckskraft bietet.
  • Ein Team, das mit Clojure und ClojureScript entwickelt, erwähnt die gute Zugänglichkeit von Clojure und die Vorteile des REPL-Workflows und sagt, dass Babashka/nbb für kleine Projekte oder Aufgaben nützlich ist.
  • Ein Clojure-Einsteiger empfindet die Fehlerzustände der Tools als schwer verständlich, schätzt aber die innovativen Ideen des Clojure-Ökosystems und nennt Verbesserungsbedarf bei der Klammer-Syntax und beim Umgang mit nil.
  • Es wird darauf hingewiesen, dass der beinahe dogmatische Wunsch der Clojure-Community nach der Kombination von Bibliotheken das Arbeitstempo echter Webentwicklungsteams verlangsamen kann, und es wird der Bedarf an benutzerfreundlicheren Web-Frameworks erwähnt.
  • Einerseits werden die kleine Engineering-Community von Clojure und das Fehlen eines statischen Typsystems als Nachteile gesehen, andererseits wird die Interoperabilität mit Java als Stärke hervorgehoben.
  • Ein Clojure-Nutzer weist auf die Fehlermeldungen und den Mangel an Type Hints hin und beklagt die Schwierigkeit groß angelegter Code-Refactorings.
  • Ein Kommentar empfiehlt eine interaktive Tutorial-Seite für Clojure-Einsteiger.
  • Ein Nutzer sagt, dass er Clojure zwar mag, aber gelernt habe, dass bei komplexen modernen Anwendungen letztlich das Ökosystem entscheidend ist.