Skip to content
This repository has been archived by the owner on Sep 7, 2023. It is now read-only.

Maintainers Needed #876

Open
dselman opened this issue Jul 13, 2022 · 4 comments
Open

Maintainers Needed #876

dselman opened this issue Jul 13, 2022 · 4 comments

Comments

@dselman
Copy link
Contributor

dselman commented Jul 13, 2022

Discussion πŸ—£

The Ergo compiler is currently in need of a maintainer. This issue has been created to track/discuss the best strategy to move forward β€” nothing is off the table: finding new maintainers, or replacing Ergo with another language.

Context

@jeromesimeon has stepped away from the project.

Detailed Description

We need to find a new set of maintainers for Ergo, or replace Ergo with another language.

Requirements?

  1. Cross-compile to other target languages
  2. Accessible to legal engineers
  3. Capture the semantic logic of a clause
  4. Run on-chain
  5. Run off-chain: e.g. AWS Lambda, Docker container
  6. Expression language for generating markup during drafting
  7. Safety (null-checking etc)
  8. Maintainable β€” e.g. a vibrant and active community
  9. Can use Concerto types (or types generated from these...) as it's type system

https://popl22.sigplan.org/home/prolala-2022#event-overview
https://en.wikipedia.org/wiki/Hindley–Milner_type_system

Lua

https://en.wikipedia.org/wiki/Lua_(programming_language)
https://daurnimator.github.io/lua.vm.js/lua.vm.js.html
https://github.com/ceifa/wasmoon

AssemblyScript

https://www.assemblyscript.org

TypeScript

https://www.typescriptlang.org

Rust

https://www.rust-lang.org

WASM

https://github.com/appcypher/awesome-wasm-langs

FEEL (from DMN)

https://github.com/EdgeVerve/feel

@mttrbrts
Copy link
Member

A document for discussion about the design goals for Ergo. Comments welcome.
https://docs.google.com/document/d/1TqMxIuTbe21FIQiwUSpBUjfUyWXv1x-BE120QzkaoHQ/edit?usp=sharing

@shubhamkumar13
Copy link

shubhamkumar13 commented Jul 13, 2022

I also want to throw in Rescript as a language alternative because it's very similar to Javascript (Syntactically) but with the type safety of OCaml. This blog might be convincing : https://www.greyblake.com/blog/from-typescript-to-rescript/

@dselman dselman changed the title Maintainer Needed Maintainers Needed Jul 13, 2022
@clarus
Copy link

clarus commented Jul 19, 2022

Hello, we at Formal Land are willing to take care of this project. Our contact email is on our webpage. We primarily have experience in Coq and OCaml, plus other more mainstream languages like TypeScript. Thanks.

@dselman
Copy link
Contributor Author

dselman commented Aug 17, 2022

Ergo Futures

Martin
Big fan of Ergo
Reached out to OCaml / Coq community
Coq may be an issue
Could we replace Ergo with WASM? Use Rust or TS as the surface syntax?
May help adoption if we use a mainstream language

Shubham
Coq is the biggest issue

  • Purely functional
  • Limitations by design
  • Type system enforces safety
  • Impossible to find Coq developers
    Propose to rewrite the implementation in Rust.
    Can find developers
    Good type system
    Expressive
    Easy to write code, active foundation, good tutorials
    Tooling for parser / lexers are mature
    Porting code is probably not possible
    Keep the same DSL design?
    OCaml just added multicore support! Took 7 years.
    OCaml community is very small, focused on creating programming languages
    Rust community is larger, and an open/accessible place for beginners. Growing. Evangelism has been successful.
    Linux is taking Rust as its second language
    Managed by an independent foundation
    Targeted at database/blockchain/servers - an efficient server language
    Good VSCode IDE. Good tools. Compiler.

Tom
Lawyers won’t be able to program in Rust, whereas Ergo is more approachable.
Ergo DSL rewrite could be backwards compatible

Martin
Do we expect lawyers to write Ergo?
Simple logic for templates - handlebars
What about expressions in Ergo?

Dan
Could we reimplement Ergo DSL in Rust and use Rust modules for extensions?
Expression language for the templates different to runtime transaction processing?

Matt
Do we revise the design goals for logic for contracts?
Do we target business people writing / understanding the code?
Maintaining what we have currently is not sustainable. Finding another Coq maintainer is next impossible.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants