Please describe your proposed solution.
Problem
Cardano ecosystem develops rapidly and offers many languages to write smart contracts. Currently, there is no clear non-opinionated comparison of these languages that will show how to achieve equivalent validators and compare the performance characteristics.
Solution
We will develop a comprehensive comparison test suite and benchmark for the onchain programming languages available in the Cardano ecosystem. It will enable developers to understand and evaluate the performance characteristics of different languages when choosing a language to write their DApps.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
Intended Challenge – F10: Developer Ecosystem - The Evolution
Challenge Question – How do we equip and support developers with tools and working infrastructure? How do we make Cardano their first choice when it comes to building dApps, innovating and collaborating?
What does this proposal entail?
Our proposed solution involves the development of a specification for an onchain validator that can be implemented in multiple programming languages within the Cardano ecosystem, such as Plutarch, PlutusTx, Aiken, Opshin, and others. This specification will serve as a standardized guideline for writing validators, ensuring consistency across different language implementations.
To ensure the accuracy and equivalence of these language implementations, we will create a language-agnostic testing framework. This framework will enable developers to test their implementations against the specification and verify that the behavior and functionality of the validators are consistent across different languages. By providing a standardized testing environment, we can identify any discrepancies or inconsistencies in the implementations, facilitating the improvement and refinement of the languages.
In addition to testing for equivalence, our framework will also measure the performance characteristics of the different implementations. This includes assessing factors such as script size and execution units. This information will be invaluable for optimizing the performance of smart contracts and making informed decisions regarding language selection based on specific performance requirements.
How do you intend to measure the success of your project?
Cardano developers will have a reliable resource to compare the performance of different available tools and frameworks to develop Cardano dApps.
Please describe your plans to share the outputs and results of your project?
The repository with all implementations, test suite, and benchmarks will be Free and Open Source.