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/