But regardless, I think those kinds of build systems are just wrong. What I want from a build system is to hash the content of all the transitive inputs and look up if it exists or not in a registry.
The success and failure of Ninja (2020)
11–20 of 85 posts
Re: The success and failure of Ninja (2020)
#12Re: The success and failure of Ninja (2020)
#13> we talk about programming like it is about writing code, but the code ends up being less important than the architecture, and the architecture ends up being less important than social issues. A thousand times this! This puts into words something that's been lurking in the back of my mind for a very long time.
Re: The success and failure of Ninja (2020)
#14> we talk about programming like it is about writing code, but the code ends up being less important than the architecture, and the architecture ends up being less important than social issues. A thousand times this! This puts into words something that's been lurking in the back of my mind for a very long time.
> Organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations. — Melvin E. Conway, How Do Committees Invent?
Re: The success and failure of Ninja (2020)
#15> we talk about programming like it is about writing code, but the code ends up being less important than the architecture, and the architecture ends up being less important than social issues. A thousand times this! This puts into words something that's been lurking in the back of my mind for a very long time.
Strongly agree. Peopleware 1987 [1] > The first chapter of the book claims, "The major problems of our work are not so much technological as sociological in nature". The book approaches sociological or 'political' problems such as group chemistry and team jelling, "flow time" and quiet in the work environment, and the high cost of turnover [1] https://en.wikipedia.org/wiki/Peopleware:_Productive_Project...
I feel that the development of psychology and sociology has been lost on the workplace and it isn’t well applied. Executives want everyone to be widgets except themselves, even when study after study shows that for companies to perform optimally their workers must feel well compensated, well valued, balanced freedom in the workplace, chances for advancement etc.
In many respects you could apply psychology and sociology to how products should / could behave etc. as well, which I’m sure due to the monetary component some companies have taken seriously at least in some periods of their lifecycle, like Apple under Steve Jobs in his comeback
Re: The success and failure of Ninja (2020)
#16I switched to samurai for the few things I have that still used ninja; it's an improvement in every possible way. But regardless, I think those kinds of build systems are just wrong. What I want from a build system is to hash the content of all the transitive inputs and look up if it exists or not in a registry.
Re: The success and failure of Ninja (2020)
#17I thought this was going to be about people buying less air fryers.
Re: The success and failure of Ninja (2020)
#18I switched to samurai for the few things I have that still used ninja; it's an improvement in every possible way. But regardless, I think those kinds of build systems are just wrong. What I want from a build system is to hash the content of all the transitive inputs and look up if it exists or not in a registry.
That's called "ccache"
Good build systems have native support for these things.
Re: The success and failure of Ninja (2020)
#19I switched to samurai for the few things I have that still used ninja; it's an improvement in every possible way. But regardless, I think those kinds of build systems are just wrong. What I want from a build system is to hash the content of all the transitive inputs and look up if it exists or not in a registry.
I've built something similar, a Deno library called "TDAR"[1], and it works well, but it takes some work to wrap up all the command-line tools that expect to work in some mutable filesystem so that you can pretend you're calling pure functions.
[1] I haven't got around to pulling it out of the parent project[2], but I talked about it in this youtube video: https://youtu.be/sty29o8sUKI
[2] If you're interested in this kind of thing you could poke me to open up the source for that thing. togos zero zero at gee mail dot comb