My FeedDiscussionsHeadless CMS
New
Sign in
Log inSign up
Learn more about Hashnode Headless CMSHashnode Headless CMS
Collaborate seamlessly with Hashnode Headless CMS for Enterprise.
Upgrade ✨Learn more

What is a good build tool?

Mark's photo
Mark
·Sep 8, 2018

I'm especially looking for:

  • Compiled languages
  • Multiple target platforms (e.g. like Kotlin JVM and JS, or Rust/C++ binary and wasm)

I've tried some quite a bit (Make, SCons, Gradle) and others a little (Ant, Maven, some JS bundlers, and just writing a shell script) and the best of them are tolerable.

I'm asking because I'm working on a programming language. If I can re-use an existing one that'd be great, otherwise hopefully I can still learn from them.

I feel like a good build tool should:

  • Be very easy for simple projects
  • But still be pretty easy for complex projects, because who wants to spend time on build tools?
  • Be powerful for complex projects (at least support subprojects and multiple targets)
  • Give good error messages
  • Possibly integrate with package manager
  • Be fast!
  • Be multiplatform
  • Not require one to list all source files
  • Integrate with IDEs, though I guess that’s mostly on the IDEs

For example

  1. Should the package manager be integrated with the build tool?
  2. Do you think they should be declarative or more procedural?
  3. Should they be a separate language? Full-on programming language?
  4. Should one even try to make it work for multiple languages, or is that hopeless??
  5. How important are plugins?
  6. Which build systems are good examples?

Thank you for your input!