6 ms·
Which I think is a big mistake, because even if it ends up being used in a low traffic site, it ends up complicating the installation process. Where as a compil
by hasenj 9y ago
Which I think is a big mistake, because even if it ends up being used in a low traffic site, it ends up complicating the installation process. Where as a compiled language not only would run fast but also have a very simple setup: just copy over the exe and run it. Nothing to configure. No dependencies to install.
- deleted 9y ago[deleted]
- noobiemcfoob 9y agoMany applications I've used that come as an exe are hardly that easy to install and configure. Inevitably, something breaks because of my machine's particular configuration. On the development side, building to that magical executable is an even bigger nightmare. Most packages in python or nodejs? Install and run through package managers just fine.
- jjawssd 9y ago> Many applications I've used that come as an exe are hardly that easy to install and configure. Python and Node interpreters are EXEs that are NOT easy to install and configure for 95+% of end-users > Inevitably, something breaks because of my machine's particular configuration. Indeed. Like a screwed up $PYTHONPATH > On the development side, building to that magical executable is an even bigger nightmare. I do not understand. > Most packages in python or nodejs? Install and run through package managers just fine. This implies you are familiar with WHICH interpreter you are calling and that you know where it is installed so you can call it. None of this is easy for end-users.
- hasenj 9y agoThe more you depend on things to be right in the target environment, the more chances you have of breaking things. Having a statically linked binary will not always magically solve this, but it's a great step in that direction. The other step is not relying on any external servers or services, e.g. postgresql, redis, etc. The rest just boils down to programmer discipline. Never introduce something that can potentially cause a headache to the end user. If you're building on an interpreted language, you can't really do that. You will always at least require the user to have a specific version of python/node/whatever. This can get complicated if the user has a different version, so now you have to introduce a virtualization layer that can manage several different versions of the environment. These tools are always annoying to use. Not to mention that some packages could have native dependencies (e.g. a python library having a dependency on a c library) and this is almost always a source of headaches.
- sillysaurus3 9y agoI mean, have you tried running arc? You can fire up arc 3.1 via racket and it runs fine.
- hasenj 9y agoI remember playing with it many years ago when I was still naive and at the time had bought into PG's promotion of lisp.
- spc476 9y agoIt depends upon the interpreter. I wrote a program for use at work in Lua. The entire program, plus Lua modules it requires, are bundled into a single executable. Nothing to install but it, and a configuration file.
- tomc1985 9y agoOnly if they provide a statically linked binary, which is rare -- especially in open source, where such a thing generally has consequences with your license(s).
- jjawssd 9y agoI think Golang has made significant inroads in this regard. For instance with IPFS and Minio. Very easy to just get started with minimal fuss.
- hasenj 9y agoI'm not sure what is IPFS or Minio, but as far as I know, the go compiler always produces statically linked binaries that have no external dependencies. This is the default out of the box behaviour.
- hasenj 9y agoThe only problematic licenses here are the GNU family of licenses. This is very unfortunate but there's no way around it. Luckily there are many many useful libraries available with very liberal licenses.
- tomc1985 9y agoWhile GNU is restrictive it is an important bulwark against exactly the kind of corporate conquest that more liberal licenses have seen. Much of Amazon's unfortunate domination over cloud services couldn't exist without liberal open-source licenses...
- hasenj 9y agoHow so? I think it's quite the opposite. The GPL allows you to run your code on a server that clients connect to without you having to give them the code to your server. This is the only way to profit off of GPL licensed libraries.
- digi_owl 9y agoEcho this. If there is ever something that looks nice and shiny but will invariably cause me grief in getting working, it is written in some interpreted language (Python seems to be a particularly good at messing with me) that want everything to be in some very peculiar way. And this trend of every new language coming with its own package manager is troubling me, as it means that developers will be even more lax about documenting their dependencies...