ergo
ergo copied to clipboard
Maintainers Needed
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?
- Cross-compile to other target languages
- Accessible to legal engineers
- Capture the semantic logic of a clause
- Run on-chain
- Run off-chain: e.g. AWS Lambda, Docker container
- Expression language for generating markup during drafting
- Safety (null-checking etc)
- Maintainable — e.g. a vibrant and active community
- 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
A document for discussion about the design goals for Ergo. Comments welcome. https://docs.google.com/document/d/1TqMxIuTbe21FIQiwUSpBUjfUyWXv1x-BE120QzkaoHQ/edit?usp=sharing
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/
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.
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.