Dependency Management

There are other things to consider, but using the examples above, let's discuss a few paths that can be taken.

Local or Remote

Linux, Mac, Windows, or Mixed

Many developers have an operating system of choice - one they're most familiar with - and you may want to support that. With this in mind, dependency management becomes a concern that should be addressed and it differs based on operating system. See Dependency Management, for more information.

Another good issue to address is operating system dependencies.


Which language you choose to support makes little difference. Each has a build system, each has a dependency manager, etc.

When you choose multiple, or have multiple needed for an app, then you start to have some slowdowns and must support multiple versions of the same type of tool at once.

As long as each tool can support automation in some form (e.g. bundle install and bundle check for Ruby), then you can build off of it without any problems. The issue may be getting people to use the same toolchain (e.g. glide vs goget for golang, or pyenv vs virtualenv for Python).