Elo – A data expression language which compiles to JavaScript, Ruby, and SQL
74 points
4 days ago
| 7 comments
| elo-lang.org
| HN
h1fra
9 hours ago
[-]
Love the idea, but I don't think this "built for [...] non-technical users" works. All the examples were more confusing to me vs a regular programming language and definitely not accessible to non-technical users.

Also, why would I want to compile to multiple languages? If I'm building a no-code platform, I won't bother supporting 3 different languages since I'm the only one seeing the code.

reply
swrobel
7 hours ago
[-]
Yeah, P30D as presumably intuitive to non-technical users has me chuckling

Also, knowing that TODAY > signup + P30D transpiles to TODAY > signup + 30.days in Ruby. Which one is more readable?

reply
ElectricalUnion
4 hours ago
[-]
Is this even valid ruby? Doesn't it need Rails-specific Active Support to work?
reply
egonschiele
6 hours ago
[-]
Maybe the most incredible part – did Claude write a recursive descent parser from scratch for this? https://github.com/enspirit/elo/blob/9f07fefcdf65c169089f123...

Not that it's super complex, but I'm surprised it didn't pick up an npm package. I wrote tarsec[1] and have been eyeing ohmjs[2]. And of course nearley is a classic.

[1] https://github.com/egonSchiele/tarsec [2] https://ohmjs.org [3] https://nearley.js.org

reply
gatapia2
5 hours ago
[-]
That git commit is very impressive (for Claude)

Edit: Oh, I think the main dev is just using Claude to do the commits (I guess to summarise changes, etc). It does not mean that Claude wrote all that code.

reply
geoffschmidt
2 hours ago
[-]
FWIW, at the bottom of the landing page they credit Claude for “every line of code, tests, and docs”
reply
cjohnson318
2 hours ago
[-]
What would I use this for? Everything in the examples is pretty easy to do in scripting languages like Python, JS, and Ruby.
reply
Levitating
11 hours ago
[-]
Third example on the site does not in fact compile to SQL
reply
fastball
9 hours ago
[-]
Targeting Python, Ruby, and SQL seems impossible if you want certain features.
reply
NetOpWibby
6 hours ago
[-]
This looks perfect for people who desire terseness above all. The examples make my head hurt.
reply
jauntywundrkind
11 hours ago
[-]
I really like this idea! I wish I knew other data expression engines for js.

I feel like adding filtering languages into our http endpoints is one of those forever bespoke tasks. This is probably not the right form for tackling that problem, since it is a fairly complex query language & processor and doesn't cleanly map to something we'd use in a URL query string. But it makes me miss odata a little bit. And it makes me wish there were more visible popular options for data expression languages.

reply