Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plutus Multi-language support #21

Open
Benjmhart opened this issue Oct 2, 2022 · 5 comments
Open

Plutus Multi-language support #21

Benjmhart opened this issue Oct 2, 2022 · 5 comments
Milestone

Comments

@Benjmhart
Copy link
Collaborator

Benjmhart commented Oct 2, 2022

Plutus was originally released with PlutusTx as the default Haskell API for building plutus onchain scripts. other tools have quickly emerged for writing plutus without Haskell, either as a standalone language, or as an embedded DSL in mainstream programming languages. Additionally, other tools have arisen for building transactions offchain in multiple languages. A problem that then arises from this plethora of choice is sharing types and interfaces across languages for convenience, and in the case of Haskell alternatives, there has been compiler compatibility issues that can make certain alternatives harder to use.

Smart Contract Languages (Onchain Scripts)

Transaction Builder Toolkits (Offchain Code)

** known to be used in production, or have large plutus projects actively adopted for production purposes

Cardano has a flourishing polyglot suite of tools, however there are going to be a number of gaps when attempting to compose these individual tools into a full-fledged application:

  • type sharing between smart contract and Transaction builder layers
  • currently there is no known implementation of these tools for platforms that target mobile or gaming/metaverse technology. the best offering here is currently javascript, but it would be great to see similar tools for in C#, Dart, Golang, Swift, etc.
@Benjmhart Benjmhart changed the title Plutus Multi-language support: Plutus Multi-language support Oct 2, 2022
@Benjmhart
Copy link
Collaborator Author

Another key item is that all alternative languages utilize Untyped Plutus Core (UPLC) as the compilation target, so a strong suggestion to toolmakers is to allow for pluggable sourcemaps to better support alternative languages.

@hajola
Copy link

hajola commented Oct 4, 2022

For the transaction builder list , I would add

@zliu41
Copy link
Member

zliu41 commented Oct 11, 2022

I find it interesting that few of these languages, if any, target PIR.

@Benjmhart
Copy link
Collaborator Author

@zliu41 as far as I know Plutarch is the only one that targets PIR - and mainly at auditor request.

@Benjmhart
Copy link
Collaborator Author

Note: this issue doesn't really have 'next steps' per se, however, it is intended as a resource for anyone looking for cardano support in their language, and for IOG to see that we're already in a flourishing multi-language environment.

@aleeusgr aleeusgr added this to the F12 milestone Dec 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

4 participants