RIDE
An expression language for deciding whether a transaction is allowed and, in a dApp, for changing account state. Every script has a complexity cost the node computes at deployment, and scripts over the budget are rejected outright rather than at run time.
What that buys you is the absence of a whole class of failure. There is no gas to estimate and no out-of-gas halfway through a state change, because the cost of a script is a property known before it ever runs.
dApps: callable functions with their own state.
Verifiable randomness, protobuf, failed transactions recorded.
dApp-to-dApp invocation inside one transaction.
Not on mainnet. The running nodes do not know this feature.
You can confirm this yourself rather than taking it from a page: features 15 and 16 read ACTIVATED on the features table, and 17 is not in it.
The compiler is published to npm and compiled from Scala through Scala.js, so it runs in a browser with no server involved. That is unusual and worth using: you can compile and check a contract client-side without sending source anywhere.
npm i @decentralchain/ride-lang @decentralchain/ride-repl
On the JVM the same language is io.decentralchain:lang_3 on Maven Central, with lang-testkit_3 beside it for tests.
DecentralSwap is a constant-product AMM built from two RIDE contracts, both deployed on mainnet. If you want to see what a non-trivial RIDE system looks like in production rather than in an example, that is the one to read.
Next
DecentralSwap
The two contract addresses, what each does, and how to read them yourself.
Next
RIDE in the manual
Syntax, data types, functions, script types, structures and FOLD, section by section.