There should be a substantial bar to meet before electing to write a new language. After investigating many simpler approaches and developing distributed ledgers & smart contracts ourselves, we’ve decided that this bar, for the use-case of smart contracts on public ledgers, is met — there are many unique, fundamentally difficult problems which can be convincingly solved at the language level, but only by designing & engineering a language and compiler stack from scratch.
This post, the second part of a two-part series, enumerates the various theoretical ingredients in Juvix that we think will enable it to meet these challenges, describes the current state of specification and implementation, and provides a list of further resources & instructions should you wish to learn more.
List of ingredients:
- Dependent types
- Usage quantisation
- Whole-program optimisation & efficient execution
- Resource verification
- Backend parameterisation
It also gives a glimpse on the timeline of the project, such as the first targeted backend being Michelson.
Find the full article here: https://research.cryptium.ch/the-why-of-juvix-ingredients-architecture/