Discussion summary

A build system called BUSY uses a custom DSL instead of Lua or existing programming languages, aiming for cross-platform compatibility. The creator, Rochus, has used it for years with positive results, especially for large projects. Some users question the choice of a DSL over existing languages, citing complexity and maturity concerns.

What the discussion says

  • Rochus advocates for BUSY as a stable, cross-platform build system used for years.
  • Some users prefer traditional tools like CMake or qmake over BUSY.
  • Critics argue that a DSL may add unnecessary complexity and lack maturity.
  • Others mention that existing programming languages might be more flexible.
  • There is a debate about whether a custom DSL is beneficial compared to existing solutions.
“Using Lua is a fatal flaw. I don't want to learn yet another language.”
— Panzerschrek
“The build files aren’t written in Lua. It defines its own language.”
— skybrian

Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Using Lua is a fatal flaw. As a C++ programmer I don't want to learn yet another language for a build system.
  • 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!!
  • I always wonder why use a DSL while you can just borrow some existing PL?
  • 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 that time. I am sorry for my ignorance of c build systems, this very well might be in high use already. Either way, it looks useful and built by hand so good job! Looks great and I hope people find it useful!
  • 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 try. Honestly I don't know if static typing is that important for me in this particular use case. I may just rummage through the codebase to see if I can extract a few choice functionality.

Explore Birbla archives