In 10 Things I Regret About Node, Ryan Dahl gave the following list of 8 regrets:
- Not sticking with Promises
- The Build System: GYP
- require("somemodule") is not specific
- require("module") without the extension ".js"
To translate for non-Node developers:
- Node has too much access to the computer it's running on.
3-8. The module/package system has become a bit of a nightmare.
Why would you do this? What's the point, isn't this disrupting the community? Isn't this bifurcating the module system? Nothing good can come from this, isn't this a Python 3 situation where we're going to end up with 10 years of difficulty with two different forks of the language?
And I think that those are good concerns, but I think it's time to reevaluate.
- Secure by default. No file, network, or environment access, unless explicitly enabled.
- Supports TypeScript out of the box.
- Ships only a single executable file.
- Built-in utilities including dependency inspector (deno info) and code formatter (deno fmt).
- Standard modules are audited and guaranteed to work with Deno: deno.land/std
Oak is a middleware framework for Deno's http server inspired by Koa. Koa itself aimed to be a more modern implementation of the Express framework and included contributors from Express. Middleware enables communication and management of data in distributed applications.
Types of middleware include web servers, application servers, content management systems, and similar tools that support application development and delivery. Oak also includes a router middleware inspired by koa-router for defining how an application’s endpoints (URIs) respond to the client's requests.
When learning Node it is extremely common to learn Express along with it and many never learn to use Node without Express. Many programmers coming to Deno will already have this mental model which means Oak is likely to be a very consequential framework for the Deno ecosystem.
The Changelog - A visit to Deno Land (May 15, 2020)
The Overflow – Digging into Deno 1.0 (May 22, 2020)
Ryan Dahl - 10 Things I Regret About Node.js (June 6, 2018)
Ryan Dahl - Deno, A New Server-Side Runtime (November 27, 2018)
Rafał Pocztarski - From Node.js to Deno (May 10, 2019)
Rafał Pocztarski - What is Deno? (October 25, 2019)
Michał Sabiniarz - How to contribute to Deno? (October 25, 2019)
Bartek Iwańczuk - Deno internals, how modern runtime is built (October 25, 2019)
Originally published on minimumViableStack