ergo icon indicating copy to clipboard operation
ergo copied to clipboard

Maintainers Needed

Open dselman opened this issue 1 year ago • 4 comments

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

dselman avatar Jul 13 '22 13:07 dselman

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

mttrbrts avatar Jul 13 '22 14:07 mttrbrts

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/

shubhamkumar13 avatar Jul 13 '22 15:07 shubhamkumar13

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.

clarus avatar Jul 19 '22 14:07 clarus

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.

dselman avatar Aug 17 '22 14:08 dselman