18 comments

  • h1fra26 days ago
    Love the idea, but I don&#x27;t think this &quot;built for [...] non-technical users&quot; works. All the examples were more confusing to me vs a regular programming language and definitely not accessible to non-technical users.<p>Also, why would I want to compile to multiple languages? If I&#x27;m building a no-code platform, I won&#x27;t bother supporting 3 different languages since I&#x27;m the only one seeing the code.
    • swrobel26 days ago
      Yeah, P30D as presumably intuitive to non-technical users has me chuckling<p>Also, knowing that TODAY &gt; signup + P30D transpiles to TODAY &gt; signup + 30.days in Ruby. Which one is more readable?
      • blambeau25 days ago
        Point taken. Will see what I can do.<p>Probably TODAY + Duration({ days: 30 }) would be a better example then.
      • ElectricalUnion26 days ago
        Is this even valid ruby? Doesn&#x27;t it need Rails-specific Active Support to work?
  • egonschiele26 days ago
    Maybe the most incredible part – did Claude write a recursive descent parser from scratch for this? <a href="https:&#x2F;&#x2F;github.com&#x2F;enspirit&#x2F;elo&#x2F;blob&#x2F;9f07fefcdf65c169089f123a2c0b684131b53dd7&#x2F;src&#x2F;parser.ts" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;enspirit&#x2F;elo&#x2F;blob&#x2F;9f07fefcdf65c169089f123...</a><p>Not that it&#x27;s super complex, but I&#x27;m surprised it didn&#x27;t pick up an npm package. I wrote tarsec[1] and have been eyeing ohmjs[2]. And of course nearley is a classic.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;egonSchiele&#x2F;tarsec" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;egonSchiele&#x2F;tarsec</a> [2] <a href="https:&#x2F;&#x2F;ohmjs.org" rel="nofollow">https:&#x2F;&#x2F;ohmjs.org</a> [3] <a href="https:&#x2F;&#x2F;nearley.js.org" rel="nofollow">https:&#x2F;&#x2F;nearley.js.org</a>
    • torginus25 days ago
      Recursive descent parsers are basically mechanical structures, <i>if</i> you get the grammar right (which encapsulates all the logic).<p>When I was a CS student, they seemed like magic to me as well, but later I got to revisit them for a project at work, and finally managed to understand the logic.<p>Imo, the biggest complexity in using them comes from how they handle operator precedence, with recursive nested expressions in the grammar, which I still don&#x27;t find intuitive at all.<p>If you decide to hand-roll your own parser&#x2F;syntax today, I recommend you look at Pratt-parsers, they are much nicer to write by hand. Modern languages (Rust, Go) , ironically are much simpler to parse, since they defined the syntax in such a way that they can be parsed unambigously by looking 1-2 tokens ahead.<p>And since all of them follow the same logic, AI has a ton of sources to learn from.<p>I&#x27;m also working on my programming language, and AI assistants have been able to generate these parsers for well over a year.
    • gatapia226 days ago
      That git commit is very impressive (for Claude)<p>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.
      • geoffschmidt26 days ago
        FWIW, at the bottom of the landing page they credit Claude for “every line of code, tests, and docs”
      • blambeau25 days ago
        Claude did, I swear<p>The parser was built gradually though, with logs of increments under automated tests.
  • bambax25 days ago
    SQL was also initially built for end users and not considered &quot;code&quot;.<p>I&#x27;m not sure we should continue to stack supposedly simple languages one on top of the other for ever. Why not learn SQL instead?
    • aerzen25 days ago
      Because we already have databases we have to query and they speak only a dialect of SQL. If there were a lower-level machine-friendly instruction set for databases, it should target that.
  • Levitating26 days ago
    Third example on the site does not in fact compile to SQL
    • blambeau25 days ago
      SQL does not support lambda functions.<p>I need to check what we will do in that case.
  • jbergstroem25 days ago
    I coincidentally worked on something similar but I kept closer to the SQL standard. It grew out of business cases where you don&#x27;t have strongly typed data to act on.<p>I more or less adopted the syntax from dumbql (<a href="https:&#x2F;&#x2F;github.com&#x2F;tomakado&#x2F;dumbql" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tomakado&#x2F;dumbql</a>) and started off with a peg parser using ohm.js. As I started benchmarking I realized how slow it was and started looking for &quot;fast paths&quot; using regex. I ultimately resorted to a recursive descent parser similar to Elo. At that stage I already had a lot of tests and api in place, so I was able to get a lot of help from Claude.<p>Website here: <a href="https:&#x2F;&#x2F;filtron.dev" rel="nofollow">https:&#x2F;&#x2F;filtron.dev</a>
    • blambeau25 days ago
      good to know. Should we join forces ?
  • jauntywundrkind26 days ago
    I really like this idea! I wish I knew other data expression engines for js.<p>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 &amp; processor and doesn&#x27;t cleanly map to something we&#x27;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.
    • blambeau25 days ago
      Check finitio.io<p>Might be an alternative with less complexity for a simple filtering use case.
  • aerzen25 days ago
    This is very similar to what I&#x27;m building: <a href="https:&#x2F;&#x2F;lutra-lang.org" rel="nofollow">https:&#x2F;&#x2F;lutra-lang.org</a><p>The base premise is the same: SQL is not a proper programming language and everyone knows it only because they have to. And I feel like everyone who knows SQL enough admits that, but still none of the 20+ attempts of a better language stuck on.<p>As someone would say: sad.
    • blambeau25 days ago
      Didn&#x27;t know about it, thanks @aerzen
  • throwaway13244825 days ago
    The notion that this is for non-technical people is... wild. Curious to know who they&#x27;ve spoken to?!
    • blambeau25 days ago
      We should write power users, maybe.<p>Peppol interconnecting No Code tools like Make and others
  • fastball26 days ago
    Targeting Python, Ruby, and <i>SQL</i> seems impossible if you want certain features.
  • digitaltrees25 days ago
    This looks amazing. We use Ruby, Javascript and SQL. I will try this out this week. Are you looking for contributors? What is your vision long term with this?
  • cjohnson31826 days ago
    What would I use this for? Everything in the examples is pretty easy to do in scripting languages like Python, JS, and Ruby.
    • digitaltrees25 days ago
      It would be pretty nice to write those simple things in one language if you have a ruby server, react front end, and postgres database. You could target different parts of the stack but think&#x2F;implement in one language. Seems nice to me.
  • NetOpWibby26 days ago
    This looks perfect for people who desire terseness above all. The examples make my head hurt.
  • _s_a_m_25 days ago
    can&#x27;t wait to never use this
  • cess1125 days ago
    Why would I teach this to someone instead of plain SQL?
    • _s_a_m_25 days ago
      If nothing is going on at work this allows you to work overtime to find compilation issues, can&#x27;t have enough redundant leaky abstractions in a project ..
  • tgv25 days ago
    The compilation example contains an error. You should ask Claude what it is, because clearly you didn&#x27;t find it yourself.
  • gzuuus24 days ago
    [dead]
  • timwalz25 days ago
    [flagged]