chore: some requested changes to comparsisons

This commit is contained in:
rvcas 2022-11-27 15:25:55 -05:00
parent 919eebbd97
commit 2d5ed86a68
No known key found for this signature in database
GPG Key ID: C09B64E263F7D68C
1 changed files with 21 additions and 3 deletions

View File

@ -35,6 +35,7 @@ main ones:
- [Helios](https://github.com/Hyperion-BT/Helios) - [Helios](https://github.com/Hyperion-BT/Helios)
- [Plutarch](https://github.com/Plutonomicon/plutarch-plutus) - [Plutarch](https://github.com/Plutonomicon/plutarch-plutus)
- [plu-ts](https://github.com/HarmonicLabs/plu-ts) - [plu-ts](https://github.com/HarmonicLabs/plu-ts)
- [Scalus](https://github.com/nau/scalus)
The creators of each of these projects all know each other and are in open communication with The creators of each of these projects all know each other and are in open communication with
each other. each other.
@ -52,9 +53,10 @@ is smart enough to know what the type of something is without you annotating it.
### Helios ### Helios
Helios is also a brand new language. One notable implementation difference Helios is also a brand new language. One notable implementation difference
is that it's compiler is written in a [single javascript file](https://github.com/Hyperion-BT/Helios/blob/main/helios.js). According to the creator, the intention of that was to make the compiler implementation easier to audit. is that it's compiler is written in a [single javascript file without dependencies](https://github.com/Hyperion-BT/Helios/blob/main/helios.js).
According to the creator, the intention of that was to make the compiler implementation easier to audit.
As a language, Helios is also purely functional but **does not** have type inference. According to the creator, this is to make contracts easier to audit. It also supports custom types similar to records and enums. As a language, Helios is also purely functional but has limited have type inference. It also supports custom types similar to records and enums.
Another interesting thing is that because the compiler is a single javascript file it's pretty easy to use Helios from within a javascript project. Another interesting thing is that because the compiler is a single javascript file it's pretty easy to use Helios from within a javascript project.
@ -67,7 +69,23 @@ higher-kinded types, etc.
### plu-ts ### plu-ts
plu-ts is **not** a new language. You can consider it an embedded DSL for creating smart contracts with Typescript. Because of this it's a bit closer to Plutarch conceptually than Aiken or Helios. plu-ts is **not** a new language. You can consider it an embedded DSL for creating smart contracts with Typescript.
Because of this it's a bit closer to Plutarch conceptually than Aiken or Helios.
It implements it's own type system and at compile time (js runtime) checks the types to be correct.
### Scalus
A Scala implementation of Plutus.
Scalus is a set of libraries to work with Cardano Untyped Plutus Core that works on both JVM and JavaScript. This includes:
- Untyped Plutus Core (UPLC) data types and functions
- Flat, CBOR, JSON serialization
- CEK UPLC evaluation machine including execution cost calculation
- UPLC parser and pretty printer
- Type safe UPLC expression builder, think of Plutarch
- Macros to generate UPLC code from Scala code, think of PlutusTx but simpler
## Which should you use? ## Which should you use?