Re:Launch HN: Moonrepo (YC W23) – Open-source build system
by mileswjohnson on Tuesday February 21, 2023 @03:53PM
(#34887096)
Can you speak to what kind of "functionality" you need a language for? Are you referring to Starlark-like files?
Re:Launch HN: Moonrepo (YC W23) – Open-source build system
by duped on Tuesday February 21, 2023 @04:32PM
(#34887736)
Turing completeness. No, I'm referring to using Python (waf, conan, etc), Javascript (nodejs scripts, esbuild, etc), and other "real" programming languages.
It's incredibly frustrating to have to configure a build with something as shitty as YAML. There's a tangible amount of money I have wasted in organizations on it.
A build is not actually a static configuration of another system. It's a program and deserves everything we need from programming languages.
Re:Launch HN: Moonrepo (YC W23) – Open-source build system
by nsm on Tuesday February 21, 2023 @10:39PM
(#34891349)
You actually don't want a real programming language because their unbounded loops and standard libraries are sources of non-determinism that can introduce incorrectness in your build. Bazel's correctness is highly contingent on the same set of inputs producing the same outputs, and granularly tracking dependencies, running commands in sandboxes AND having a restricted build language is a key part of it.
That said, Starlark is way closer to a real language (Python) than YAML.
Re:Launch HN: Moonrepo (YC W23) – Open-source build system
by umanwizard on Wednesday February 22, 2023 @12:08AM
(#34891892)
Unbounded loops have nothing to do with determinism. You can be deterministic and still Turing-complete.
Re:Launch HN: Moonrepo (YC W23) – Open-source build system
by duped on Wednesday February 22, 2023 @10:49AM
(#34897432)
No, I do actually want a real programming language. Determinism is orthogonal to this problem and it is actually outside the scope of whether you use a hobbled config language or a full scripting language to define your build - you need sandboxing to actually achieve it (like Nix).
The reason you might want a Turing-incomplete language is that you can prove the build terminates. However that's a lie, since you will always need to escape to running programs outside the language!
Re:Launch HN: Moonrepo (YC W23) – Open-source build system
by andrew_ on Tuesday February 21, 2023 @04:06PM
(#34887333)
Conversely, if moon required code instead of config, I wouldn't give it a second look. Ecosystem needs vary greatly.
Re:Launch HN: Moonrepo (YC W23) – Open-source build system
by Aeolun on Tuesday February 21, 2023 @05:50PM
(#34888834)
Yeah, I’m kind of aligned with this. Github workflow definitions would be much more pleasant to write if they were plain Typescript.
Feel like any data definition language eventually bolts on a shitty form of templates.
Re:Launch HN: Moonrepo (YC W23) – Open-source build system
by phist_mcgee on Tuesday February 21, 2023 @06:07PM
(#34889043)
And doesn't any imperative configuration atrophy toward spaghetti code?
I've tried both, and usually they're as bad as each other on complex projects.
What you will find is the vast majority of your configurations will invoke a make.sh script that does everything that you want to support in your system.