[HN Gopher] The success and failure of Ninja (2020)
___________________________________________________________________
The success and failure of Ninja (2020)
Author : quincepie
Score : 59 points
Date : 2024-11-28 20:21 UTC (2 hours ago)
(HTM) web link (neugierig.org)
(TXT) w3m dump (neugierig.org)
| dang wrote:
| Discussed at the time:
|
| _The Success and Failure of Ninja_ -
| https://news.ycombinator.com/item?id=23157783 - May 2020 (38
| comments)
|
| (Reposts are fine after a year or so! links to past threads are
| just to satisfy extra-curious readers)
| santoshalper wrote:
| Man, I was so afraid this was going to be about Fortnite. Turns
| out it was a fantastic read. I feel really sad but unsurprised
| about his description of what it's like to be an Open Source
| maintainer.
| willvarfar wrote:
| > 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.
| Swizec wrote:
| In my experience roughly 80% of technical issues are because 2
| people (or teams) didn't want to just sit down together and
| talk it out.
| nuclearnice3 wrote:
| 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...
| no_wizard wrote:
| I've been drumming this for so long now, even before I heard
| of (let alone read) this book.
|
| 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
| mihaaly wrote:
| Considering that programing and tools used for it are not for
| computers but humans, and that apart from most trivial things
| more than one people is necessary to make something that work
| on/with computer(s), it is no surprise that SE is much more
| social science than many would like to admit or feel
| comfortable with, over-emphasizing its natural science part to
| the level of failure eventually (on the product level aimed at
| addressing needs of the people). Probably because social
| sciences are very fluid and much less reliable than natuaral
| sciences, so we have an inner tendency avoiding the social bit,
| or handling it on a very primitive level? I do not know, this
| is a feeling. So much focus on atomic details of technology yet
| the group effort of the product is still rubbish too many
| times.
| IgorPartola wrote:
| This precisely describes why Google Glass failed.
| transpute wrote:
| https://en.wikipedia.org/wiki/Conway's_law
|
| _> 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?_
| einpoklum wrote:
| A bunch of mostly-independent comments:
|
| ### Statistics
|
| ninja has ~26 kloc, ~3,100 commits, and only a quarter of them by
| the original author (although by loc changed their weight is
| higher). Interesting!
|
| https://github.com/ninja-build/ninja/graphs/contributors
|
| _> users of ninja ... all Meson projects, which appears to
| increasingly be the build system used in the free software
| world;_
|
| So, AFAICT, that hasn't turned out to be the case.
|
| _> the code ends up being less important than the architecture,
| and the architecture ends up being less important than social
| issues._
|
| Well... sometimes. Other times, the fact that there's good code
| that does something goes a very long way, and people live with
| the architectural faults. And as for the social issues - they
| rarely stand in opposition to the code itself.
|
| _> Some pieces of Ninja took struggle to get to and then are
| obvious in retrospect. I think this is true of much of math_
|
| Yup. And the some of the rest of math becomes obvious when some
| re-derives it using alternative and more convenient/powerful
| techniques.
|
| _> fetching file status from Linux is extremely fast._
|
| It of course depends on what your definition of "fast" is. In the
| extremely-slow world of frequent system calls and file I/O, I
| guess one could say that.
|
| _> I think the reason so few succeed at this is that it 's just
| too tempting to mix the layers._
|
| As an author of a library that also focuses on being a "layer" of
| sorts (https://github.com/eyalroz/cuda-api-wrappers/), I struggle
| with this temptation a lot! Especially when, like the author
| says, the boundaries of the layers are not as clear as one might
| imagine.
|
| _> I strongly believe that iteration time has a huge impact on
| programmer satisfaction_
|
| I'm pretty certain that the vast majority developers perform 10x
| more incremental builds than full builds. So, not just
| satisfaction - it's just most of what we do. It's also those
| builds which we wait-out rather than possible go look for some
| distraction:
|
| https://xkcd.com/303/
|
| OTOH, the article doesn't mention interaction with build artifact
| caching schemes, which lessen the difference between building
| from scratch and building incrementally.
|
| _> Peter Collingbourne found Ninja and did the work to plug it
| into the much more popular CMake ... If anyone is responsible for
| making Ninja succeed out there in the real world, Peter is due
| the credit._
|
| It is so gratifying when a person you didn't know makes your
| software project that much more impactful! Makes you really feel
| optimistic again about humanity and socialism and stuff.
| a_t48 wrote:
| Im going to have to give your CUDA wrapper a look later. :)
| grobibi wrote:
| I thought this was going to be about people buying less air
| fryers.
| airstrike wrote:
| I thought of the smoothie blenders first too, but I can't see
| how they would ever have failed given how great they are. My
| life has changed since buying the first such blender about 4
| months ago
| mgaunard wrote:
| I 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.
| dima55 wrote:
| That's called "ccache"
| mgaunard wrote:
| ccache is just a hack to make traditional build systems less
| stupid.
|
| Good build systems have native support for these things.
___________________________________________________________________
(page generated 2024-11-28 23:00 UTC)