We can liken the software domain to international politics.
The state is the source of all good. Our state... All other states are "evil-doers". If you dare question dictates and policy decisions made by the central committee you are destined for exile; banishment.
The state is a work in progress. Put your grievances on the table. Let's work it out. Requires honesty and patience; hearing out what you might not want to hear; compromise.
We can pick from many different software projects to compare approaches to development. Here I'll go with Bytecode Alliance within the scope of Component Model development software and loopdive/js2 within the scope of AOT ECMAScript/TypeScript to WASM GC compilation.
This issue loopdive/js2#389 illustrates a lot of back and forth between maintainer and developer in the field. Testing; throwing out ideas; more testing; refinement.
This https://bytecodealliance.zulipchat.com/#narrow/channel/206238-general/topic/Embedding.20JavaScript.20into.20QuickJS.20before.20compiling.20to.20WASM/near/605933233 illustrates being set in stone; we are right; how dare you express scrutiny of our gear.
The former resulted in around 4 or 5 different ways to achieve the goal. All WASM binaries spit out, granted not Component Model type, under 1 MiB.
The latter still has one (1) way to achieve the goal. Still spitting out 13.4 MiB WASM binaries.
The former is still in active development.
The latter is still focused on one (1) way of doing things.
The former still enagges with the independent developer in the field regarding software concepts and approaches; including aspproaches that are not strictly within the original plans loopdive/js2#1298.
The latter banned me, the independent programmer/hacker, supposedly for my "tone" guest271314/banned#46.
There are a lot of ways to develop software. You can have an open mind, listen to scrutiny of your gear.
You can have a closed mind, hear but not listen to constructive feedback, and focus on the person rather than the technological point on the table.
I think the ultra-nationalist approach winds up being narrow-minded. You only listen to what central committee folks invested in their own ideas say.
The neo-liberal approach listens to all feedback, without getting feathers ruffled and converting scrutiny of the gear into imaginary personal affronts.
You can be a Henry McHackerson or a Stuffy McStufferson.
You can see this same kind of schism played out in projects that say something like, by any means necessary, versus,
no, we do things this way, always have, and maybe we might change this or that, maybe... Think Zig's anti-LLM policy
versus a library like loopdive/js (js2wasm). Each approach requires skill. You still gotta vet what some LLM spits
out as a human. Zig maintainers are like, nope, we want human talent without some program that we gotta filter out
nonsense from. Both approaches work. It's all about the temperment (and ego or non-ego) of the maintainers.
Just a brief write up I thought I'd cobble together while the fire is still hot re these observations.
Dictator or democracy. Republic or central committee. Honest vetting or closed-loop system without room for honest vetting.