<story><title>Show HN: jql – Easier jq Alternative with a Lispy Syntax Written in Go</title><url>https://github.com/cube2222/jql</url></story><parent_chain><item><author>cube2222</author><text>Hey, author here.
Christmas Eve, 22 pm, after having eaten with my family, I was browsing HN (because what else could you be doing then), and stumbled upon this comment: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=21860107&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=21860107&lt;/a&gt;&lt;p&gt;It inspired me to create an alternative to jq with more of a Lispy syntax, as I think the original is awesome but also fairly cryptic for anything more advanced than single field selection.&lt;p&gt;Overall it was a fun few-day project, and was also very educational in terms of writing a parser in Go. (I used goyacc before in the sql parser of OctoSQL[1], however, that one is copied from vitess, so I’ve never built one from scratch, only customised an existing one. It’s really pleasant overall and the code is very simple, so I encourage you to take a look[2].&lt;p&gt;I&amp;#x27;d love to hear any feedback, comments or potential improvements you can think of.&lt;p&gt;[1]:&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;cube2222&amp;#x2F;octosql&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;cube2222&amp;#x2F;octosql&lt;/a&gt;&lt;p&gt;[2]:&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;cube2222&amp;#x2F;jql&amp;#x2F;tree&amp;#x2F;master&amp;#x2F;jql&amp;#x2F;parser&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;cube2222&amp;#x2F;jql&amp;#x2F;tree&amp;#x2F;master&amp;#x2F;jql&amp;#x2F;parser&lt;/a&gt;</text></item></parent_chain><comment><author>ball_of_lint</author><text>To me, pipe feels far more intuitive than callbacks as a way to write complex queries. Using it right away might make the first few examples much easier to read.</text></comment>
<story><title>Show HN: jql – Easier jq Alternative with a Lispy Syntax Written in Go</title><url>https://github.com/cube2222/jql</url></story><parent_chain><item><author>cube2222</author><text>Hey, author here.
Christmas Eve, 22 pm, after having eaten with my family, I was browsing HN (because what else could you be doing then), and stumbled upon this comment: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=21860107&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=21860107&lt;/a&gt;&lt;p&gt;It inspired me to create an alternative to jq with more of a Lispy syntax, as I think the original is awesome but also fairly cryptic for anything more advanced than single field selection.&lt;p&gt;Overall it was a fun few-day project, and was also very educational in terms of writing a parser in Go. (I used goyacc before in the sql parser of OctoSQL[1], however, that one is copied from vitess, so I’ve never built one from scratch, only customised an existing one. It’s really pleasant overall and the code is very simple, so I encourage you to take a look[2].&lt;p&gt;I&amp;#x27;d love to hear any feedback, comments or potential improvements you can think of.&lt;p&gt;[1]:&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;cube2222&amp;#x2F;octosql&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;cube2222&amp;#x2F;octosql&lt;/a&gt;&lt;p&gt;[2]:&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;cube2222&amp;#x2F;jql&amp;#x2F;tree&amp;#x2F;master&amp;#x2F;jql&amp;#x2F;parser&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;cube2222&amp;#x2F;jql&amp;#x2F;tree&amp;#x2F;master&amp;#x2F;jql&amp;#x2F;parser&lt;/a&gt;</text></item></parent_chain><comment><author>yamafaktory</author><text>Hi, awesome work! Love the idea of using S-expression for the query syntax! Funny fact: we share the same project name - even though the core language and the query syntax are different - see &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;yamafaktory&amp;#x2F;jql&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;yamafaktory&amp;#x2F;jql&lt;/a&gt;.</text></comment>