This year, I have been developing toolchains for Vue.js and Markdown, while making modest contributions to Vite+ and Vue.js. One thing has become clear to me again and again: my achievements are not made from my effort alone.
Vue's compiler, vuejs/language-tools, eslint-plugin-vue, Storybook, SWC, esbuild, Biome, Deno, Prettier, and VitePress. Also Vetur, Vue DX, JSLint, Acorn, Babel, VuePress, Knockout, and Backbone.js. Some I have used directly. Others have taught me through their designs and ideas.
Behind these names are countless people and companies, and the time they have invested. There is working code, but also failed implementations, rejected proposals, bug investigations, discussions, and years of maintenance. Part of why I can build something today is that someone walked that ground before me.
Our achievements stand on remains. By that, I mean implementations that have served their purpose, and experiments that never made it into the final result. Of course, projects that are still being developed, and the people sustaining them, are also part of the foundation of my work.
That is why I want to value both respect for those who came before us and the freedom to build something new on what they achieved.
The discussion of Bun and VoidZero that follows is only one example. What I want to consider extends beyond a dispute between particular companies. I think the same questions arise whenever we build something new on the achievements of those before us, even beyond software rewrites and ports.
As one recent example, Bun's work on a type checker, linter, and formatter has drawn attention. Jarred Sumner's pull requests include a port of the typescript-go type checker and implementations targeting compatibility with ESLint, Oxlint, Prettier, and Oxfmt.
Watching the reactions has left me with mixed feelings.
For example, Christoph Nakazawa strongly criticized what he saw as inadequate gratitude for VoidZero's work. Evan You juxtaposed Anthropic's stance on defending against distillation with Bun's actions in a sarcastic post. These are not necessarily reactions for the same reason, and neither post tells us everything about its author's intentions. I mention them as examples that prompted me to think.
I have supported VoidZero's work for a long time. If the arrival of another implementation made years of a team's work feel diminished, it would be hard to stay calm. I understand that feeling. Still, there are things I want to pause and consider.
Rolldown alongside Rollup, Oxlint alongside ESLint, and Oxfmt alongside Prettier. Taking on the role of an existing tool through a different design or implementation, in pursuit of something better, has a long history. My own work belongs to that history too.
Of course, not every reimplementation is equivalent. Relationships with the original project, how the work is presented, contributions back, and licensing practices can all differ. Answering criticism about gratitude or conduct with "you reimplement things too" does not address that criticism.
Even so, if we affirm our own freedom to rebuild, I want us to apply the same standard to someone else's freedom to rebuild.
I think AI is changing the speed and scale of this activity. A small number of developers can appear to catch up in a short time with something others spent years developing. That may bring confusion or a sense of unfairness. But this is my speculation, not a claim about the motives behind anyone's remarks.
Using AI does not erase the effort of the person building something. Choosing what to build, verifying its behavior, working through compatibility, and taking responsibility for maintenance remain work. Respecting earlier contributors does not require us to count the efforts of later ones as zero.
At the same time, building something quickly does not mean the years before it were wasted. Starting with specifications, tests, working examples, and users' accumulated knowledge is different from creating those things one by one. If earlier work helped make that speed possible, I want that foundation to be part of the story. I ask that of the people building anew as well.
Should an AI provider itself use that capability to build implementations that compete with existing open source projects? How should we think about a company entering the same competition with computing resources far beyond those available to other developers? I understand that there are ethical questions here too.
Even so, I see the wider use of AI as part of the direction our time is taking. We ourselves use tools built on the efforts of the people developing AI. I want to avoid welcoming those tools when they benefit us, only to stop recognizing their makers' work the moment they become competitors.
Bun's acquisition by Anthropic cannot be separated from the work Bun put into building something valuable enough to reach that point. Anthropic's creation of excellent AI tools is also an achievement of its own. Surely there is legitimacy in putting the funding, computing resources, and technology gained through those achievements to work on what comes next.
Differences in resources deserve consideration, but I do not think that using those resources becomes illegitimate simply because the differences exist. We can ask where, specifically, unfairness lies while recognizing what a competitor has built. If we ask for respect for earlier work, I want the efforts of those building AI to remain within our field of view too.
It would also be inaccurate to call open source "something nobody owns." Individual code has copyright holders, and its use is subject to license terms. Open source makes work available under terms that permit modification and redistribution; it does not make those rights disappear.
But owning rights to a piece of software is different from owning the field of JavaScript tooling. Having worked on something first does not guarantee that another implementation will never appear. That is the space in which we build, while learning from those who came before us.
I also understand, of course, that companies and teams have legitimate reasons to defend their businesses within capitalism. Continued development needs funding. Jobs and investments need protecting. A competitor's arrival may require a team to state and defend its position.
But insofar as a claim serves to protect a business, it is a defense of that business within capitalism. Its legitimacy does not automatically make it right for technology or the community as a whole. There is a distance between "this threatens our business" and "this implementation should not exist." Both those defending their work and those supporting them should remain aware of what they are trying to protect.
This does not mean that all the criticism in this case comes down to business interests. If there is a rights violation, misleading promotion, or disrespectful behavior, criticize that specific problem. I do not want business interests, technical judgments, and attitudes toward others to collapse into a single hostility.
What I least want is for that conflict to turn into divisions based on the companies or communities we belong to. We stop listening because of which tool someone uses or whom they support. People and companies that could have built good things together begin treating each other as enemies. That is truly sad.
Reimplementation, competition, and the friction around them existed before AI. As AI accelerates them, I want us to think a little more calmly about whether we have done similar things ourselves, what exactly we are objecting to, and what kind of relationships our words will leave behind.
I want to keep supporting both Bun and VoidZero. And I feel the same about other projects: I want to support both those who opened a path and those who build something new from it. I also want to keep building the software I want to build, while remaining grateful for the efforts of those whose work makes mine possible.
And if, one day, someone builds another piece of software on the basis of what I have made, I want to support that software too. I want to hold on to the same respect when it is my work that someone learns from and reimplements as when I am the one learning and rebuilding.
Our achievements contain the work of those who came before us. One day, our work will become the foundation of someone else's achievements too. I want that connection to continue through gratitude and mutual support.