The zero-cost fallacy: open-source software in the agentic era(thoughtworks.com) |
The zero-cost fallacy: open-source software in the agentic era(thoughtworks.com) |
People are applying that label to anything that has the taint of AI on it. I get why.
I realize there are a lot of reasons why people hate AI, but one that is frequently cited is that it's dehumanizing. It's kind of ridiculous to see those same sort of people call something "slop" when I've put tens of hours into guiding the AI tooling. Talk about dehumanizing!
(Also, I'm never gonna give up my em dashes.)
I keep a directory of open-source alternatives and just in the past month, I've replaced applications I've used for years with open-source alternatives.
An OCD dream but you need to embrace it and configure it or you would get "AI slop".
And I’m testing Helium Browser[2]. It’s based on Chromium, but has changed a lot under the hood and I’ve been daily driving it.
Also replacing CapCut with OpenCut[3].
I’ve also completely ditched Codex CLI with Pi[4] and now am trying OMP[5].
0. https://github.com/ospfranco/sol
1. https://github.com/SuperCmdLabs/SuperCmd
2. https://github.com/imputnet/helium
3. https://github.com/OpenCut-app/OpenCut
SuperCMD
Zed
Typewhisper
But the flipside is of course users that are clueless won't now be stopped by "can't make a PR", they will throw prompt at AI and send it when the AI decides it's good enough
Both of these are true: we’re witnessing an unprecedented amount of slop, while also the tools get better and better.
So when talking about Open Source maintainer exhaustion, it’s because of the slop, not because of the great tooling.
AI is an amplifier, and in this case it amplifies the great asymmetry between contributor and maintainer.
Kind of like going to the app store and picking the app with the most downloads because the other option is looking at 400 different apps that may or may not do the same thing.
>Gell-Mann Amnesia effect
We're very familiar with this effect when it comes to the news, but since a lot of people are now looking at older information as some kind of escape it seems prudent to point out that old books themselves are of varying quality.
Moreso, how do you track said quality of old books in the modern age where their will be incentives to game the system (for example those that own publishing rights to said books). Some books will be high quality, but the information in them will be outdated due to changes in understanding. Other books might as well have been written by AI and transported to the past they hold so many bullshit claims.
The pareto distribution will cover the most popular books, but once you step into the long tail of research you've hit another no mans land of is it true or not.
I'm curious how you found my comment mentioning TypeWhisper.
I was also wondering about clarification about the apple speech services. Because in the app it says they are on device (I have an m series Mac latest version) but in keyboard settings in MacOS it says many things would be shared with Apple.
It's not a huge issue because I'll just use that other model, which is fantastic, but I'm curious.
The system is trying its best with all the AI slop. People can email the site admins if their posts are getting unjustly killed.
That is neither the incentive of AI companies nor the truth.
Availability of Open Source where stealing and illegal relicensing is not being litigated, is a perfect ecosystem for AI to work in.
Maintainer exhaustion is totally a secondary effect, not intended. The maintainer economy was already not working out, AI amplified the asymmetry at play.
They literally sell themselves to investors as the thing that will destroy everything people create. That is their bragging point. And they are using things people created to destroy them and their future work.
Those are their openly stated goals. Which they claimed to achieve 2 years ago.
Malice, incompetence, etc. My question is, how much does it matter _why_ the problem exists because of AI/is being exacerbated by AI?
Most people in the world don’t care how software comes into existence or what the source code looks like, and never did. Just like most people never cared how most anything else was made. We are seeing software turn from a handcrafted commodity to a mass produced product. The quality is getting better and the cost of production is getting cheaper and this is happening at an astonishing rate.
The world is changing. As much as you enjoyed lovingly crafting buggy whips; most people just want the car. It’s not cruelty; it’s that buggy whips were never the point.
The thing about FOSS that everyone keeps forgetting is that it sits outside the market economy.
We write FOSS code because we love doing it, and love giving it away. If nobody else uses my code, I don't care - I'll still write it and still release it. That's the way it's always been, and LLMs will not change this (quite the contrary - they make it easier to realise and maintain FOSS projects).
That didn’t happen on its own. It took a huge amount of marketing and lobbying to get where we are today.
One of my skills is graphics programming. A decade ago, a huge part of my job was writing special effect shaders for videogames -- kind of as a technical artist (although that wasn't my exact title). One of the things I saw coming was that shaders were being created by shader graphs, which allowed non-technical artists to do a lot of the same things. This was fine though! You know why? Because I could reskill into new things, and a lot of my old knowledge was still useful.
If these oligarchs get what they want, "the nerd reich" is I think we should start calling them (these people are insanely far right), there would be nothing to reskill into. It's not "buggy whips are gone so I should work on cars", it's "I guess I'm just living off disability checks now?" I don't know why anyone not directly affiliated with an AI company is ok with that! It's not "progress" to destroy the entire economy. I don't think they can ACCOMPLISH that, because frankly they're mostly incredibly stupid, but that's absolutely what they want.
People are thinking that AI will become better than human. It is easier to make humans worse than AI.
There has been ever increasing consolidation in the hardware world along with an ever growing acceptance of restrictions by the public 'for our safety'.
Everything that everyone who believed in free software worked towards is being destroyed. There is no way to fight back unless we figure out how to fab computers in garages. It was all for nothing. The future is bleak.
This is happening at the moment because of the supply chain risks of dependencies. But if all the open projects stop being maintained it'll just happen more.
Which is a shame, because the premise is intriguing. But it's pretty rude to expect every one of us to sift through ten pages of AI tells to reverse engineer the prompts that hold the information the author wanted to convey. As the saying goes, "if you couldn't be bothered to write it, why should I bother to read it?"
So I ask the Author: Please write this article for us using your own words, taking your own time to convey your thoughts. Submit it and let us read it.
I bet it will be better than this.
Software that is not open source, is proprietary software. Open weight models, are not open source. Binary blobs in a repo with an Apache license, is not open source.
Am I a retro-grouch? Probably. I guess it doesn't matter anymore what I think about it.
a deterministic build system for prompts is a called a compiler.
Since when? Open source projects have for decades offered paid support. Projects like Red Hat, Snort, Security Onion and others. I don't know anyone that has ever thought this. It's always been generally accepted that someone has to support it, either paid professional services or a full time employee with expertise.
Yes, it's always been accepted that someone has to support it, but someone else, not me. But these are important dependencies so I'm sure someone will support them.
It's such a common situation that there's a six year old xkcd about it that felt about ten years late at the time.
I've known many people who have thought that. None of them were programmers, and many of them were managers.
Agreed. Linux and GNU did and still do so well because of the GPL. Red Hat built a billion dollar business on GPL software. Tons of Linux developers are payed great salaries by competing corporations that otherwise collaborate on Linux, because none of them are allowed by the GPL to make proprietary changes to the code
Also, you can make propitiatory changes if it is contained within the business. Once you make them public is when there is an issue. But I doubt folks would be wanting to keep patching in their proprietary stuff with every new Linux kernel for instance.
The enthusiasm and optimistic view of open source and the future of software and craftsmanship. Looking at it in 2026.. incredibly sad.
Forget the bazaar. Back to the cathedral.
Trying to explain how the global economy and welfare of most of humanity is hugely dependent on free software production labor, without the advent of actually seeing a world where this actually happens, is just like when we try to explain something like consciousness. There is no explanation that makes sense. So predictions about new avenues of doom (like "MIT licensing was a huge mistake! we should have all been GPL!") similarly dont carry a lot of weight, because of course these predictions make perfect sense in the abstract, yet real world results don't line up at all.
Basically open source software is an emergent phenomenon, like consciousness or evolution, or perhaps even how very large language models suddenly seemed like real people. It's something that would never be predictable in its own absence, which means it will remain largely unpredictable how it will respond to ongoing changes such as "the open source authors and contributors now use programs themselves to produce more code".
Unfortunately (in my opinion) the rewrite it in Rust movement also abandoned non-permissive licensing, so over time a progressively larger body of work will fall to this.
You can also just set some LLM in a loop up with objdump and a C compiler and "copyright-wash" work-alikes of any proprietary software out there. Can't wait for someone to start burning tokens on doing it to baseband firmware and watch everyone who cheered on the non-GPL chardet (plus regulators) squirm.
The copyright and IP maximalism approaches aren't important to me. The world where everyone can have software written easily is much more appealing. The user freedom is better met.
I guess these are not the top items in the societal problems list, but they really don't help.
Not the worst thing society has done but it does end up positioning people as being convinced that they must be beholden to corporations wants.
Eh yes and no. The problem is I am not somebody who is comfortable building their own software, so I depend on the generous communities that create free, open source software I can reliably run on my computer. There are lots of people like me! So the benefit isn’t being able to adjust the software to my liking, it’s the knowledge that I can’t have the rug pulled out from under me as easily since I know in theory I can run the software locally, but realistically (hopefully!) somebody else is going to fork and maintain it.
I can't pin it down precisely, but my feeling is that it doesn't fully recognize the fundamental shift taking place. In a sense it's not radical enough, trying more to keep a system afloat whose foundation is being dismantled.
The forces that gave rise to open source will find a new way, because they are based on the nature of the human spirit. We just don't know what it will look like yet.
Claude! [0]
Here's my thoughts on this. It's back to open source, not open maintainer or open usage. I am producing lots of new code, i am publishing it. I am NOT interested in starting a project or having other people contribute. It's a cambrian explosion, the cost of adding features is basically zero. I'm going with "patching software is more common and we need tools around patching" rather than using other peoples stuff, just take what you want and fix it.
One stupid one is XRDP required some hack to go through VNC to connect to an existing session. I now have it built into xrdp and lets you pick the X11 session you on dial up and you're good to go. Why is this not a feature I dont know, but xrdp does it all now without vnc or anything. good stuff. i published it sure, i dont care if anyone uses it though.
Adding features was always the easy part. Maintaining the code OTOH is not going to be easier.
I see this with an experimental project I’m consciously vibecoding. The code base tends towards a spaghetti coded mess.
Of course you can put in some refactoring prompts and the AI will reorganize the code. But that makes it worse actually.
You have no mental model of the code and after a large refactoring even less.
(and so no need to worry too much either way as the issue will sort itself out?)
Either the LLM public capability is not sufficient to positively contribute, or it is.
If it is not sufficient to positively contribute, open source projects become drowned in low quality contributions.
If it is sufficient to positively contribute, we end up with multiple implementations of open source projects.
Actually maybe it only goes one way.
The commits are in my fork if anyone wants them but I can’t imagine why anyone would.
On the other hand a couple weeks ago I found an annoying bug in a coding agent project and had my agent fix it. It was a very small fix so I could tell it was correct with very little effort. I didn’t open a PR because that required a vouch, but I documented an issue (mostly on my own) and included the patch. I also referenced it in a downstream issue. Then I went to bed. The next morning, I saw a note from downstream thanking me - they’d updated to latest version and the issue was fixed.
The projects bot had reproduced the issue based on my description, tested the fix, validated it, and opened a PR. The maintainer merged it an hour later (it was two lines and obviously correct - easy call with the bots validation) and released it.
It felt like progress.
This recently happened with solvespace (I am a maintainer). Someone posted a link to a fork with a bunch of goodies added. I think they just had AI implement some big features that had already been discussed and were either rejected or far future/maybe. That fork still exists but looks to be dead, as there hasn't been any new development since it first appeared. I had a good look at all the commits but I don't see any that I really want to grab as-is. Some of it looked a bit promising though.
I recommend you at least make upstream aware of your fork if there is anything in it that they might want.
Implement rigid supply chain auditing.
Formalize an open source contribution and patronage budget.
Well none of these help my bottom line directly so my boss will not approve.
Hi claude
- They meet the localized needs of the original author or a certain subset of people. - They very likely will not be continuously maintained.
Sentences like "The licensing paradox: From freedom to exploitation" are starting to burn my eyes
Many have noted that LLMs are relatively good at writing code because they learned from all the code and other material, such as books, written before.
But let's say that we no longer produce the learning material, will LLMs be able to progress on their own or the slop they make (and read) will eventually lead to the decay of the models?
Will the models decay if left to their own devices?
This is provably false and wish that sentiment would die
Microsoft spends at least $600-$800 million on open source The make VS Code, .NET/C#, Edge, TypeScript. They provide free hosting, free CIs, free issues, discussions, free webpages (github). Google spends similar amounts on Chromium, Angular, Go, Flutter, Gemma, etc...
Meta spends similar amounts on React, PyTorch, Presto, Llama
Amazon sends 200-300 million on valkey, OpenSearch, FireCracker, and has dedicated engineers for Kubernetes, PostgreSQL, MariaDB, and Rust
Apple provide swift, WebKit, Clang/LLVM - there spending is also in the 100-200 million range.
That's on top of employees at almost all of those companies fixing bugs and providing patches for everything they use.
People make up the claims like the OP with zero actual evidence.
So: investment, not good will.
full of tells like overuse of "load-bearing"
The narrative is not friendly to communities of people owning complex software by sharing work now, but neither was it then. If you believe it was all wrong, an incorrect formulation, then disregard it and do not despair to move on. If you think ESR got something right that nobody can see anymore, then your hope should be rooted in the knowledge of how much less than what's possible we are currently achieving
So...the worse things are the better because we have more things to improve? Wouldn't it just be better if things weren't worse?
Can't entirely tell if this is supposed to be inspirational or contrarian (I think maybe the first one?), but every bit of shit in a situation being something we can look forward to overcoming by crawling through it isn't the most heart stirring way to look at it and also seems a bit dismissive without engaging with the actual subject.
Of course, he would tell you otherwise. He would say that the victory of the bazaar over the cathedral has only been accelerated by AI; indeed, he doesn't write code anymore and uses LLMs to develop everything. The scary part is, he might be right about that.
Open source is huge now but it has lost a lot of the enthusiasm. Much of it feels like just putting out code waiting to be absorbed by some larger parasitic entity that has a marketing team.
Unfortunately, corporate doesn't like the word ethics.
It was funny when GPL 3 came along and it completely leveled the playing field so that they couldn't just take code and not allow modified execution on their devices. Apple suck on GPL2 2008 release GNU tooling for over a decade until they could build alternatives. That they would rather reinvent the wheel than let people use their own software was wild!
Same thing happened when they stripped out the ethics from veganism to make 'plant based diets'. It worked for a while but without the ethics based foundations it just couldn't last.
You have at least two comments in this thread lauding the GPL and its effects. So aren't you advocating for the intellectual prison as well?
I could talk for hours. If you want to hear what I have to say at length, come to the place where I build: https://discord.gg/NfMNyYN6cX
They’re killing “programmer”, not “code”.
> I don't see how they wouldn't take out open source with it as a consequence
An analogy: the automobile industry sought to make working horses redundant, not to go door-to-door and kill horses. Horses getting chopped was an indirect economic consequence.
> If nobody even looks at code why would anyone bother to publish a library, much less care about making it maintainable?
For the exact same reasons as before. Agentic programming still integrates well with the existing ecosystem; I’ll tell agents which libraries to use, so I know what to expect.
While I don’t read the implementation of anything any more unless there’s a hard algorithmic problem, I do make an effort to read and document APIs thoroughly.
Interfacing is exactly the same, it’s just agents doing it.
> if everybody is vibe coding how long before your "average" dev has no idea what a library even is or why you'd want one?
That is a very good question.
I have some questions.
Are you doing this for client-facing production code?
It seems you believe painting over APIs with some amount of documentation will guarantee the implementation is correct and well designed. Am I misreading that?
You say you still read code when code is « algorithmically hard ». How do you define that?
Software systems have requirements that are essential but not algorithmically hard. For instance, access control in a web application must be thorough and cover all REST resources. How do you know the implementation has the desired properties if you don’t read the code?
Do you have tests? How do you know they’re correct if you don’t read the code? Moreover, how do know if their coverage is sufficient if you don’t read the code?
Do you refactor code or is that not needed anymore?
I don’t understand your answer to the question of why anyone would publish a library if no one reads code anymore. « For the exact same reasons as before ». How so? This isn’t making sense.
What's "this"? We're talking about multiple things here.
But presumably yes: I'm working through agents, and all I do is read and prompt. I don't manually write code except Markdown and occasionally Nix code because it's sufficiently high-level, and I rarely read the Rust code. The Nix code is based on templates I wrote by hand, and the Rust code is based on crate selection and some loose principles I've derived from years of programming Rust by hand.
> It seems you believe painting over APIs with some amount of documentation will guarantee the implementation is correct and well designed. Am I misreading that?
I don't believe that, you're misreading.
I'm saying:
- Making and documenting APIs well is just as necessary as before I wrote to files.
- Correctness is achieved through strong types and extensive testing of all kinds.
> Do you have tests? How do you know they’re correct if you don’t read the code? Moreover, how do know if their coverage is sufficient if you don’t read the code?There are different tests, and I know they work for different reasons.
I'll list a few kinds that I've found actually valuable in the recent past:
Manual user tests: While expensive, they're most truthful in revealing bugs and confirming if they still exist. We do this by dogfooding our own product, and by running manual user tests before major deployments. User tests help uncover problems like delays that don't appear as errors, but can be major UX bugs (like waiting ten seconds for the effect of a button press).
TDD regression tests: A user experiences an error in the application, this gets reported, the agent analyses the code and writes one or more unit tests to confirm the problem, and writes a fix to see the light go green. I know this test works because it fails first. There's an odd chance the agent either uncovered a different bug, or wrote a test that fails synthetically. I haven't tried the latter, but I've tried many times that it wrote "a test" that passes but the app still crashes. So TDD order matters. And I've tried that it found several more bugs by analysing the code. (Most recent example: https://github.com/atuinsh/atuin/issues/3603 ) Another example of a TDD regression test is: Some async code prematurely exited, I scanned for the class of bugs and found one other case and fixed it, TDD. There's a very simple consideration to make that could be expressed as a linter rule, but is more easily expressed as a single sentence in CLAUDE.md, since it will appear again (it's a pattern I and former colleagues have made several times).
End-to-end integration tests: Wire up all parts of the system in either a semi-authentic (say, docker compose-based with some mocks) or in a fully authentic staging environment (say, Kubernetes); I do both, and it catches both bugs and performance regressions by simulating real workloads. I haven't automated the performance regression testing, only workload simulation, and then I assess the metrics myself.
Algorithmic pareto-optimality: I have an algorithm that can be measured in number of steps by measure of API calls, and number of successful calls; correctness would be "the algorithm gives the same result", and pareto-optimality would be "it doesn't use more steps in the refactored version". Computing time isn't really the cost here, the cumulative size of API payloads are. The API part can actually be mocked, or "made golden" (I've just now learned that it's called a "characterization test", https://en.wikipedia.org/wiki/Characterization_test, but I always called it a golden test from having read that.)
"Full coverage unit tests": I don't actually know how valuable these are. But for example, I went with "Find all functions that return Result<T> or Option<T> and test all their edge cases." Some ~87 functions, some ~150 tests. No failures. But I'd be surprised, because the type of mistake these tests generally fix for me, as a human, are typos and copy-paste errors, and big models generally don't make those.
> You say you still read code when code is « algorithmically hard ». How do you define that?
I don't have a good definition. I recently deployed a service that runs something my colleagues call "the algorithm". It's some progressive audio transcription thing. My colleagues feel uncomfortable going live with something that appears to work that nobody read, so I read what was made.
I think the value of reading algorithmically hard code is not to assess correctness, but to regain cognitive debt in case something breaks and you don't know how it's made. I've consulted for people whose main programmer left and they were stuck with a machine they couldn't comprehend, start, or start to comprehend.
Point being: Code review isn't ideal for catching hard logical bugs, it's for understanding code so that you may eventually understand hard logical bugs when they surface.
> Do you refactor code or is that not needed anymore?
The need for software architecting and refactoring are exactly the same.
Only maybe more and sooner because the amount of code increases.
> I don’t understand your answer to the question of why anyone would publish a library if no one reads code anymore. « For the exact same reasons as before ». How so? This isn’t making sense.
I don't understand why it doesn't make sense.
Agents will read code. Humans do occasionally read some code.
But the value of a well-polished, tested library is not just for humans to read.
A good library will make your code better, because vibing on the spot delivers less guarantee that it's good. You'll miss some effort spent on proper data modelling and edge case and error handling. Sometimes that's the right call.
Say you build a parser for a small language. Using a parser combinator library, you get nice error messages and some very non-trivial thoughts on resuming parsing from a failed state. A vibed parser will give you neither of those.
There are some points related to supply-chain minimization.
But it's the exact same tradeoff, where the choice-points are pushed around.
Also I don't know what GP is talking about when it comes to "it just couldn't last." Being vegan can still be a pain in the ass, but it's vastly easier to find "plant-based" options than it was 20 years ago. There seem to be more options every year.
> I made the change consciously for ethical and moral reasons with no interest in "setting myself apart" or "feeling better for not 'being like those others'" by this decision
We all believe we do what we do for good reasons, yet we are wrong most of the times.So, when I hear you saying that you are motivated by pure moral reasons, but not stating those reasons, I can't help but think "this guy is lying to himself", sorry.
Listen, I consider myself some kind of vegetarian: I feel shame for how we humans treat other animals in the food industry, I don't want to take part in it; therefore, I rarely buy meat (I rarely buy anything, actually). But when I go someplace and I'm not the cook, it won't even cross my mind to ask for "a vegetarian alternative"; I eat what is there because it doesn't matter. During the meal I might engage a discussion about how badly we treat animals and we could avoid participating. Not eating or cooking meat is not the point at all, not buying it is the point.
I have met a lot of vegetarians who just "can't eat meat", won't tell why, require a specific meal be prepared for them, exactly like some religious people won't eat pork or wtv, without ever explaining why not. Because they don't want to do proselytism or because they don't want to sound stupid? I'm sure which alternative you will choose for yourself, but I'm not convinced.
when devs work in isolation, that context/memory is siloed. Same is true when working across platforms (codex, claude, etc).
The value is in how you came to the design you expressed.
Before AI we had prompts called "requirements" and of course they were the starting point for reviewing code: the customer needs X, the code doing that is Y.
With agents that prompt became much longer, with the original requirement a short note at the beginning of the conversation with the AI, but the resulting code is about the same size. Maybe in YOLO development the original requirement is all the AI needs but I'll be surprised because requirements from customers are too fuzzy and can be turned into very different features, often too different from what the customers had in mind.
Actually I never looked at the detailed prompts of coworkers, only at the original requirements from customers. How they instructed their agents is not particularly interesting except maybe to get a gist of the different approaches.
What's the value of getting all my prompts if the rest of the equation is unknowable? Unless you mean the value is in the full agent log, but even then, frontier models and harnesses would still be hiding a major part of the equation from us.
Even if you don't agree with the exact political stances of the authors, the broad goals are notable.
I have said it for years now, perma-computing is the missing piece of the free software movement. There is no point in the software being complete free/open if you have hardware that is locked down.
Maybe one day, we will be fabing our computers, maybe not on a garage scale but on a much more local manufacturer scale. Similar to how you can get PCB's custom made but with open processor designs. Nothing too amazing but if you could pick or supply a chip design and have something made on a 300nm node or whatever, that is still a lot of power to the people. Chips that top out at a few million transistors not billion/trillions.
You can do computing up to the level of the mid 90's, which is neat but that is the big trade off you need to make.
> up to the level of the mid 90s
So pair this with back-to-basics tech (e.g. text files)... that can serve us extremely well.
"With that said, permacomputing is an anti-capitalist political project. It is driven by several strands of anarchism, decoloniality, intersectional feminism, post-marxism, degrowth, ecologism."
They are post-modernist, collectivist, marxist. I couldn't get behind that.
That ideology is arguably the most destructive in human history.
While, simultaneously, an abundance of slop is being made.
Note: I can’t code. Not a line.
> So, when I hear you saying that you are motivated by pure moral reasons, but not stating those reasons, I can't help but think "this guy is lying to himself", sorry.
???I didn't say more about these things because I felt my comment was long enough already on a tangent to the HN submission itself, and that I'd made the intended point.
Not that I owe you or anyone else any convincing that I'm not delusional, but since you appear to be asking, this will both try to answer you and also illustrate why I didn't bloat my previous comment.
I am striving to keep to an acceptable minimum the harm I cause to other sentient creatures. My moral framework includes the following:
1. I reject speciesism^.
2. I take as axiomatic there is no "elimination" of harm to other creatures - no existence as a human has zero external harm.
3. I observe that accounting within any sufficiently complicated system, whether economic, physical, or moral, admits no entirely black and white disposition.
4. I discard as a largely useless question whether or not it is "natural" for humans to consume animal products.
5. I don't think "what our ancestors did" justifies what we should or shouldn't do today in our presently-evolved state.
Consistent with these ideas, I conclude veganism minimizes the harm I cause to other sentient creatures subject to the constraints that I do not make it impossible for myself to live among other people in a western society, and I do not degrade my health. #2 implies one can always strive further toward an asymptote of zero. At some point, one has to decide for themselves if they've done "enough". #3 implies reasonable people will not always agree as to whether a specific action or choice is reducing harm. For example, you speak of going somewhere else and not asking for "a vegetarian alternative" because "it doesn't matter." I contend that it very well could matter. If restaurants offer more vegan options because people ask for them, patrons potentially reduce the amount of animal products they consume, or potentially convince fellow diners that not consuming animal products doesn't preclude the convenience and pleasure of shared meals eaten at restaurants.
A choice of veganism is analogous to a choice of voting in a democracy. Your single vote is probably not going to make the difference in an election, but everybody thinking their votes matter is how we achieve collective action that unequivocally matters.
I don't really respect the choice of vegetarianism being observed wholly out religious obligations, but I appreciate that there are so many vegetarians who, regardless of their motivations, reduce their harm and make it more economically viable for me to live more comfortably in a manner consistent with my principles.
Many people who don't answer "why" when asked about their vegetarianism do so because they don't want to invite mockery or debate. I know people like this, and having experienced this kind of mockery, I understand it. Avoiding mockery or challenges to justify one's postions doesn't equate to a lack of convictions. Sure, someone could be doing it because it "sets them apart" and then they don't answer because they don't want to get called out on this stupidity. But why is that the correct default assumption in the absence of a fulsome answer? As for me, if you sincerely ask me "why" to my face, I'll certainly tell you and not play coy.
^ [1] https://plato.stanford.edu/entries/moral-animal/ [2] https://www.jstor.org/stable/26165687
I had a different experience of vegetarians though. In my mind, based on my experience, a vegetarian is someone who, when you invite in your place, or when joining a coliving or a mere picnic (was not thinking of a restaurant, that's another matter), will insist that he can't touch any food with meat, or any food cooked in a pot that had just also been used to cook meat, really like it was a taboo rather than a practical decision about a very earthly thing, and not willing to give any more explanation than "it would be offensive". To me the proselytism is even more important than the choice not to buy meat (which is itself more important than the choice not to eat meat).
It seems that you are of a different blend and that I might have over-estimated the number of vegetarians-by-religion; maybe many are just tired of explaining indeed.