Hack is pretty awesome, but it's difficult to build from source and find doc on. (Like a lot of Meta stuff, it's not well abstracted and maintained for external consumption and it's missing pieces and support materials.) In a lot of ways, reminds me of other tools without nice build processes like nix, bazel, klee, perl's cpan, istio, and samurai (ninja build's twin). Downloading binaries from the internet maybe convenient but aren't suitable for all uses, esp. distro packaging.
Tools with nice build processes: golang, (free)nginx, beanstalkd, memcached, erlang, elixir, rust, uv, pipx, and pnpm. RPM packages.
Tools with okay build processes: gradle, gcc, clang/LLVM. cmake. DEB packaging. GNU's stuff is more-or-less consistent, but autotools (automake/autoconf/m4) configure scripts are sequential, slow, and pedantically redundant. Haskell is a pain to build from source, because like go, it requires bootstrapping... which is difficult on a new platform; PSA: please don't bootstrap languages without a maintained, functioning, widely-portable, alternative reference implementation.
Tools that need improvement: openssl's configure flags are poorly documented but they're better than they were, ruby and ruby native extensions. conan. A number of Apache's (mostly Java) projects are prone to enterprise overengineering, XML, excessive but outdated features, too many options, and lack of simplicity and sane defaults. JVM (Java and not) apps can be JITed fast, portably, and run securely, but.. there's a complexity management tax and gotchas overhead. Scala footgunned itself going corporate, but Clojure and Kotlin are decent.
Tools with nice build processes: golang, (free)nginx, beanstalkd, memcached, erlang, elixir, rust, uv, pipx, and pnpm. RPM packages.
Tools with okay build processes: gradle, gcc, clang/LLVM. cmake. DEB packaging. GNU's stuff is more-or-less consistent, but autotools (automake/autoconf/m4) configure scripts are sequential, slow, and pedantically redundant. Haskell is a pain to build from source, because like go, it requires bootstrapping... which is difficult on a new platform; PSA: please don't bootstrap languages without a maintained, functioning, widely-portable, alternative reference implementation.
Tools that need improvement: openssl's configure flags are poorly documented but they're better than they were, ruby and ruby native extensions. conan. A number of Apache's (mostly Java) projects are prone to enterprise overengineering, XML, excessive but outdated features, too many options, and lack of simplicity and sane defaults. JVM (Java and not) apps can be JITed fast, portably, and run securely, but.. there's a complexity management tax and gotchas overhead. Scala footgunned itself going corporate, but Clojure and Kotlin are decent.