Deno - What's different from Node JS
Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.
- Secure by default. No file, network, or environment access, unless explicitly enabled.
- Supports TypeScript out of the box.
- Ships only a single executable file.
- Has built-in utilities like a dependency inspector (deno info) and a code formatter (deno fmt).
- Has a set of reviewed (audited) standard modules that are guaranteed to work with Deno: deno.land/std
Ryan Dahl build Deno, a great guy who also built Node JS in early 2009. Yes, Node.js was initially written by Ryan Dahl on 2009 in C++ and he left Node.js in 2012. But he was not satisfied with Node JS and he started to build Deno (JavaScript & TypeScript runtime build) using Rust, together with Tokio.
Node JS | Deno |
---|---|
1. Initial release on May 27, 2009 | 1. Initial release on May 13, 2020 |
2. Written in C++ with libuv | 2. Written in Rust, together with Tokio. |
3. Issues with its module system, with centralized distribution (npm). | 3. Deno has got build in dependency manager and allows to imports & uses dependencies directly from URLs. Deno does not use package.json in its module resolution algorithm. |
4. Lots of legacy APIs that must be supported | 4. Everything is written with TypeScript, and async API is based solely on Promises. The core functionalities are limited to the minimum, while everything else can be found in the Standard Library. |
5. Node.js doesn't requires explicit permissions for file, network, and environment access. Lack of security model :( | 5. Deno by default does not allow programs to get access to files, network, subprocesses and environment variables. If we want to allow our server to write files, we need to manually set access from the terminal. |
6. An explosion of tooling (grunt, gulp, webpack, babel, parcel, typescript, ts-node and so on and so on...) | 6. [Deno provides some built in](https://deno.land/manual/tools) tooling that is useful when working with JavaScript and TypeScript |
7. You can't compile TS in Node.js. But you can use node typescript package allows you to transpile your .ts files to .js | 7. Deno supports TypeScript by default |
8. Doesn't have its own BCL (Base Class Library) | 8. Deno has got its own BCL (Base Class Library) |
9. Node.js does support ESM, but this feature is currently (v14.x.x) marked as experimental | 9. Deno comes in with its ESM and ESM-only module support |
10. Feels slower than Deno (Not yet tested) | 10. Feels faster than Node |
All of this leads to the conclusion that Deno technology is worth to observe. Deno solves many NodeJS problems and it looks like it is going to have better performance. But we need to wait Deno to come into action and who knows, maybe Deno will be the next NodeJS. But for sure,
Node.js will not die as PHP didn't die due to the outcome of JS.