Node.js founder is disappointed with Node.js
Four years ago, from the stage of Javascript Conference EU, Ryan Dahl, founder of Node.js, opened his address with regrets. The list includes: removal of promises from Node, which are necessary abstraction for async/await; lacking security; including GYP build system, and allowing Node to inspect package.json for ‘main’, among others. After rueing nearly 15 minutes over his past mistakes, he made an announcement of a new software he was working on. In a very nervous and quivering voice, he announced to the world the birth of ‘Deno.js’, a simple modern runtime for Javascript and Typescript that uses V8 and is built on Rust. He explained that Deno is an attempt to undo the mistakes he committed with Node—lack of attention to security, module resolution through node_modules, and various deviations from how browser’s worked, among other things. A lot of developers have issues when it comes to the security part of Node.js, especially when access is granted to packages that shouldn’t be able to use our machine or network. According to a study, conducted by a hacker, 14% of the Node Package Manager (NPM) ecosystem is impacted and about 54% of the NPM ecosystem is likely to be impacted indirectly. Released in May 2020, Deno.js has a more robust core and several functionality and JavaScript capabilities. Deno: Safer, faster, lighter The software is built on Rust, which experts say that was the ideal decision since it not only made the runtime quicker and bug-free but also increased security. Once a programme is launched, it may quickly access your file system or network—a severe security weakness. Deno solves the issue by executing the code in a sandbox. It means that your file system or network are not accessible to the runtime. Besides security, Dahl’s concern was also related to speed. To solve this, he used Rust, a computer language that has recently gained popularity in the development world. This language has gained popularity for a variety of reasons, including guaranteeing that our applications are free from undefined behaviour and data races, increased memory safety, and so on. Rust is an extremely safe and fast programming language. In addition to being safer and faster, the software is lighter than Node. Dahl added built-in package management for resource retrieval, eliminating the need to utilise NPM. This is expected to be the game changer in the way modern JavaScript apps are designed. Instead of downloading packages from the NPM repository, it needs a URL, and Deno fetches the dependencies, much like browsers. Another advantage of Deno is that it caches all modules that you download. So, if a module is downloaded, Deno will cache it and not download it again until it is given the reload command. “Browsers have not blessed any one CDN for distributing JavaScript—the decentralized nature of the web is its greatest strength. I don’t see why this can’t also work for server-side JavaScript too. Thus I want Deno to not be reliant on any centralized code database”, said Ryan Dahl, founder of Node.js and Deno.js. So, what about Node.js? Deno is, undoubtedly, addressing the various drawbacks of Node, but it’s nowhere close to posing any threat to its predecessor. According to experts, Deno would take several years to gain traction. It is currently quite restricted, with many libraries still lacking. As a result, businesses would be slow to adopt it since it requires them to rewrite their programmes, which is time-consuming and costly. If Deno can provide compatibility with prominent Node.js libraries, widespread adoption may be achievable. JavaScript has been in existence for 26 years. It has evolved throughout time, adding new terms and features to keep up with the times. In this regard, Node.js may also alter and perhaps absorb many of the functions provided by Deno.
For Ryan Dahl, Deno.js is an attempt to undo the mistakes he did with Node.js
For Ryan Dahl, Deno.js is an attempt to undo the mistakes he did with Node.js
[]
["Go", "Rust", "programming_languages:R", "AI", "programming_languages:Java", "TypeScript", "JavaScript", "R", "Java", "programming_languages:JavaScript"]
["AI", "R", "JavaScript", "TypeScript", "Go", "Rust", "Java", "programming_languages:R", "programming_languages:JavaScript", "programming_languages:Java"]
Tausif Alam has been covering technology for almost a decade now. He is keen about connecting dots and bringing a wholesome picture of the tech world.