If Deno is the answer to Node.js’s problems, then why hasn’t it caught fire yet?
Ryan Dahl wrote Deno as the solution to the problems he saw in his previous creation Node.js. The problems as Dahl saw it were a poorly designed module system, security issues, and the package manager could be replaced with a standard URL-based linking system.
Deno has a similar purpose to Node.js, which is the standard web service workflow of providing services to client-side applications (serving files, furnishing APIs, acting as a data aggregator, etc..). Perhaps, as a result, Deno is slow to gain traction.
“If I have to choose between these two technologies which one would I choose?” said Mayank Choubey, a developer who has written a lot about Deno on Medium, in an interview with The New Stack. Even with Node.js’s imperfections, “My company has a lot of projects that we use Node.js for. We use Deno for internal projects but it’s definitely Node.js for anything critical because it’s a proven technology with no risk.”
In June, the company behind Deno, Deno Land Inc., announced that it obtained $21 million dollars in a Series A investment round led by Sequoia Capital, which could go a long way in covering the remaining gaps in the new technology.
Not only does Deno have the funding to compete with Node.js for market share, but it also further invests in a business model that will separate itself from its competitor.
What Needs to Be Addressed
One struggle Deno has to overcome is that it isn’t known for being a user-friendly, bug-free technology. Deno is a baby, it’s only in version 1.24.2 so while there were tech geniuses working on it, bugs are part of this process but they do deter smaller developers and the larger developers aren’t interested in adopting the tech.
Jennifer Fu, a UI tech lead at Domino Data Lab who frequently blogs about Deno, suggested in a TNS interview that what is needed are “predictable releases to make it work.” Choubey also suggested upgrading the docs as they aren’t, “the kind of documentation that I would be looking for if I am starting on this technology,” in that they aren’t detailed enough.
The first two problems create the perfect environment for the third problem, which is the lack of third-party packages. It’s a chicken-and-egg problem.
“If people aren’t interested then they will not build packages for Deno and if there are no packages for Deno then people will not be interested,” Choubey explained.
Third-party packages are a rich part of any technology’s ecosystem. They come from the need for innovation, but there isn’t much innovation happening on a technology that isn’t widely used and there definitely isn’t a lot of work happening on a technology that isn’t extensively maintained or clearly documented.
When it comes to building with a technology that doesn’t have many third-party packages, sometimes it’s helpful to know that if a problem arises, there’s likely a thin abstraction layer for that.
Deno has approximately 5,000 third-party packages, a sliver of Node.js’s approximate 12 million packages.
“It’s likely that you won’t find a package that will solve all your problems,” Choubey said, admitting that Deno does nonetheless have many useful packages.
Note none of these changes state that Deno is a bad technology because it isn’t. Deno is just new to an already existing marketplace. Fu stands behind the tech: “it has potential; it’s time for a new technology.” Because this is where Deno is and where it was. And Deno is absolutely on the move.
With the additional funding in place, Dahl and his team could address the above-mentioned issues, as well as bring some organization to the endeavor.
Fu believes that the biggest problems facing Deno are that it was, “too decentralized and [needed] a company to adopt it,” and there should be some progress now.
In addition to Deno Deploy, Deno released its own frontend framework, Fresh in late June of this year to compete with the numerous frameworks that work with Node.js out of the box. Fresh is based on the Preact Virtual Document Object Model (DOM), and supports Typescript out of the box.
Fu and Choubey have worked with Fresh and echo the same sentiment that it has great potential though Fu confirmed that there are still, “bugs [between Fresh] and Deno Deploy.”
It’s going to be very interesting following this technology over the next few months as this one should be making some big moves as time goes on.