👋 Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. We cover one out of four topics in yesterday’s subscriber-only The Pulse issue. To get full newsletters twice a week, subscribe here.
- Using tagged pointers to avoid the overhead of storing extra function pointers
- Additional steps to reduce memory usage by scheduling additional garbage collector executions
- … and many more which all add up
With performance, there are also tradeoffs. For example, in its quest for performance, when running ‘bun install’, Bun doesn’t check the network to ensure that locally cached packages are correct – even when specifying to use the latest version. Doing this would introduce seconds of latency, but also ensure correctness. The npm or pnpm package managers do this additional check and so are slower, though arguably more reliable.
Discovering these edge cases – and making sure they don’t catch you off guard – will surely be a learning curve for developers using Bun, just like with every new framework.
Bun showcases how the ‘innovator’s dilemma’ manifests in a tech ecosystem. The innovator’s dilemma comes from the book of the same title by Clayton Christerenses. The dilemma is this: a large, market-leading company has some motivation to innovate, but also a strong disincentive as well, because innovation risks undermining its existing products.
Bun has no such constraint. It begins with a clean state, and can ship something that works for, say, 90% of existing Node projects, and break the remaining 10%. This means it can make decisions which greatly improve performance, which Node doesn’t have the luxury of doing.
If it was not for the innovator’s dilemma there would hardly be any startups taking on large companies, or new frameworks which successfully challenge existing ones.
Bun also reveals the contrast between venture-funded open source and ‘community sweat’-funded open source. Node’s contributors are unpaid, and have been doing all work voluntarily.
This is in stark contrast to how Bun is funded. The framework is built by a startup called Oven, which has raised more than $7M in funding, which means the company can afford to pay all its contributors a market-rate salary, plus equity in the company.
Clearly, strong funding will create a much more focused team, and Bun contributors work on Bun full-time, while unpaid Node contributors work on Node part-time.
Venture funding comes at a cost, and the bill usually falls due later. There is barely anything to complain about in a startup like Oven paying people to work full-time on an open source framework like Bun. It’s a win for everyone; the community and the developers working on it full time.
In contrast, the goal of a VC investor is a financial return. VCs fund businesses they expect to eventually be worth a lot more than the value of their investment, and to be either sold, or go public. This means that in the mid to long-term, Bun’s funding needs to support a business. For most commercial open source companies, the approach tends to be to offer a managed, dedicated service of the open source software, or to provide additional features on top of it.
This is the approach Vercel is taking with Next.js – where they are the trusted provider to host Next.js apps. In the case of Oven, I assume the plan is to do something similar.
Of course, not all startups succeed, and most startups which fail do so by running out of money. When this happens, the startup shuts down. In the case of a closed source startup, the software is also gone. However, with open source software like Bun, it will not go anywhere even if the business ceases to exist. The project would simply need volunteer contributors, or sponsors who pay contributions.
The license of a project is key to understanding how ‘risky’ it is to use. Bun uses an extremely permissive MIT license that minimizes any risk.
Technological innovation rarely happens in a vacuum; it builds on previous technologies. Node growing into a mature ecosystem is what enabled Bun to now take it by storm, and offer an alternative with superior characteristics – in this case, performance.
Youtuber and tech investor Theo Browne posted the most balanced take I’ve seen so far on what Bun means for the ecosystem. In the video The truth about Bun, he points out the risk of an open source project being dependent on an individual:
“Yagiz is the person on the Node team focused on performance. He is a part-time, unpaid contributor to Node, working really hard to make Node performant enough to be a viable choice (...) He’s the person thanklessly maintaining this thing (...)
For Bun, the majority of code is coming from the person (Jared) who also makes the majority of business decisions [for his company]. You eventually get to the point where these things conflict. Jared’s done an incredible job of managing this thus far: but he’s mostly done this by working absurd amounts of time. That is a risk, and we need to be real about this risk.
At Node, there’s great work going on from hundreds upon hundreds of people to make Node as great as it is. Node survived for more than a decade, because they’ve managed and mitigated these risks really well”
I’m excited to see such innovation in the Node ecosystem, because innovation begets innovation. What Jared and the team have done with Bun is outstanding engineering; they’ve shown it’s possible to push performance far beyond what most engineers would assume to be possible. By building Bun to be so ridiculously fast, they’re getting a ton of warranted interest and early adoption.
But this innovation also helps the wider ecosystem, as maintainers on Node and other package managers also jump to do performance optimizations for their tools, doing so with renewed inspiration.
It will be interesting to see the impact of more venture funding pouring into this space. Node was built by a team of volunteers, becoming an admirable framework, which is ever-improving, even without direct funding. This approach has proved to be sustainable, thanks to the hundreds of involved contributors. While Bun has incredible momentum: will this be enough to make it a sustainable framework and business?
This was one out of the four topics covered in this week’s The Pulse. The full edition additionally covers:
- Industry Pulse: Databricks going public – maybe, Square’s long outage, Slack’s redesign, and Valve blocks video games with GenAI assets.
- The tech IPO winter has ended: For 18 months, there were no tech IPOs, with HashiCorp being the last to list on the stock market. But now Arm, Instacart and Klaviyo have broken the ice, offering hope for more to come.
- Twilio’s iconic billboard is different, but why? For 7 years on the highway to San Francisco, Twilio had a billboard boasting: “Ask your developer.” Now, the company has replaced this famous billboard with a new message geared toward sales and marketing teams.
Featured Pragmatic Engineer Jobs
- Senior Backend Engineer - C#/.NET at Straddle. £90-125K + founding team equity. Remote (UK).
- Senior Solutions Engineer at Tint. $130-195K. Remote (US).
- Product Engineer at Causal. Remote (US, UK). The team tackles interesting challenges like simplifying React state management.
- Backend Engineer - Data at Causal. Remote (US, UK).
- Senior Backend Engineer at Polarsteps. Amsterdam (Netherlands).
- Senior Data Engineer at GetHarley. £70-100K. Remote (UK) or Hybrid.
- Senior Frontend Engineer at GetHarley. £70-100K. Remote (UK) or Hybrid.
- Senior Software Engineer at Tint. $140-195K. Remote (US).
- Senior Product Engineer, Frontend at Attio. £90-125K + equity. Remote (Europe).
- Senior Data Engineer (RoR) at Terminal49. $140-200K. Berkeley, California.
- Engineering Manager - Security Product team at CAST AI. Remote (Lithuania).
- Software Engineer at Freshpaint. $130-210K + equity. Remote (US).
The above jobs score at least 10/12 on The Pragmatic Engineer Test. Browse more senior engineer and engineering leadership roles with great engineering cultures, or add your own on The Pragmatic Engineer Job board and apply to join The Pragmatic Engineer Talent Collective.
Want to get interesting opportunities from vetted tech companies? Sign up to The Pragmatic Engineer Talent Collective and get sent great opportunities - similar to the ones below without any obligation. You can be public or anonymous, and I’ll be curating the list of companies and people.
Are you hiring senior+ engineers or engineering managers? Apply to join The Pragmatic Engineer Talent Collective to contact world-class senior and above engineers and engineering managers/directors. Get vetted drops twice a month, from software engineers - full-stack, backend, mobile, frontend, data, ML - and managers currently working at Big Tech, high-growth startups, and places with strong engineering cultures. Apply here.