Library/Software Engineering/Improving the Software Experience

Automatic Dependency Acquisition
If a program requires Python 2.6, it should be able to offer to install this automatically. (If the user chooses not to, the program itself should not install). The dependency should install to a standard location (symbolic linking would help here - other programs can find the dependencies in standard locations, if the user wants a secondary tree with their own data layout, that would not interfere with the standard location).

Versioning

The system should globally support major.minor.revision versioning so that, in the example above, Python 2.6 can easily install side-by-side with (for example) Python 2.7 and 3.1. Revisions may be optionally stored side-by-side or replaced to the latest version.

Further reading:
 * http://en.wikipedia.org/wiki/Side-by-side_assembly

Commerical software

For commercial programs, the dependencies should still be acquirable - though potentially at a cost.

All cost should be pre-calculated prior to installation: disk space cost, monetary cost, etc.