The Aria Programming Language

Welcome to Aria!


Project maintained by arialang Hosted on GitHub Pages — Theme by mattgraham

What’s Next for Aria

I have had a lot of fun hacking on Aria. What started as a little tree-walking toy interpreter ended up a nice language (or at least so I think) and allowed me to meet some of the nicest folks I had the pleasure of working with!

However, I came to realize that, while the basic architecture of the project is reasonable, and the language it expresses is pleasant to use, the current codebase is not nearly as performant as it could or should be. I looked into ways to bridge that gap, and they would amount to what is essentially a wholesale rewrite of the virtual machine.

Chief among the issues:

All these things would amount to a complete rewrite of the Aria VM. If I am to rewrite the entire thing, I might as well embrace the challenge and imagine what a “new Aria” would look like. Are exceptions really carrying their weight? (probably not). Could I resolve imports at compile time to make more portable programs? (maybe yes, but what does it mean for attached native libraries?). Is my Python-like operator model the right one? (probably yes).

And then some more.

One of the early feedbacks I received when I posted Aria was, “ok technically nice, but what’s the pitch?”. I want to spend some more time on the pitch. I think there is a path for a scripting language that stays nimble and sheds ceremony without getting sloppy (“for system developers”). Maybe I will find that path. I think going back to basics is a good way to look for it.

Where does that leave the original Aria code? I plan to leave it right here where it is. If someone wants to embark on the journey to upgrade the VM, be my guest. I will gladly support that. Or if someone wants to take this codebase entirely somewhere else, then also so be it. I am happy to appoint a maintainer who has a vision for this program and wants to grow it.

I don’t have a firm timeline for “the new thing”, but if you want to stay in touch, follow me on GitHub to find out.