Please describe your proposed solution.
This project is officially supported by the MuesliSwap Team (@MuesliSwapTeam)
Proposal Background
We included a proposal for imperator in Fund 8. Yet, despite positive feedback and high CA scores, EternalSwap narrowly missed funding. Due to high support by the community, we are reapplying in Fund 9 with this proposal updated per community feedback. Changes, marked with
- Proposal: Increase focus on security and verification, add notes on Viper
- Budget Breakdown section: More detailed roadmap/budget breakdown, reduction by 16%
- Auditability: added clearly measureable goals/numbers
Imperator
This project is aimed at all developers, be they from a Smart Contract background on other Chains, on Cardano or even the average Software Engineer or Front-End developer.
Many developers want to join the Cardano community, but have trouble adjusting to the functional programming paradigma of Haskell. It is unintuitive for some, and mostly just very different from what they are used to. Therefore a lot of experience in development is also lost due to the need to change the programming style completely.
Imperator features a fully featured imperative language for Smart Contracts, that looks and feels like JavaScript or Solidity, widespread and popular imperative language.
The toolchain will include example Smart Contracts, detailed guides for compiling the Contracts and submitting validating transactions to them.
By feeling like more popular languages like JavaScript or Solidity, this project will attract a large amount of developers to expand the Cardano Ecosystem with creative and new contracts, the backbone of any DApp!
At the same time it is important to make sure smart contracts are verifiable. There exist many tools for analyzing imperative programming languages, such as Viper. One of the core features of the language should be that it supports translation into Viper or a similar automated verification tools and thus supports automated verification of its content. Integration of other tools such as Quickcheck are possible as well.
Please describe how your proposed solution will address the Challenge that you have submitted it in.
By feeling like more popular languages like JavaScript or Solidity, this project will attract a large amount of developers to expand the Cardano Ecosystem with creative and new contracts, the backbone of any DApp!
It makes it easy for newcomers and maybe even support experienced developers on Cardano to adapt to the validator style of smart contract and come up with new solutions. This reduces the overhead of learning a very special new language when onboarding on Cardano.
The project should be among the recommended ways to implement Cardano Smart Contracts and will be suggested as resource for existing and onboarding developers.
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
The main issue will be to make to reach out to developers and get their feedback on the design of the language. After all, it is most important for them to feel comfortable with it.
For this purpose, I will stay in close contact to existing developers, and try to reach out to many more, whether they are on Cardano or not. I am already closely collaborating with the team behind the first DEX on Cardano, MuesliSwap. This way, I get rich feedback on the direction and design of the language, such that it is usable and comfortable for developers from any background.