Also, it’s weird how time flies. It’s been almost 6 years already since they made the version of the song in the video here linked, but it feels like just yesterday that I saw it.
(This happens to me Olaf the time)
As for quickJS, I've really enjoyed using it and was surprised how easy it was to get started with a brew install on a Mac.
Usually people submit then direct friends/contacts/Twitter followers/etc to the "new" page to upvote. "growth hacking"? :)
I was initially excited about the idea of a Go alternative to some existing js runtimes.
I had forgotten that Fabrice Bellard also made one of his signature hacks around JavaScript [1]. This thing is amazing and he created a nicely written and formatted pdf, absolutely lovely.
Then I started doing a simple comparison of the two code bases
(py38.env) zc:deno seanj$ tokei
-------------------------------------------------------------------------------
Language Files Lines Code Comments Blanks
-------------------------------------------------------------------------------
JavaScript 169 168797 146555 19948 2294
Markdown 89 10716 10716 0 0
Rust 101 42996 36525 2272 4199
TypeScript 668 117796 85786 20609 11401
-------------------------------------------------------------------------------
Total 1119 342851 281567 43027 18257
-------------------------------------------------------------------------------
(py38.env) zc:elsa seanj$ tokei
-------------------------------------------------------------------------------
Language Files Lines Code Comments Blanks
-------------------------------------------------------------------------------
Go 26 1143 949 21 173
JavaScript 31 146438 127418 18927 93
TypeScript 6 4450 1080 2823 547
-------------------------------------------------------------------------------
Total 72 153059 130470 21774 815
-------------------------------------------------------------------------------
The JS portions feel similar (spoiler, same TS runtime) and that Deno has documentation and probably a lot more tests.Here is the a breakdown of the test code in each.
# kept top-k entries after $find . -type f -not -ipath "*test*" -exec rm -f {} \;
(py38.env) zircon:deno_t seanj$ tokei
-------------------------------------------------------------------------------
Language Files Lines Code Comments Blanks
-------------------------------------------------------------------------------
JavaScript 107 2991 2564 151 276
Rust 6 5166 4476 141 549
TypeScript 420 40449 34436 1872 4141
-------------------------------------------------------------------------------
Total 614 50564 43246 2219 5099
-------------------------------------------------------------------------------
(py38.env) zircon:elsa_t seanj$ tokei
-------------------------------------------------------------------------------
Language Files Lines Code Comments Blanks
-------------------------------------------------------------------------------
Go 3 76 64 0 12
JavaScript 23 137 115 2 20
Plain Text 1 1 1 0 0
TypeScript 5 14 11 0 3
-------------------------------------------------------------------------------
Total 32 228 191 2 35
-------------------------------------------------------------------------------
The JavaScript foot print in both codebases is mostly dominated by the TypeScript runtime and library. (py38.env) zc:deno seanj$ find . -name "*typescript*js" -exec tokei {} \;
-------------------------------------------------------------------------------
Language Files Lines Code Comments Blanks
-------------------------------------------------------------------------------
JavaScript 1 147419 128513 18894 12
-------------------------------------------------------------------------------
Total 1 147419 128513 18894 12
-------------------------------------------------------------------------------
(py38.env) zc:elsa_js seanj$ find . -name "*typescript*js" -exec tokei {} \;
-------------------------------------------------------------------------------
Language Files Lines Code Comments Blanks
-------------------------------------------------------------------------------
JavaScript 1 145671 126934 18725 12
-------------------------------------------------------------------------------
Total 1 145671 126934 18725 12
-------------------------------------------------------------------------------
Deno only has 18kloc of js.Deno was originally written in Go, until V8's GC was getting in the way of Go's GC, so they could always work on early versions of Deno, if they are willing to accept the problems with V8 that pushed the project to Rust.