Show HN: The Aria Programming Language
48 points| egranata_aria | 7 months ago |github.com
It comes with a familiar C-style syntax, and draws inspiration from a variety of languages. It has a small but usable standard library and strives to be a low-ceremony-get-stuff-done kind of language.
It is currently at version 0.9 and I would love feedback as I work towards getting it to 1.0.
thenulldevice|7 months ago
egranata_aria|6 months ago
I updated the website & README with more of a rationale/viewpoint of why Aria exists. Please take another look: https://github.com/egranata/aria/blob/master/README.md
mrbluecoat|7 months ago
account-5|7 months ago
What's the niche this fills? I came across roc-lang recently which seemed interesting too, again built with rust, and opinionated on certain things common in older languages.
It doesn't have to, and obviously it's your project, but what is this offering over other languages. Why would I reach for it?
egranata_aria|7 months ago
I have tried to fill the niche of "scratch my itches, please", which means Aria is intended to feel smooth, pleasant and simple to write in. There are still things I want to improve before calling it a 1.0, but the general theme is, a general purpose scripting language with just enough structure and as little ceremony as possible.
It may be that I struck the wrong balance somewhere (and I know of a few places, e.g. operator overloading - I plan to rewire the syntax), and that would be great to get eyes on and get feedback!
norman784|7 months ago
[0] https://gist.github.com/rtfeldman/77fb430ee57b42f5f2ca973a39...
ofalkaed|7 months ago
egranata_aria|7 months ago
With that said, this will work just fine and you wouldn't have to think about it too hard, if at all:
On the more general point, why this vs. anything else? That's a great question. I have tried to hit a balance that I think is pleasant to write code in (e.g. I like not having __init__.aria files around to define modules :-), and I like having proper enums, and so on...). I like to think someone would pick up Aria because it is a fun little language to try out and experiment with, not because it would change the world.Mileage may of course vary and you may think that balance is actually nowhere to be seen. That's great, hit me with it.
plainOldText|7 months ago
What’s under the hood though? What are some of the technical choices, performance characteristics and longer term goals?
derdi|7 months ago
So to a very rough first approximation, performance characteristics should be in CPython's ballpark.
egranata_aria|6 months ago
Goals are documented in a roadmap doc: https://egranata.github.io/aria/ROADMAP.html as well as issues on GitHub, and ideas are always very welcome, so please bring yours! I'd love to chat
I am not (yet) focused on performance, it's still at a point where the language and the library are changing. It runs decently well (as mentioned it's a stack based VM) such that you could actually use it to write some real programs. Good enough for a 0.9 I think
Technical choices, I have a few big ideas that stand behind the overall design: - easy to pick up, flexible, run with, write code, "pleasing to the eye" is what you called, that's #1; - a simple module system that works with you (with more improvements in the roadmap); - easier to reason about errors (lots of things are Maybe/Result-style enums vs. exceptions) - this is somewhat inspired by Midori where errors are classified according to whether you can and should handle them (with exceptions as a somewhat middle ground); - using Rust under the hood provides stronger memory safety guarantees than things written in C/C++ would out of the box (I have seen the occasional stack overflow error, and even that I would consider a bug, but no segfault core dump using Aria); - no inheritance, prefer composition, reuse via mixins which are first class in Aria - I found this works quite nicely (for example, I can provide all comparison operators based on one function + a mixin: https://github.com/egranata/aria/blob/master/lib/aria/orderi...)
Thanks for all the questions!
pshirshov|7 months ago
egranata_aria|6 months ago
drumnerd|7 months ago
egranata_aria|6 months ago
PontingClarke|7 months ago
[deleted]
efitz|7 months ago
[deleted]
voidUpdate|7 months ago
What do you mean, not that aria[1]?
[1]https://en.wikipedia.org/wiki/Aria