There are very significant differences between distributing programs in a static vs. dynamic language.
Github's Hub tool is a good example.
It was originally written in Ruby. This requires that the user:
- may need to handle a certain environment in terms of Ruby interpreter (potentially install a new version)
- may need to handle a certain libraries group (gemsets in RVM)
- needs to install dependencies
- needs to handle switching to the appropriate Ruby interpreter version and libraries group
Especially point 3 is a pain.
Even just installing everything as system Ruby won't work, because often, different Ruby interpreter versions are required.
Once they moved to Golang:
- the distributor compiles for different platforms
- the user downloads the given version for their O/S
That's all.