Cloudflare heads effort to make JavaScript environments interoperable

Cloudflare today announced that it’s collaborating with Deno, the development company behind the eponymous Deno runtime, and individual contributors of the Node.js open source project to create standards that enable developers to write code between Deno, Node.js and Cloudflare’s serverless app platform, Cloudflare Workers. Cloudflare co-founder and CEO Matthew Prince says that the effort will allow the transfer of apps between Workers, Deno and Node.js without the need for a rewrite, a feat that’s presently beyond reach.

“JavaScript is used by millions of developers, and it’s usually the first language they learn. Up until now, JavaScript standards have been wholly focused on the frontend, like the browser,” Prince told TechCrunch in an email interview. “By standardizing the core JavaScript APIs with both the frontend and backend in mind, we can empower frontend developers to have more access than ever to the backend in a way that feels familiar.”

Built on top of Google’s open source V8 JavaScript engine, Node.js is credited with unifying web app development around a single programming language, JavaScript, allowing developers to run scripts server-side to produce dynamic web page content before the page is sent to a user’s web browser. But despite more than a decade in development, Node.js lacks interoperability. Developers have had to rely on tacit knowledge and build tools to share code across the various JavaScript environments.

“The future of JavaScript is universal, the ability to move JavaScript between many environments. That future needs to be intentionally designed,” Myles Borins, a member of the Node.js Technical Steering Committee, the technical governing body of Node.js, said in a statement. “The promise of ‘write once, run anywhere’ will only be possible with collaborative initiatives like the Web-interoperable Runtimes Community Group.”

Cloudflare, Deno and selected Node.js contributors from the Node.js Technical Steering Committee will develop API-based interoperability standards as a part of the Web-interoperable Runtimes Community Group, a group under the World Wide Web Consortium. Together, they’ll aim to make it easier to leverage tools and integrations from the JavaScript community across runtimes, remove platform-specific nuances and allow apps to evolve and change over time without rewrites.

“Deno’s broad ecosystem success can be attributed in large parts to our strict adherence to web platform standards,” Deno software engineer Luca Casonato said in a statement. “We knew from the start that Deno could only be successful if it went all in on browser interoperability — developers and broad ecosystem trends have shown us this bet was right. In addition to our existing standards work with … W3C, we’re excited to be working with Cloudflare and Node.js collaborators on even better runtime interoperability.”

Prince added: “[W]hen JavaScript APIs look, feel, and behave the same across the most popular JavaScript environments (Node, Deno, and Workers), developers win. We aim to free developers from being locked into an environment — moving to a new environment shouldn’t mean rewriting your entire application.”

That, of course, would be beneficial to Cloudflare, which launched the Workers platform out of beta in 2018. A revenue driver for Cloudflare — Workers charges a fee for batches of server-side tasks — more than 450,000 developers have built on the platform and more than three million apps have been launched, according to Prince. Cloudflare is no doubt hoping to up those numbers by convincing dev teams to migrate from other JavaScript environments — particularly in light of the company’s gloomy earnings forecast.

Not-so-coincidentally, Cloudflare also announced today that it’s open sourcing the Workers runtime under the Apache V2 license. The company pitches the move as its answer to vendor lock-in, but it also raises the profile of Workers — serving more or less as free advertising.

“It’s not enough to just write standards down. [By] open sourcing the Cloudflare Workers runtime, we are making these APIs widely available and giving developers an easy way to adopt the new standards,” Prince said. “There are two things developers are hesitant about when adopting any new development platform. The first: they worry about being locked in. No matter how bullish on the technology you are, if you’re betting the future of a company on a development platform, you don’t want the possibility of being held to ransom. And second: as a developer, you want a local development environment to quickly iterate and test your changes. Open sourcing the Workers runtime solves both of these problems by giving developers a standard that can run anywhere, which means both in any hosting environment, and on their local machine for quick testing and iteration.”