3 ms·
I agree that Bazel did pretty well with Starlark, but the reason that’s sane is because it’s not Python, though the syntax is similar. It avoids getting into tr
by skybrian 2y ago
I agree that Bazel did pretty well with Starlark, but the reason that’s sane is because it’s not Python, though the syntax is similar. It avoids getting into trouble with people using Python language features that would result in upgrade hell and annoy other programmers who aren’t Python experts.
(Though, debugging complicated Starlark code can still be difficult.)
So why not use Starlark? :)
- mrudolph22 2y agoJust wanted to mention that there are much better config languages than Starlark by now: CUE, Pkl, etc.
- skybrian 2y agoI was going to mention Cue, but I’ve only read about it, not used it, and couldn’t actually say whether it’s better.
- mrudolph22 2y agoI'm afraid that no current config language is an obvious fit for Mill. That's because Mill is fully reactive and doesn't distinguish between build configuration and execution by design.
- vamega 2y agoWhy do you call these other languages “better”? They’re different, but I’m not sure why either of the one’s you mentioned would be better for this use case.
- mrudolph22 2y agoModern config languages offer strong validation and advanced IDE support, which is essential for a great user experience. https://pkl-lang.org/intellij/current/highlights.html https://pkl-lang.org/intellij/current/highlights.html
- lihaoyi 2y agoStarlark is great, but so is Scala. People underestimate how big the ecosystem is even for a niche language like Scala: - Global publishing and distribution infrastructure - IDE support in multiple IDEs - A huge ecosystem of third party packages, both Scala and Java - An excellent Scala standard library and Java standard library - Good performance. - Tooling! Jprofiler is great. Others use Yourkit or JFR. - Mill leans havily on Scala's FP/OO hybrid style with types, while starlark provides none of that and is purely untyped procedural code