EYG's Evolution: From Experimental Playground to Open Source Language
#Dev

EYG's Evolution: From Experimental Playground to Open Source Language

Tech Essays Reporter
3 min read

After a year of experimentation and development, EYG has officially become open source with a focused direction on language specification and interpreter development, while exploring AI integration and multi-platform deployment.

It's been over a year since the last EYG update, and the project has undergone significant transformation during that time. Between taking a new job, organizing the first Gleam conference, and continuing to experiment with EYG, the language has evolved from a personal playground into a properly licensed open source project with a clearer vision.

The Open Source Transition

The most notable change is that EYG is now officially open source. While the source code has always been available and discussions about the work have been ongoing, the project previously lacked an explicit license. That has changed with the addition of an Apache 2.0 license in the LICENSE file, signaling openness to contributions and community involvement.

This transition came with a significant cleanup. The repository now contains much less code, but what remains is all Gleam. The initial repository includes a JSON specification for the language, along with a set of packages to build an interpreter that includes its own external effect implementations. These packages have been thoroughly tidied up with comprehensive tests, continuous integration setup, and documentation.

All other experimental code has been moved out of the main repository. Some of these experiments will return once they're cleaned up and documented, but the focus has shifted to the language specification and building a high-quality first interpreter. This represents a strategic pivot toward the aspects of EYG that most interest its creator.

Building an Editor for Large Programs

One of the longstanding goals for EYG has been creating an editor for large programs. The definition of "large" here is specific: programs that you want to split across multiple packages. While this item remains on the roadmap, substantial progress has been made.

The EYG structural editor already excels at navigating within a single package or module. The large editor extends this effectiveness across an entire workspace of multiple files. The key questions about how the editor should function have all been resolved, with only polishing remaining before it can be integrated into the open source codebase and deployed.

AI Integration and End User Programming

EYG has always aimed to be suitable for end user programming, but discussing this goal inevitably leads to questions about AI. While not a fan of "vibe" coding, the creator has experimented with using EYG code as a scripting environment for large language models. The managed effects in EYG provide a sense of security that arbitrary bash scripting doesn't offer - it's less powerful but significantly safer, a tradeoff that feels worthwhile.

These experiments with coding harnesses have highlighted how crucial the programming environment itself is. An LLM operating in a terminal environment can accomplish far more than one confined to a browser, underscoring the importance of EYG's design choices.

What's Next for EYG

The immediate next steps involve moving all remaining packages required by the editor into the new clean repository. The website will be built on this editor, with increased reliability as test coverage expands. Since EYG claims to run everywhere, ensuring this is true on the website is a priority.

What makes EYG distinctive is the simplicity of creating additional implementations. The language has already been run on Arduino, within Auth0 rules engines, in Nginx, in browsers, and on servers. The goal for this year is to make it easy for others to implement their own EYG interpreters, fostering an ecosystem of runtimes.

This represents a maturation of the project from experimental playground to a focused language specification with clear goals: building a solid interpreter foundation, creating effective tooling for large programs, and enabling a diverse ecosystem of implementations across different platforms and use cases.

For those interested in following EYG's development or contributing, the project is now properly licensed and organized, with a clear direction and active development. The journey from personal experimentation to open source language continues, with the community now invited to participate in shaping where EYG goes next.

Learn more about EYG's development and explore the open source repository to see the current state of the project.

Comments

Loading comments...