2

Is Deno Still a Thing? A Look at the Status of the Node Killer

 2 years ago
source link: https://blog.bitsrc.io/is-deno-still-a-thing-a-look-at-the-status-of-the-node-killer-884d47981d09
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Is Deno Still a Thing? A Look at the Status of the Node Killer

It’s been well over a year already, what have they been up to?

Photo by Amy Baugess on Unsplash

Back in May 2020, I wrote an introductory article to Deno due to it having been officially released and available to the public.

I later went on to write a full book about Deno as well. I liked Deno and all the freshness it brought to the Node.js-ruled table. However, it also posed a lot of questions that at the time, had no real answer.

Deno was created to be an improved version of Node.js, eventually meant to replace it if it was properly accepted by the community. But that’s a huge endeavor, considering everything Node.js had matured since the good ol’version 0.10 that some of us were using in production (a friend of a friend situation).

So where is Deno now? Have you all stopped using Node.js and migrated your code already? Let’s see what the Deno ants have been working on for the past year or so.

They’ve created a company!

Alright, I’ll give them that. This one is impressive, they turned Deno into a full-blow startup, gathering an initial round of 4.9 million dollars of seed capital. That’s, that’s a lot of money.

You can read the announcement here if you’d like, but the main idea is that now they can fully dedicate themselves to improving and growing the idea of Deno without falling into the chaos of open source governance, that some projects * cough * Node * cough * have seen at some point or another.

They have the money to dedicate themselves full time to this endeavor. They have a vision they want to achieve, and now, but the looks of it, they also have the team to do it. According to their website, they’re a team of 10, including the CTO and CEO. That’s a sizable team to be working on a single product.

This leads me to my second, and I think, more relevant finding: they’re not working on a single product.

Did you know there is something called Deno Deploy?

First time I read about it, and I’m assuming that’s on purpose because it’s still in its early beta stage, however their plan for it is very interesting.

That being said, they ought to change its name to Deno Cloud if you ask me. Deno Deploy sounds like they’re building a CI/CD tool, however this couldn’t be further from it.

They’re taking the JavaScript runtime they’ve created in Deno, and they’re moving it to the cloud, where it can live distributed and always active for you to use.

Wait a second… what?

Yeah, you read that right, with Deno Deploy they’re giving everyone a chance to deploy their Deno code, for free, on the cloud, as a service. No setup required.

You can sign up for free with your Github account (this is a very Github dependant service as of now), and you’re immediately forwarded to a page where you can create your first project. And once you do, you can quickly deploy a “hello world” example to get your feet wet:

The UI of the test project ready to be deployed

Much like Heroku and Netlify, you get assigned a random URL when you create the project, and you can quickly deploy and start testing things out.

You can even configure your own domain to redirect to your project, and this is all for free. At least, during the beta phase. During the beta, they do have some limitations (which make total sense since they’re still developing the platform):

  • 100.000 requests per day and 1k req. per minute.
  • 512 Mb of memory, which can be low at times.
  • A maximum of 20Mb deployment size.
  • A limit of 1000 modules per deployment.
  • And a few others which you can check here.

And as for pricing, all they say is that they’ll think about it once this thing is ready for production. Again, it makes total sense, right now it’s just a hugely expensive toy, but it’ll become a product pretty soon by the looks of it.

What makes this so unique?

While it’s true that we already have similar services that, at surface level, provide the same set of features, if you look a bit deeper you’ll notice some major differences.

Deno Deploy is not a Deno-specific Heroku. Instead, it’s a full-blown runtime that functions in a distributed fashion across 25 geographical regions and always handles your request with the closest one to your location.

While at the lower levels, we probably are dealing with usual concepts such as docker containers, or virtual machines, shared memory, and so on, at the user level, this is all abstracted from us.

We don’t need to think about infrastructure at all, this, if you will, could be considered as Runtime As A Service (RaaS for short), have we seen something like that before?

