Deno was created by Ryan Dahl (along with help from a few special friends), the original creator of NodeJS. Ryan created Deno because, according to him, “I see the bugs that I made, design mistakes made that just cannot be corrected now.” There’s more to his reasons and how he went about solving Node’s problems and limitations in the article “Node.js creator delivers Deno 1.0, a new runtime that fixes ‘design mistakes in Node’“, https://www.theregister.co.uk/2020/05/14/nodejs_creator_deno_10/
I can’t judge whether he’s fixed any, or all, of Node’s problems. But I can judge that his work is very interesting because it’s all implemented in Rust.
To get Deno running I first installed Rust. Then using Rust’s cargo I installed Deno, all on the Jetson Xavier NX running JetPack 4.4, which means Ubuntu 18.04.
Installing Rust is simple enough as documented here: https://www.rust-lang.org/learn/get-started
Or you can copy the following command directly from this post, which was copied from the Rust page, to cut to the chase as it were:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Make sure you ‘apt install curl’ before you do this because curl isn’t installed by default in this version of Ubuntu.
Then go over to the Deno installation section here: https://deno.land/#installation
Or you can simply run the following command once Rust is installed and have Rust just do the heavy lifting:
cargo install deno
You can sit back and watch cargo download and build all the necessary packages to produce a Deno runtime. By the way, Rust is installed in your login directory under ~/.cargo, and that’s where all of Deno is also stashed. It’s local to whatever login account you’re using which makes it kind of handy if you want to delete everything and start over.
With Deno installed I then wrote/copied the tiny test program on the Deno main web page and executed it.
It’s kinda neat. Here is a real strong alternative to Node, written in Rust. It’s a bit over the top to say this, but Deno could be Rust’s “killer project” that really helps push Rust along. If you want a way to dive into Rust, then do it through Deno.
One other thing. I tried to edit TypeScript code in Emacs by attempting to install support via MELPA and MELPA-stable. I’m still the Emacs neophyte after all these years, especially with Emacs Lisp, so that’s a mark against me. But the workaround right now is to name all my files with a .js extension, and then Emacs does its syntax highlighting thing. Problem solved.
I have to admit I’m having fun. I haven’t had this much fun since the “good old days” of the 1970s and early 1980s with the 6502 KIM, Apple ][, and Commodore 64. All those were wide open and very approachable. Today’s Raspberry Pi and Jetson Nano and NX boards bring a lot of that back and make working with both hardware and software so much easier and more powerful.
I’ve got my tools in place, so now it’s time to dig and get a proper feel for the NX and JetPack 4.4.