Hacker News new | ask | show | jobs
by jetblackio 3007 days ago
Congratulations on open sourcing this. It looks great. Is there a reason you went with Node.js instead of something like Go? As a sysadmin, I personally hate having to deal with dependencies from tools built in non-compiled languages like Python, Node and Ruby.
4 comments

We did try to partially write it in Go. Writing it fully in Go would not have be possible because of the plugin system we have. However we struggled with Go quite a bit and ultimately dropped it from the codebase. This article gets more into detail as to why: https://blog.heroku.com/evolution-of-heroku-cli-2008-2017
We also have some tools we use with the Heroku CLI we will be backporting into oclif very soon that directly addresses this problem node has with distribution. Essentially it's some scripts that let you export an oclif CLI as a standalone tarball (node binary into it), optionally being able to autoupdate with github or s3.

oclif is also compatible with pkg (https://github.com/zeit/pkg) which will turn the CLI into a dependency-less single binary just like it would be with Go. I don't like it personally as I find it useful for debugging to actually edit the files. With Go we would have to cut a release just to add extra debugging information.

https://github.com/zeit/pkg can package up Node projects into a single executable.
I did not know about this. Thanks, it looks very interesting.
As part of dropping Heroku for our own platform we ended up writing something equivalent in python, then Go initially to deal with packaging/distribution. Its been pretty great, but damn I would have loved this to have been in Go. Then I wouldn't even tell the developers we moved off Heroku :P
I'm interested in the reasons this annoys you, as I find nearly all the installation problems we see in node is when somebody has included some C code that needs to be built.