Bun 1.0, Rome Becomes Biome, and Legend of the Lambdragon

Bun 1.0, Rome Becomes Biome, and Legend of the Lambdragon

Newsletter

Bun v1 consolidates the entire JS/TS toolchain, Rome is sacked and renamed to Biome, and reflections on the prescience of the Lambdragon.


JSJam Live, Wednesday at 12pm PT

We took last week off for a much needed summer vacation, but this week we'll be covering the final year of the legendary Strange Loop conference! Historically hosted in St. Louis, Missouri, the multi-disciplinary conference brings together developers and thinkers building tomorrow's technology. Join us tomorrow, same time as always.

Stories of the Week

Bun v1 Consolidates Entire JS/TS Toolchain

Bun 1.0, the all-inclusive toolkit for JavaScript and TypeScript, has now officially launched, declaring that it is ready for production use. The announcement post highlights that the JavaScript tooling ecosystem has grown very complex over the years.

Bun aims to eliminate this complexity while retaining JavaScript's strengths. It provides a voluminous list of stalwart JavaScript and TypeScript tools it aims to replace and how it plans to replace them. The release includes the following headline features:

  1. Replacement for Numerous Tools:
    • Node.js: Bun replaces node, npx, nodemon, dotenv, and cross-env.
    • Transpilers: Can run various file types without requiring tools like tsc, babel, and tsx.
    • Bundlers: Serves as a bundler, making esbuild, webpack, parcel, and rollup unnecessary.
    • Package Managers: Replaces npm, yarn, pnpm, and lerna.
    • Testing Libraries: Acts as a Jest-compatible test runner, eliminating the need for tools like jest and vitest.
  2. Integrated Toolkit: Instead of relying on various disjointed tools, Bun offers an integrated toolkit for an optimal developer experience.
  3. Fast JavaScript Runtime: Utilizes Apple's WebKit engine for better speed and efficiency. Notably, it starts up to 4x faster than Node.js.
  4. Built-in Transpiler: Supports JavaScript, TypeScript, and JSX/TSX files.
  5. Module Compatibility and Hot Reloading: Supports both ESM and CommonJS without any configuration hassles. Enhances developer productivity by reloading applications as files change.
  6. Browser-Like APIs and High-Performance Native APIs: Includes built-in support for web standard APIs available in browsers. Bun-native APIs are quick and user-friendly.
  7. Plugin Support: Highly customizable through an esbuild-inspired Plugin API.
  8. Test Runner: Comes with a fully Jest-compatible built-in testing module for easier migration.
  9. Bundling and Macros: Acts as a rapid JavaScript and TypeScript bundler and minifier, performing significantly faster than competitors like esbuild and webpack. The bundler introduces a novel approach to bundling using JavaScript macros.
  10. Native Builds: Bun now supports an experimental, native build for Windows, alongside its production-ready builds for macOS and Linux.

The Sack of Rome and the Ruins of Biome

Bun positions itself as a unified and streamlined solution that creates a holistic development experience. But of course, it's not the first or only attempt at building such a project. On the bird app, I made a comment about the irony of Bun 1.0 being released in quick succession after the dissolution of the Rome project and subsequent funeral/rebrand to Biome.

There's something very poetic about @bunjavascript hitting 1.0 the same week @rometools finally collapsed.

While no one was paying attention, an entirely different person built essentially the exact tool that Rome promised to provide and set out to build in early 2020.

The biggest difference was @jarredsumner lit his own savings on fire to do it instead of everyone else's.

If you're not familiar with Rome's history and the accusations levied against its founder, that message likely doesn't make any sense. I'd recommend reading the excellent account of Rome's history (complete with event timeline) by Bytes. It's the kind of history that can only be told by someone who lived through it in real time.

In a funny coincidence, Bytes covered Rome for their 9th issue in 2020 as well as FSJam (my own podcast) which covered Rome for our 9th episode.

When Rome was announced in 2020, I was one of the many JavaScript developers immediately sold on the vision. I believed there could be a better way to develop our apps by consolidating the many disparate tools and processes we'd been using at the time (and still do today) into a single platform. I became even more personally invested in the mission the following year.

The Lambdragon Fights Hypercomplexity with Fire

I befriended former RedwoodJS contributor, the late, great Aldo Bucchi in 2021. Aldo was multiple years deep into building a unified JavaScript platform that included everything you would need to develop a large scale, high volume application. Sound familiar? Called Decoupled at the time, Aldo later renamed the project to The Lambdragon. Aldo was a very guarded person and it took a lot to earn his trust.

As a consequence, he stayed off Twitter for most of the 2010s and became increasingly disconnected from the wider JavaScript and web development scene. Despite being years ahead of Rome, in timeline and feature development, Aldo had never heard of Rome until I mentioned the project to him off hand one day. Because of his isolation, he was understandably unaware that he'd fallen into the next JS zeitgeist years ahead of schedule.

I'll never forget his excitement when he realized not only was someone else working on this problem, they had been handed a truck load of cash to do so. This was corroborated even further when Swyx's blockbuster post, The Self Provisioning Runtime, gave a name to Aldo's vision. Unfortunately, in a tragic turn of events, in 2022 Aldo passed away in Hawaii where he had been living during the pandemic. The Lambdragon was forever put to rest.

Aldo was convinced that consolidation could stem the rising tide of hypercomplexity and prevent the death of simplicity. Before Rome and the Self Provisioning Runtime, Aldo worried his vision would never be complete. After, he knew at least his vision's spirit had been validated by the excitement of the developers and investors. This validation continues today with the excitement around the first major release of Bun.

Podcasts of the Week

One More Thing

Before passing, Swyx had Aldo on his stream to demo a bit of The Lambdragon. Check it out if the history of the project was interesting to you:

JavaScript Jam on the Web

Find us online at the following links: