[{"data":1,"prerenderedAt":458},["ShallowReactive",2],{"project-21981158":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":43,"post_text":45,"what":46,"said":79,"maker_in_thread":182,"shape":188,"grid":191,"attempts":421,"same_week":422,"maker_shows":306,"maker_hidden":450,"reader_version":451,"card":452},"21981158","jql","Easier jq Alternative with a Lispy Syntax Written in Go","title","Show HN: jql – Easier jq Alternative with a Lispy Syntax Written in Go","https:\u002F\u002Fgithub.com\u002Fcube2222\u002Fjql","github.com","cube2222",1578412813,2020,217,90,243,3028,9,"notable","dev_tools","json query tool","cli",[24,25,26,27],"jq alternative","json query","lisp syntax","json command line","mixed",0.023,{"positive":31,"neutral":32,"mixed":33,"critical":32},6,10,0,26,{"idea":36,"design":38,"docs":41},{"positive":37,"critical":33},3,{"positive":39,"critical":40},1,8,{"positive":39,"critical":42},2,[33,44,39,39,39,39,37,37,44,33,39,33,33,33,33,33,33,33,33,33,33,33,33,33,39,44,33,33,39,39,37,37,39,44,37,44,44,37,39,37],5,null,{"problem":47,"audience":45,"pricing":45,"motivation":54,"time_to_build":61,"stack":65,"openness":77,"stage":78,"team_size":78},{"value":48,"source":49,"evidence":50},"jq syntax is cryptic for anything beyond simple field selection","maker",[51],{"id":52,"by":11,"text":53},"21981161","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:…",{"value":55,"source":49,"evidence":56},"Jq syntax is cryptic; wanted a more readable, regular query language and a fun project",[57,58],{"id":52,"by":11,"text":53},{"id":59,"by":11,"text":60},"21982941","Sounds great! I'll make sure to check out out! My approach was caused by the fact that I wanted to have a minimal language which only contains what really is necessary and is as…",{"value":62,"source":49,"evidence":63},"a few days",[64],{"id":52,"by":11,"text":53},[66,73],{"value":67,"source":49,"evidence":68},"Go",[69,70],{"id":52,"by":11,"text":53},{"id":71,"by":11,"text":72},"21982972","Thanks! Yup, I felt the irony myself creating it, as I actually love clojure! But I'm most comfortable with Go, and it results with a single binary for any of the major platforms…",{"value":74,"source":49,"evidence":75},"goyacc parser generator",[76],{"id":52,"by":11,"text":53},"open_source","unknown",{"praise":80,"objections":106,"requests":124,"questions":140,"alternatives":149},[81,97],{"value":82,"source":83,"evidence":84},"Simpler and more readable than jq","commenter",[85,89,93],{"id":86,"by":87,"text":88},"21985192","spikepuppet","I'm super excited to sink my teeth into this. I usually have to use jq in intense bursts and no matter what i end up back in the manual because it just get's so damn confusing.…",{"id":90,"by":91,"text":92},"21987760","bloopernova","Good Lawd'amercy. jq and lisp? In all seriousness, thank you for writing this. I've had trouble wrapping my small brain around some of jq's more advanced syntax, so being able to…",{"id":94,"by":95,"text":96},"21985970","michaelmrose","Can you find many lisps or even any lisps that evaluate like that? A familiar syntax that actually works different from any lisp in existence may be more hindrance than help.",{"value":98,"source":49,"evidence":99},"Structure of queries matches JSON structure",[100,103],{"id":101,"by":11,"text":102},"21989251","I suppose to each their own. I like how the query matches the json structure well.",{"id":104,"by":11,"text":105},"21995110","This looks very readable and matches the structure of the json too. To me it's basically the same readability wise with proper indentation. Though with deeply nested data and a…",[107,117],{"value":108,"source":83,"evidence":109},"Lisp-style syntax is confusing; the examples read as non-Lispy",[110,114],{"id":111,"by":112,"text":113},"21983190","useragent86","I love the idea of a Lispy version of jq, but as a Lisper, the examples feel bewildering to me. The fact that (elem) takes an optional second argument, whose default value is…",{"id":115,"by":112,"text":116},"21983591","Regarding CPS: I think that expecting users to write queries in CPS is going to be very limiting. It's missing a big opportunity to use simple funcall and\u002For pipeline syntax,…",{"value":118,"source":83,"evidence":119},"Parentheses are hard to balance in a shell",[120],{"id":121,"by":122,"text":123},"21984029","dan-robertson","I tend end to struggle with this sort of lispy syntax as I use a regular shell (rather than one in emacs) which makes balancing parens hard, and the syntax is otherwise verbose.…",[125,132],{"value":126,"source":83,"evidence":127},"Automatically add closing parentheses",[128,129],{"id":121,"by":122,"text":123},{"id":130,"by":11,"text":131},"21992338","Very glad to hear that! Feel free to open issues if you have problems or feature requests! There's an issue for at least adding trailing and starting parentheses automatically,…",{"value":133,"source":83,"evidence":134},"Interactive mode or live preview",[135,139],{"id":136,"by":137,"text":138},"21983071","onionisafruit","Nice project. I'm a heavy jq user and still find myself regularly tinkering around with queries on https:\u002F\u002Fjqplay.org. It would be nice if there were a similar page for jql, even…",{"id":121,"by":122,"text":123},[141],{"value":142,"source":83,"evidence":143},"How does elem work when used with a function in place of a key",[144,148],{"id":145,"by":146,"text":147},"21984327","jsd1982","Looks good but there seems to be a missing explanation gap between switching from `(elem \"countries\")` and dropping the `elem`s to just `(\"countries\")`. Why is `elem` able to be…",{"id":111,"by":112,"text":113},[150,157,164,171,175],{"value":151,"source":83,"evidence":152},"jsonnet",[153],{"id":154,"by":155,"text":156},"21983717","EdSchouten","So I guess we all know https:\u002F\u002Fjsonnet.org, right? It's advertised as a data templating language. Interestingly enough, you can also use it as a querying tool. The first four…",{"value":158,"source":83,"evidence":159},"fx",[160],{"id":161,"by":162,"text":163},"21984791","pololee","I have used fx for a few days and enjoyed it. https:\u002F\u002Fgithub.com\u002Fantonmedv\u002Ffx Highlights - interactive mode - Use full power of JavaScript. $ curl ... | fx '.filter(x =>…",{"value":165,"source":83,"evidence":166},"jmespath",[167],{"id":168,"by":169,"text":170},"21984786","cookiecaper","To be frank the ascendance of jq has always seemed weird to me. There are many alternatives that felt much more natural, as this thread demonstrates. JSONata remains pretty…",{"value":172,"source":83,"evidence":173},"JSONata",[174],{"id":168,"by":169,"text":170},{"value":176,"source":83,"evidence":177},"rq",[178],{"id":179,"by":180,"text":181},"21983260","xvilka","There is more universal alternative to jq that supports also protobuf, msgpack, cbor, etc - rq[1]. [1] https:\u002F\u002Fgithub.com\u002Fdflemstr\u002Frq",{"comments":183,"answered":40,"key":184},32,[185,186,187],{"id":52,"text":53},{"id":59,"text":60},{"id":71,"text":72},{"commenters":189,"max_depth":18,"maker_replies":183,"first_comment_mins":33,"lifespan_hours":190},41,28,[192,194,198,200,204,206,208,211,214,217,220,222,223,225,228,230,231,233,236,238,241,244,247,250,251,253,256,260,263,267,270,274,277,280,284,287,290,292,294,295,297,300,303,305,307,311,314,316,319,322,325,327,331,334,335,337,339,341,343,345,347,350,354,357,359,362,364,365,368,371,373,375,377,379,380,383,386,388,392,394,396,398,401,403,407,411,413,415,417,419],[52,33,33,193,11,39],"maker\u002Fneutral\u002Fnone",[195,33,33,196,197,33],"21982889","commenter\u002Fneutral\u002Fidea","daxelrod",[59,33,33,199,11,39],"project\u002Fneutral\u002Fdesign",[201,33,44,202,203,33],"21982913","project\u002Fpositive\u002Fidea","downerending",[71,33,33,205,11,39],"project\u002Fneutral\u002Fidea",[111,33,39,207,112,33],"project\u002Fcritical\u002Fdesign",[209,33,33,210,11,39],"21983314","commenter\u002Fneutral\u002Fdesign",[212,33,39,213,112,33],"21983514","project\u002Fcritical\u002Fdocs",[215,33,33,216,11,39],"21983663","project\u002Fneutral\u002Fdocs",[218,33,39,219,112,33],"21983812","maker\u002Fcritical\u002Fdocs",[221,33,33,216,11,39],"21983849",[115,33,39,207,112,33],[224,33,33,199,11,39],"21983715",[226,33,37,205,227,33],"21983654","mst",[229,33,33,199,11,39],"21983758",[145,33,37,216,146,33],[232,33,33,216,11,39],"21984351",[234,33,37,199,235,33],"21988371","aasasd",[237,33,33,199,11,39],"21989170",[239,33,44,202,240,33],"21984734","yamafaktory",[242,33,33,243,11,39],"21984816","project\u002Fneutral\u002Fnone",[245,33,33,246,240,33],"21985836","other\u002Fneutral\u002Fperformance",[248,33,39,207,249,33],"21987202","ball_of_lint",[101,33,33,199,11,39],[154,39,33,252,155,33],"other\u002Fneutral\u002Fidea",[254,39,33,255,11,39],"21983905","other\u002Fpositive\u002Fidea",[257,39,33,258,259,33],"21984406","other\u002Fneutral\u002Fnone","hnlmorg",[261,39,33,258,262,33],"21985219","jaib8",[264,39,33,265,266,33],"21985356","other\u002Fpositive\u002Fdesign","FragenAntworten",[268,39,33,265,269,33],"21985974","edaemon",[271,39,33,272,273,33],"21985475","other\u002Fcritical\u002Fdocs","theamk",[275,39,33,258,276,33],"21986072","ljm",[278,39,33,258,279,33],"21986194","Maxious",[281,39,33,282,283,33],"21987511","other\u002Fmixed\u002Fdesign","paulddraper",[285,39,33,255,286,33],"21988104","krick",[288,39,33,255,289,33],"21989284","iudqnolq",[291,39,33,255,155,33],"21989464",[293,39,33,255,289,33],"21989644",[179,42,33,252,180,33],[296,42,33,258,11,39],"21983398",[298,42,33,299,122,33],"21983649","other\u002Fcritical\u002Fnone",[301,37,33,252,302,33],"21983296","mharju",[304,37,33,255,11,39],"21983423",[168,306,33,255,169,33],4,[308,306,33,309,310,33],"21985562","other\u002Fpositive\u002Fperformance","rajangdavis",[312,306,33,313,169,33],"21986767","other\u002Fcritical\u002Fdesign",[315,306,33,282,310,33],"21987636",[317,44,33,258,318,33],"21985222","fiatjaf",[320,44,33,321,91,33],"21988082","other\u002Fpositive\u002Fnone",[323,31,33,258,324,33],"21984945","preek",[326,31,33,243,11,39],"21984991",[328,329,33,258,330,33],"21985470",7,"murat124",[332,329,33,258,333,33],"21989390","cimnine",[161,40,33,255,162,33],[336,40,33,243,11,39],"21984863",[338,18,39,207,235,33],"21988573",[340,18,33,205,11,39],"21989194",[136,32,44,342,137,33],"project\u002Fpositive\u002Fnone",[344,32,33,243,11,39],"21983150",[346,32,33,258,324,33],"21984956",[348,32,33,349,11,39],"21984225","maker\u002Fneutral\u002Fdocs",[351,352,33,258,353,33],"21983984",11,"markandrewj",[355,352,33,356,11,39],"21984140","commenter\u002Fneutral\u002Fnone",[358,352,33,356,353,33],"21985007",[360,361,39,207,95,33],"21984188",12,[363,361,33,199,11,39],"21984293",[94,361,39,207,95,33],[366,361,37,199,367,33],"21986641","scarejunba",[369,361,37,199,370,33],"21987940","kazinator",[372,361,33,199,11,39],"21989295",[374,361,37,199,95,33],"21989417",[376,361,33,199,11,39],"21989467",[378,361,39,207,95,33],"21994686",[104,361,33,210,11,39],[381,361,37,199,382,33],"21988496","zeroimpl",[86,384,44,385,87,33],13,"project\u002Fpositive\u002Fdesign",[387,384,33,356,11,39],"21985273",[389,390,37,216,391,33],"21987930",14,"dfc",[393,390,33,216,11,39],"21989215",[90,395,44,202,91,33],15,[397,395,33,356,11,39],"21989237",[399,395,44,400,91,33],"21991455","project\u002Fpositive\u002Fdocs",[130,395,33,402,11,39],"project\u002Fneutral\u002Fexecution",[404,405,37,243,406,33],"21984154",16,"moondev",[408,409,33,258,410,33],"21983986",17,"ldd",[121,412,39,207,122,33],18,[414,412,33,199,11,39],"21984126",[416,412,37,243,122,33],"21984796",[418,412,33,356,11,39],"21984970",[420,412,33,216,11,39],"21984243",[],[423,428,433,437,441,445],{"id":424,"name":425,"points":426,"category":427},"21991382","Beef",533,"languages",{"id":429,"name":430,"points":431,"category":432},"21934247","Confusing Coleopterists",308,"ai",{"id":434,"name":435,"points":436,"category":427},"21951692","amazon-kinesis-video-streams-webrtc-sdk-c",251,{"id":438,"name":439,"points":440,"category":20},"21958986","Terrastruct",187,{"id":442,"name":443,"points":444,"category":427},"21948472","sscaffold-css",158,{"id":446,"name":447,"points":448,"category":449},"21932381","DiscoTask",126,"productivity",false,"v2",{"id":453,"name":5,"line":6,"ai":450,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":454,"top":18,"kw":455,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":456,"url":9,"mix":457,"praise":82,"objection":108,"sub":21},21981158,0.02,[24,25,26,27],"0511113350100000000000001500113315355313",[31,32,33,32],1794036585161]