Goodness in programming languages, part 2 " getting your code running

March 08, 2012 [C, C++, Java, Programming Languages, Python, Tech]

Posts in this series: Syntax, Deployment, Metaprogramming, Ownership

The fancy word for what I'm talking about here is Deployment. How easy is it, once you've written your code, to get it running on someone else's computer? What barriers are there to someone else using your program?

Examples of potential barriers include:

Anything that can be done to remove these barriers makes my life as the supporter of the program easier, and makes it more likely people will use it.

Here are some things I like:

One way to handle dependencies is to package them together with your code. This is what most corporate Java software does - the specific Java runtime that is known to work is packaged with the program itself. This makes for big downloads, and defeats the concept of providing a single package for all platforms, but it does work. It also makes for huge headaches to do with licensing, and is often impossible for software producers who don't employ legions of lawyers. It also feels bad and wrong.

When packaging and deploying software, I subscribe to the philosophy of "Find the dependencies - and eliminate them". Until someone can click a single button and have your software running, you haven't finished.