4 ms·
I fully agree with this sentiment and this is why I’m increasingly convinced that scripting languages (and any language that requires a VM which is not included
by ninkendo 4y ago
I fully agree with this sentiment and this is why I’m increasingly convinced that scripting languages (and any language that requires a VM which is not included in the platforms you deploy to) are wholly inappropriate for software which you distribute to non-developer end-users.
Nobody should ever have to be hit with obscure pip/virtualenv/pypy/etc bugs for trying to use your command line app. Nobody should have to suffer through an “installation” step that requires installing the language itself and running a language-provided package manager to install dependencies/etc. I don’t care how much you wrap it in a setup.sh that tries (and typically, fails miserably) to automate everything.
(For OS’s like linux, your distro-provided package managers make the situation slightly better, but only if you ship your app as a package using these distro’s built-in package systems, which is a huge pain if you want to support multiple distros.)
But if you opt to skip the package manager and want to ship a “simple” installation experience using something like a setup.sh, and you want to use a scripting language like python/ruby/etc (integrated with an installation of that language in $HOME or in some system directory), you’re treating your users to a world of pain. Please, please use a compiled language, and ship a binary (or collection of binaries/libraries that can sit in a folder together and just work when you run it.)