Cover Image

In einer kürzlichen Enthüllung gab Cardano-Gründer Charles Hoskinson bekannt, dass er die Cardano-Blockchain-Plattform beinahe mit der Programmiersprache Clojure erstellt hätte.

In einer X-Diskussion gewährte der Cardano-Gründer kürzlich einen faszinierenden Einblick in den frühen Entscheidungsprozess, der zur Gründung von Cardano führte. Er enthüllte einen entscheidenden Moment: die Entscheidung zwischen der Verwendung von Clojure, einem dynamischen und funktionalen Lisp-Dialekt, und Haskell, einer statisch typisierten funktionalen Programmiersprache.

Die Entscheidung fiel jedoch letztlich in Richtung Haskell, beeinflusst durch das Potenzial von Cloud Haskell und die Hoffnung, Liquid Haskell und Agda nutzen zu können.

Ich hätte Cardano fast mit Clojure gebaut. Wir haben das vor Jahren sogar mit Cognitech besprochen. Ich habe mich wegen Cloud Haskell und auch wegen der Hoffnung, Liquid Haskell/Agda verwenden zu können, für Haskell statt Clojure entschieden. Im Nachhinein wäre es eine unglaubliche Reise gewesen, alles in Clojurescript zu schreiben …

– Charles Hoskinson (@IOHK_Charles), 30. Mai 2024

Hoskinson enthüllte dies in einem X-Gespräch mit Ktorz, dem technischen Direktor der Cardano Foundation, da beide Kenntnisse über verschiedene Programmiersprachen zeigten, mit einem besonderen Interesse an Lisp, von dem Clojure ein Dialekt ist.

Trotz seines anfänglichen Interesses an Clojure gab Hoskinson bekannt, dass er sich aufgrund von Cloud Haskell und der Hoffnung, Liquid Haskell/Agda verwenden zu können, für Haskell gegenüber Clojure entschieden habe. Cloud Haskell bietet ein verteiltes Computerframework, das sich gut an die Anforderungen einer Blockchain-Plattform anpasst, während Liquid Haskell und Agda erweiterte Funktionen zur formalen Überprüfung und Sicherstellung der Codekorrektheit bieten.

Im Nachhinein denkt Hoskinson darüber nach, was für ein Weg möglich gewesen wäre, wenn Cardano mit Clojure entwickelt worden wäre. Er stellt sich ein Cardano vor, das vollständig auf Clojure basiert und ClojureScript für die clientseitige Entwicklung und ClojureSpec für Spezifikationen und Tests verwendet.

Karte

Hoskinsons Überlegungen sind nicht von Bedauern geprägt, sondern von einer nachdenklichen Betrachtung dessen, was hätte sein können. Dieser Weg, sinniert er, hätte eine „erstaunliche Reise“ sein können.

„Rückblickend wäre es eine unglaubliche Reise gewesen, alles in Cardano mit ClojureScript und ClojureSpec zu schreiben“, bemerkte Hoskinson.