←back to thread

392 points mfiguiere | 3 comments | | HN request time: 0.824s | source
Show context
phendrenad2 ◴[] No.35474996[source]
> Build systems stand between a programmer and running their code, so anything we can do to make the experience quicker or more productive directly impacts how effective a developer can be.

How about doing away with the build system entirely? Build systems seem like something that shouldn't exist. When I create a new C# .NET app in Visual Studio 2019, what "build system" does it use? You might have an academic answer, but that's beside the point. It doesn't matter. It just builds. Optimizing a build system feels like a lack of vision, and getting stuck in a local maxima where you think you're being more productive, but you're not seeing the bigger picture of what could be possible.

replies(14): >>35475210 #>>35475243 #>>35475249 #>>35475260 #>>35475271 #>>35475272 #>>35475320 #>>35475645 #>>35476535 #>>35476550 #>>35477035 #>>35480031 #>>35485001 #>>35487462 #
0xcafefood ◴[] No.35475272[source]
I guess you could write machine code by hand if you don't want to build it. Otherwise, what specifically do you propose to do away with build systems?
replies(1): >>35476209 #
1. phendrenad2 ◴[] No.35476209[source]
Okay you got me, I don't want to get rid of build systems. I want to stop having to think about them, because it's a waste of my time.
replies(1): >>35477839 #
2. kristjansson ◴[] No.35477839[source]
I think across this thread you're thinking about the run-a-graph-of-tasks aspect of build systems. I'd agree with you that's mostly-uninteresting. However, that's also the least significant aspect of what these build systems do. Most of the work is _determining_ the graph tasks that need to be run, and therefore a lot of the differentiation is in the ability to write new rules to guide that process and in the engine driving it.
replies(1): >>35479406 #
3. phendrenad2 ◴[] No.35479406[source]
I think this is a case of YAGNI. Yes, there are cases where you have a big graph of sources and products and you can't plan up-front what you'll need. I.E. you're at a megacorp and your dependencies are created by some branch of the organization that is actively hostile to yours. I dunno. But I think that most people just don't have those problems.