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
Hacker-News-Kommentare
.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.nil.