"A developer who wants to make a piece of software available
to others faces the daunting task of software delivery. There
are several strategies for delivering software, primarily source
code, machine binaries, and virtual machine binaries, each with its
own advantages and disadvantages. I'm going to discuss each of the
alternatives, then suggest a variation that is potentially better
than any of the other solutions for commercial as well as Open
Source software projects."
"The simplest solution for the user of the software is to
deliver machine binaries with a system-dependent installation
script so the user does not have to do anything but run the script.
This method is expensive for the distributor, who has to test,
maintain, and deliver multiple distributions and installation
scripts. And, with this method, it is inevitable that some systems
will not be supported. The disadvantages of this method may be
summarized by saying that machine binaries are too dependent on the
user's hardware and OS platform."
"From the distributor's point of view, the easiest delivery
method is bare source code, since it requires no work other than
making the code available. However, this does not make the problems
of distribution go away; it just moves them to the user. In order
to compile the program, the user needs to have a development system
compatible with the developer's, including a compiler, translators,
libraries, and tools such as make and yacc. And even with the
proper tools, if the user's hardware or OS is different from the
developer's, the user may need to do various porting work. The
disadvantages of this method may be summarized by saying that
machine binaries are too dependent on the developer's hardware, OS,
and development platform."
Some of the products that appear on this site are from companies from which QuinStreet receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. QuinStreet does not include all companies or all types of products available in the marketplace.