Can someone "sell me" on Deno? I'm still not sure why I should be interested in this versus for example NodeJS. Most of the features it lists seem rather dubious.

> Secure by default. No file, network, or environment access, unless explicitly enabled.

Great, but we're talking about server software so the first thing any project is going to do is enable all of that. And it's not like you can trust this on the server, you'd still need to sandbox to process if you truly want isolation.

> Supports TypeScript out of the box.

Okay so it's coupled to Microsoft's take on Javascript. What about Flow or any of the other compiles-to-Javascript languages? What's wrong with using Babel with sourcemaps?

> Ships only a single executable file.

I guess that could be convenient but I'm struggling to think of a situation where installing node has ever been a problem.

> Has built-in utilities like a dependency inspector (deno info) and a code formatter (deno fmt).

Is this not the job of the package manager? Or does deno force you to use itself as the package manager? Will that not just bring about another npm situation in a few years?

I feel like I'm clearly missing something with how excited everyone is about deno, but I have no idea what it is.

Deno has replaced shell scripts and Java in a lot of places for me.

My reasons:

- Types: I simply cannot program without them. Typescript is great.

- Single executable: Write programs that run the same on Linux/Windows without forcing the user to download the entire universe like other runtime environments.

- Built-in bundler: Write front-end code in Typescript and use a single command to bundle all dependencies.

Native JSON support in cli applications is not something you can appreciate if you haven't dealt with the pain surrounding it on the Java side.

> Types

There are so many better options if you want a good type system (Elm, PureScript, Rescript, GHCjs, Scala.js, and many more). TypeScript is unsound, and necessarily by it's design, it has to take on weird issues to maintain compatibility with JavaScript (null/undefined, can run effect anywhere, a lot of codebases are filled with any types). Heck, TypeScript doesn't even come with ADTs and proper pattern matching.

> TypeScript doesn't even come with ADTs

You still can use them [0].

> proper pattern matching

[1] is pretty good.

[0] https://itnext.io/practical-introduction-to-algebraic-dataty...

[1] https://github.com/gvergnaud/ts-pattern