The deployment is all done directly from Github, but the kicker here is that you only deploy a single file. Which at first glance it’s a bit limiting isn’t it? A single file? What if I have a huge API project I want to deploy?

That’s not a problem, the deployment script will take care of that for you. All you need to worry about is providing the right entry point file. It took me 10 seconds to link this test repo and deploy it:

1*L4kZwVfbRHesnJn0sqXqCg.jpeg?q=20
is-deno-still-a-thing-a-look-at-the-status-of-the-node-killer-884d47981d09
My repo deployed in seconds

I didn’t have to worry about anything really, the code works as expected. As you can see it’s a variation of the “hello world” project they provide, but I added the ability to use a local function from another file, to test exactly how the deployment of complex projects would work:

And it works just fine. In fact, at first I had forgotten to specify the “.js” extension on the import statement, and it wouldn’t let me deploy because there was a dependency it couldn’t find. How cool is that? I don’t have to deploy and test to find the problem.

Even further, thanks to the very critiqued (by me and others) distributed module system, you don’t even how to worry about dependencies either, they’ll all be handled by Deno like it normally does.

When will it be ready?

As of today, October 12th 2021 the system is still in Beta 2, which means it still needs a bit more development before it’ll be live. There is no release date set leads me to believe they’re still planning to add quite a lot of things into it before that happens.

What are they adding? As part of this being a runtime on its own they’re adding special methods and routines to help you deal with things such as I/O in a secure way. They recognize this is a separate runtime from the CLI you use locally — which is interesting if you ask me, it’s like a distributed version of the original — and provide as much documentation as they can.

This is definitely an interesting way to think about developing a web application. In the near future, your entire runtime will be optimized towards that task, and all you’ll have to do is push it to Github to have it running within seconds.

What else have they been up to?

I mean, sure, Deno itself, the new runtime they released in May 2020 has also been evolving. In fact, they’ve released 14 new versions of it, having it now on version 1.14.

They’ve been busy too, these aren’t minor updates, the language itself is evolving based on the feedback they get from their constantly growing community. In Github alone, they have over 4k forks and almost 80k stars (versus the 20k forks and 82k stars from Node.js, that’s amazing growth!), that’s what I would call a popular repo if you ask me!

The latest update cover things such as:

  • An extensive Crypto API, which is still not done but moving towards being complete soon.
  • Customizations options for their linter and code-formatter. This is a good example of them listening to their user’s feedback. Originally they had a very strong idea of what linting for Deno meant, and they allowed no configuration, but given enough testing and feedback their users kept asking for options and they’re starting to for some minor configuration.
  • They adding support for URL patterns, which is a very useful feature if you’re working on web applications. It simplifies the task of matching different URLs significantly.
  • Native support for TypeScript 4.4, which is always a nice breath of fresh air being able to natively write TypeScript without having to go through the heavy setup required for Node.js projects.
  • And more, you should check their full release notes for more details.

They have been busy!

Build anything from independent components

Say goodbye to monolithic applications and leave behind you the tears of their development.

The future is components; modular software that is faster, more scalable, and simpler to build together. OSS Tools like Bit offer a great developer experience for building independent components and composing applications. Many teams start by building their Design Systems or Micro Frontends, through shared components. Give it a try →

An independently source-controlled and shared “card” component. On the right => its dependency graph, auto-generated by Bit.

Do I think they’re still going to kill Node.js anytime soon? I think that by now they’re a very attractive alternative for projects that rely on TypeScript given how many of the initial APIs are now a bit more stable and are growing with a more defined path.

I also think Deno Deploy has the potential the change the way we work and deploy web apps, but that’s also something we’ll have to wait and see once they’ve done more testing and have a more mature API on their side.

That being said, no, Deno is not dead, in fact, it’s growing slowly but steadily around a constantly growing community. It looks like they have some very interesting ideas and now also the money to achieve them.

I’ll be keeping an eye out for them, will you?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK