Deno is a JavaScript/TypeScript runtime. Its main function is to build servers based on the Chrome V8. The objective is to be a better Node.
Both Node and Deno originated from the same guy, Ryan Dahl.
Ryan has a good eye for trade-offs. That is why Deno is written in Rust and uses a package manager strategy similar to Go. And the objective for Deno is to be able to develop in JavaScript / TypeScript / Rust.
Why all this “mess”?
The idea is to start developing fast with JavaScript, add TypeScript to make it more secure and finally swap the critical areas to Rust.
And as a bonus, “deno” is “node” sorted alphabetically:
"node".split("").sort().join("") // deno
There’s a possibility of Deno not going very far because Node is good enough and widely used. Or because the node libraries become more performant and safe, so they convert to TypeScript and Rust and the need for improving the code base is reduced. IIRC, this happened a bit with Cython, the fast python.
For now I’m cautiously optimistic.