In a recent discussion on X, Cardano founder Charles Hoskinson revealed a critical moment in the early stages of building the Cardano blockchain platform. He shared that he nearly chose to use the Clojure programming language instead of Haskell. This insight into the decision-making process provides a fascinating glimpse into the development of one of the leading blockchain platforms.
The Programming Language Dilemma
Hoskinson elaborated on the deliberation between Clojure, a dynamic and functional Lisp dialect, and Haskell, a statically typed functional programming language. Ultimately, the choice leaned towards Haskell. The decision was significantly influenced by the potential of Cloud Haskell and the aspiration to leverage Liquid Haskell and Agda.
These tools offered advanced capabilities for formal verification and ensuring code correctness, aligning well with the needs of a robust blockchain platform. During the X conversation with Ktorz, the Cardano Foundation’s technical director, both Hoskinson and Ktorz displayed their extensive knowledge of various programming languages, with a notable interest in Lisp, of which Clojure is a dialect.
Related article: Charles Hoskinson Critiques Bitcoin’s Long-Term Viability
Cardano’s founder initial interest in Clojure was evident, but he chose Haskell due to the advantages provided by Cloud Haskell. Cloud Haskell offers a distributed computing framework, essential for the functioning of a blockchain platform.
Imagining An Alternative Path
Hoskinson did not express regret but rather a thoughtful consideration of the path not taken. He imagined a version of Cardano built entirely with Clojure, utilizing ClojureScript for client-side development and ClojureSpec for specifications and testing. He reflected on how this route could have been an “amazing journey.” The potential integration of these Clojure tools could have provided a different set of advantages and challenges for the development team.
Related article: Cardano Catches Investor’s Eye: ADA Price Movements Analyzed
In hindsight, Cardano’s founder mused about the journey that could have been. “Looking back, it would have been an amazing journey to write everything in Cardano using ClojureScript and ClojureSpec,” he remarked. This reflection underscores the importance of foundational decisions in the development of complex projects like Cardano.
By sharing this reflection, Hoskinson offers a unique perspective on the technical and strategic decisions that have shaped Cardano. This contemplation of the road not taken highlights the complexities and possibilities inherent in the early stages of groundbreaking technological developments.