React, Flux, GraphQL, Hack, HHVM...? All of this and more!
Node.js has been a darling of the web industry for years. Built on the V8 JavaScript engine from Google's Chrome browser it offers high performance with modern JavaScript syntax. However Node.js and it's ecosystem is also showing it's age.
Node.js is facing new competition. With the release of Deno, the world's most popular server side JavaScript runtime finally has some serious competition. Node.js and it's synonymous NPM package ecosystem have a lot of history behind them already. Launched at the end of May 2009 it is now a decade old.
Node has been able to reinvent itself due to continuously evolving JavaScript syntax packages, this has allowed the core product to be able to upgrade from old-school call back style asynchronous JavaScript to contemporary Promises and Async/Await languages.
However there are signs of age in the Node.js ecosystem. Some of the most popular packages and projects like Express.js and Sails have been effectively abandoned and left rotting for years now. This is not helped by a standard library that leaves a lot to desire.
The time is right for a server side JavaScript reboot. This is is coming in the form of Deno, an anagram for Node. The project has more in common with the older project as well - the developer of both is the same. Ryan Dahl kicked off Node.js, but left the project and has not been involved for years.
Dahl kicked off Deno in 2018 and the project has kept on improving since then. It is now maturing and a v1.0.0 release is scheduled for May 13 2020 to coincide with the second anniversary of the project. A venerable ecosystem has also sprang up with projects web framework Servest, that integratest with the industry standard React.js view library and a SQL migration framework Nessie.
Deno runs on the same V8 JavaScript engine as Node.js, which gives it comparable performance. For syntax it uses TypeScript - a typed superset of JavaScript that shares the syntax with contemporary ECMAScript releases. And finally to replace NPM it uses... not a central repository like NPM (nowadays owned by Microsoft), but something based on JavaScript modules and plain old URLs.
It will take some time for Deno to catch up with the Node.js ecosystem (and acceptance even in enterprise IT), but it certainly has a lot going for it - it is a unique opportunity to fix the mistakes that weigh Node.js down while also promoting a non-centralized package model leading to centralization of control and allowing for events like the left-pad disaster.
How many years off are we from Node.js projects being projects that developers want to avoid? Is Node.js the horrible J2EE Java or Cobol tech platform that everyone makes jokes about? Could be.
Tweet