funded
HLabs: unembed plu-ts - the next aiken
Current Project Status
In Progress
Amount
Received
₳0
Amount
Requested
₳200,000
Percentage
Received
0.00%
Solution

We will “un-embed” plu-ts from typescript for it to be a proper compiled language. The goal still to be to use a syntax as similar as possible to typescript.

Problem

plu-ts is a solid alternative language to write contracts on cardano, however some of the principles it was built on are no longer relevant and needs to be updated to provide value to the ecosystem

Impact Alignment
Feasibility
Value for money

Team

1 member

HLabs: unembed plu-ts - the next aiken

Please describe your proposed solution

When plu-ts was originally ideated the landscape of languages was pretty limited: PlutusTX and Plutarch; the latter being the most efficient.

At the time, the goal was essentially to re-create something similar to Plutarch, but in a language more available to developers like Typescript.

Since then the smart contract development ecosystem improved drastically, especially thanks to aiken, a properly compiled DSL that developers could understand.

At the time of writing plu-ts has a solid compilation process and can generate contracts comparable to aiken in terms of efficiency and size.

However, being embedded into typescript, there is a limit on the improvement on Development Experience that can be done.

For this reason we propose to un-embed plu-ts and make it a proper language, like aiken is, leveraging all the underlying work that already exists for compilation and improving the "frontend" by which the developers will be able to use it.

Please define the positive impact your project will have on the wider Cardano community

There exist all kinds of developers around the world, each with their styles and biases, if we want Cardano to be the base of the global financial system, we need to attract developers globally.

While solutions like Aiken are great, they might not be appealing to the entirety of developers in existence (just look how many programming language exist, there is no "one fits all").

By doing so we can ensure that the development ecosystem can more easily attract incredible engineers looking for the typescript experience on-chain.

What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

Michele Nuzzi has been maintaining plu-ts for years now.

On top of it, Harmonic Laboratories is also involved in projects going from alternative clients to research for innovative patterns to use in DeFi, all requiring a profound low level understanding of how the Cardano Ecosystem works.

What are the key milestones you need to achieve in order to complete your project successfully?

Milestone 1: Tokenizer

Milestone 2: Lexer and compilation to AST.

Milestone 3: Compilation from AST to (already exsisting) IR

Milestone 4: Language Server Protocol (LSP) to integrate in the various IDEs for the best developer experience

Final Milestone: close out report and video

Please provide a cost breakdown of the proposed work and resources

Approximating 12 months of work, at a price of 0.40 ADA/USD,

with a monthly salary (including taxes and other costs) of ~6'700 USD / month

the total estimated budget would be of ~201000 ADA

No dependencies.

How does the cost of the project represent value for money for the Cardano ecosystem?

Typescript is among the most used languages by professional developers on earth.

If we are able to reuse the syntax of typescript for onchain languages we can greatly expand the market for developers, much more than what the current ecosystem can offer (yes, even counting aiken)

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00