[{"data":1,"prerenderedAt":240},["ShallowReactive",2],{"project-48735097":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":35,"aspects":36,"strip":40,"post_text":42,"what":43,"said":84,"maker_in_thread":164,"shape":169,"grid":173,"attempts":201,"same_week":202,"maker_shows":232,"maker_hidden":233,"reader_version":234,"card":235},"48735097","BUSY","A statically typed, cross-platform, easily bootstrappable build system","title","Show HN: A statically typed, cross-platform, easily bootstrappable build system","https:\u002F\u002Fgithub.com\u002Frochus-keller\u002FBUSY\u002F","github.com","Rochus",1782836935,2026,46,15,1281,4366,30,"shown","dev_tools","build system","cli",[21,24,25,26,27],"cmake alternative","static typing","ninja","lua","curious",0.14,{"positive":31,"neutral":32,"mixed":33,"critical":34},3,5,0,2,10,{"idea":37,"docs":38,"design":39},{"positive":34,"critical":33},{"positive":33,"critical":33},{"positive":33,"critical":34},[31,33,32,32,31,33,31,33,33,32,33,41,31,41,31],1,null,{"problem":44,"audience":42,"pricing":42,"motivation":54,"time_to_build":42,"stack":58,"openness":81,"stage":82,"team_size":83},{"value":45,"source":46,"evidence":47},"Building large cross-platform C\u002FC++ projects with a simpler, statically typed build description","maker",[48,51],{"id":49,"by":11,"text":50},"48783990","Static typing is important when you have a large project. I spent much time with the Chromium source tree and its GN build system which is dynamically typed (like most build…",{"id":52,"by":11,"text":53},"48784010","I use it instead of qmake and cmake for all my projects since four years. It is most beneficial when used with large, standalone systems that must be built from the ground up for…",{"value":55,"source":46,"evidence":56},"Maker needed a build system for their LeanQt and LeanCreator projects over 1 MSLOC and found existing ones lacking",[57],{"id":49,"by":11,"text":50},[59,67,75],{"value":60,"source":61,"evidence":62},"C","commenter",[63],{"id":64,"by":65,"text":66},"48782303","lioeters","I like the focus on simplicity, staying with C and no other requirements, and the choice of Lua. I'm a casual user of CMake but not too enthused about it, so I'll give this a…",{"value":68,"source":61,"evidence":69},"Lua",[70,71],{"id":64,"by":65,"text":66},{"id":72,"by":73,"text":74},"48783565","kosolam","Looks like here lua vm is used as the basis for the project itself not as the language u write your builds with",{"value":76,"source":46,"evidence":77},"Ninja backend",[78],{"id":79,"by":11,"text":80},"48784019","I recently added a Ninja backend and a users guide and thought this might be helpful for a lot of people. It was pretty stable over the years. I have a few features on my todo…","open_source","launched","solo",{"praise":85,"objections":97,"requests":112,"questions":120,"alternatives":139},[86,90],{"value":87,"source":61,"evidence":88},"Simplicity and staying with C with no other requirements",[89],{"id":64,"by":65,"text":66},{"value":91,"source":46,"evidence":92},"Static typing helps reliability and catching errors in large builds",[93,94],{"id":49,"by":11,"text":50},{"id":95,"by":65,"text":96},"48785351","That makes sense, how larger projects benefit from static typing not only for the project itself but the build process. And how it helps with reliability and predictability…",[98,108],{"value":99,"source":61,"evidence":100},"Requires learning a project-specific build language",[101,105],{"id":102,"by":103,"text":104},"48782979","Panzerschrek","Using Lua is a fatal flaw. As a C++ programmer I don't want to learn yet another language for a build system.",{"id":106,"by":103,"text":107},"48783232","It's even worse. Learning Lua may be at least a little bit useful for other tasks. Learning some language specific for this tool is just waste of time.",{"value":109,"source":61,"evidence":110},"Unclear whether static typing matters for smaller projects",[111],{"id":64,"by":65,"text":66},[113],{"value":114,"source":61,"evidence":115},"Clearer documentation on getting started",[116],{"id":117,"by":118,"text":119},"48783023","skybrian","The build files aren’t written in Lua. It defines its own language. The user’s guide seems like the place to start:…",[121,132],{"value":122,"source":61,"evidence":123},"Why post it now when the project seems unchanged for years",[124,128],{"id":125,"by":126,"text":127},"48782312","drunken_thor","It seems like this was built years ago but only posted now. Why post it now? It doesn’t seem like it has changed much in 4 years so I can’t see that it matured or stabilized over…",{"id":129,"by":130,"text":131},"48782411","nine_k","> Why post it now? Apparently a explanatory document has been extended in a recent commit [1]. Maybe the project is waking up. [1]:…",{"value":133,"source":61,"evidence":134},"Why use a DSL instead of an existing programming language",[135],{"id":136,"by":137,"text":138},"48782306","xiaoyu2006","I always wonder why use a DSL while you can just borrow some existing PL?",[140,148,152,160],{"value":141,"source":61,"evidence":142},"CMake",[143,144],{"id":64,"by":65,"text":66},{"id":145,"by":146,"text":147},"48783244","yr_animesh","So it is an alternative for CMake build systems?? The idea is quite new to me, I have only used CMake to build my low latency systems project... Lets use this!!",{"value":149,"source":46,"evidence":150},"qmake",[151],{"id":52,"by":11,"text":53},{"value":153,"source":61,"evidence":154},"GN and Ninja",[155,156],{"id":49,"by":11,"text":50},{"id":157,"by":158,"text":159},"48782407","socalgal2","My experience with Scons tells me you do not want a PL. The problem with a PL is every programmer that touches it implemenents a new way to do something and then trying to…",{"value":161,"source":61,"evidence":162},"SCons",[163],{"id":157,"by":158,"text":159},{"comments":31,"answered":34,"key":165},[166,167,168],{"id":49,"text":50},{"id":79,"text":80},{"id":52,"text":53},{"commenters":35,"max_depth":170,"maker_replies":31,"first_comment_mins":171,"lifespan_hours":172},4,4957,93,[174,176,178,180,182,184,186,187,190,192,194,195,197,198,199],[64,33,31,175,65,33],"project\u002Fneutral\u002Fidea",[49,33,33,177,11,41],"maker\u002Fpositive\u002Fdesign",[95,33,32,179,65,33],"maker\u002Fpositive\u002Fidea",[125,41,32,181,126,33],"project\u002Fpositive\u002Fnone",[129,41,31,183,130,33],"project\u002Fneutral\u002Fdocs",[79,41,33,185,11,41],"maker\u002Fpositive\u002Fdocs",[136,34,31,175,137,33],[188,34,33,189,130,33],"48782397","other\u002Fneutral\u002Fidea",[157,34,33,191,158,33],"other\u002Fneutral\u002Fdesign",[145,31,32,193,146,33],"project\u002Fpositive\u002Fidea",[52,31,33,179,11,41],[102,170,41,196,103,33],"project\u002Fcritical\u002Fdesign",[117,170,31,183,118,33],[106,170,41,196,103,33],[72,170,31,200,73,33],"project\u002Fneutral\u002Fdesign",[],[203,208,213,218,223,227],{"id":204,"name":205,"points":206,"category":207},"48673671","Hacker News Trends",822,"data",{"id":209,"name":210,"points":211,"category":212},"48708182","Zanagrams",400,"games",{"id":214,"name":215,"points":216,"category":217},"48752905","worker-owned",398,"web_saas",{"id":219,"name":220,"points":221,"category":222},"48675435","OpenKnowledge",381,"productivity",{"id":224,"name":225,"points":226,"category":20},"48688700","Weave Router",216,{"id":228,"name":229,"points":230,"category":231},"48703412","Decomp Academy",197,"learning_science",7,false,"v2",{"id":236,"name":5,"line":6,"ai":233,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":237,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":238,"url":9,"mix":239,"praise":87,"objection":99,"sub":21},48735097,[21,24,25,26,27],"305530300501313",[31,32,33,34],1793991158221]