Does the programming language change which tools AI picks?
Yes, often by a wide margin. The same request went to one product in 35 of 54 TypeScript sessions and in none of 51 Python sessions.
Yes, often by a wide margin. The same request for a long-running AI job went to one product in 35 of 54 sessions on TypeScript codebases, and in none of 51 on Python codebases, where a different product led. The words did not change. The file extension did.
Why the language carries so much
It is not really the language. It is everything the language implies.
A repository's language tells the agent which package manager is in use, which frameworks are plausible, what the deployment target probably is, and, most importantly, which libraries are already installed. All of that is read before any decision is made.
So "language" is shorthand for "the whole ecosystem the agent is standing in", and that ecosystem is the largest single input to the choice.
The bigger story is not the winner, it is the grip
Leader flips get attention. The share swings matter more and are easier to miss.
Inside TypeScript codebases, against the overall numbers:
| Category | Leader | Share in TypeScript | Share overall | Difference |
|---|---|---|---|---|
| Databases | Neon | 38% | 46% | 8 points lower |
| Resend | 60% | 33% | 27 points higher | |
| Deploy | Vercel | 59% | 39% | 20 points higher |
| Product analytics | PostHog | 42% | 56% | 14 points lower |
Same name at the top of each row. Completely different market underneath.
A database vendor reading "we hold 46%" and a database vendor reading "we hold 38% of the language most of our users write in" are looking at the same product and should do different things.
What this means if you sell software
Split your install share by language before you read it. An overall number averages ecosystems that behave differently, and the average is true and useless.
Ship a template per stack. Not documentation for the stack, a working template. In our tests what is already installed in a repository beat an explicit written instruction to use something else, two times out of three, and installing a product into an empty repository took it from 0 of 15 real implementations to 11 of 15.
Check your package name in each registry. Python's hyphen and underscore forms both often resolve and only one is yours. Go's module path is not your repository name. Each mismatch is a guess the agent has to make.
Pick three, not ten. The three ecosystems your users actually work in, done properly and kept current, beat ten half-maintained examples.
Where to see it by language
One page per language, listing every category's leader inside those codebases next to the overall leader, plus the share swings:
The caveat
Each row on those pages is at least 25 judged sessions in that language. Categories with fewer are left out rather than reported thin. A row that ran on a single codebase is shown but not used for any claim, because one repository cannot separate the language from the repository. PHP and C# each have only three categories that ran on more than one codebase, so read those pages as a narrow slice. Go, Java and Ruby have no page: in each, at most one category ran on more than one codebase.
Coverage differs by ecosystem, and less data is a real limit rather than a smaller effect.
Common questions
Does the programming language change which tools a coding agent picks?
Yes, and sometimes decisively. The same request for a long-running AI job went to one product in 35 of 54 sessions on TypeScript codebases and in none of 51 on Python codebases. Nothing about either product changed between those two sets of runs.
Is it the language itself or the ecosystem around it?
The ecosystem, mostly. The language implies a package manager, a framework, a deployment target and a set of libraries that are already installed, and those are what the agent reads.
How much can the share move between languages?
A lot. One database leader holds 64% overall and 33% inside TypeScript codebases. One email provider holds 33% overall and 60% inside TypeScript. Same name at the top, different market underneath.
What should a vendor do about it?
Split install share by language before reading it, and ship an official maintained template for each of the stacks your users actually run.
Where this comes from
Armature ran 15,287 judged sessions with Claude Code, Codex, Cursor, Grok Build CLI and Muse Code inside 110 realistic codebases, and published every run. The numbers on this page come from that work.