
Eat your greens a philosophy for language design
EYG is a programming language with the goal of dramatically reducing complexity around software deployment and software dependencies.
To enable this programs need to be completely predictable in their behavior and EYG has several features to support this predictability.
- Managed effects, all program semantics are independent of the environment the program runs in. As well it is possible to statically analyze any effects a given program will rely on.
- Hash references of AST fragments. Programs always fully described there dependencies via these hashes.
- Closure serialization generation of program fragments which can be sent to other location. This allows static analysis with the type system to extend over multiple execution locations, for example a build machine and web server.
- A minimal AST, it should be easy to re-implement interpreters or compilers in the future to run EYG programs
- It excels at tierless programming, writing front and backend as a single program.
- It is compiled and interpreted, there is are Gleam/Go and JS interpreters and transpilers to JS and go.
- Algebraic effects fulfil the role of ffi.
Talk given at Functional conf 2025.
I'm building EYG an experiment in a building better languages and tools; for some measure of better.
All progress is reported in my irregular newsletter.