9.Â GPL Advantages and Disadvantages

A common reason to use the GPL is when modifying or extending
the gcc compiler. This is particularly apt when working with
one-off specialty CPUs in environments where all software costs
are likely to be considered overhead, with minimal expectations
that others will use the resulting compiler.

The GPL is also attractive to small companies selling CDs in
an environment where "buy-low, sell-high" may still give the
end-user a very inexpensive product. It is also attractive to
companies that expect to survive by providing various forms of
technical support, including documentation, for the GPLed
intellectual property world.

A less publicized and unintended use of the GPL is that it is
very favorable to large companies that want to undercut software
companies. In other words, the GPL is well suited for use as a
marketing weapon, potentially reducing overall economic benefit
and contributing to monopolistic behavior.

The GPL can present a real problem for those wishing to
commercialize and profit from software. For example, the GPL adds
to the difficulty a graduate student will have in directly forming
a company to commercialize his research results, or the difficulty
a student will have in joining a company on the assumption that a
promising research project will be commercialized.

For those who must work with statically-linked implementations
of multiple software standards, the GPL is often a poor license,
because it precludes using proprietary implementations of the
standards. The GPL thus minimizes the number of programs that can
be built using a GPLed standard. The GPL was intended to not
provide a mechanism to develop a standard on which one engineers
proprietary products. (This does not apply to Linux applications
because they do not statically link, rather they use a trap-based
API.)

The GPL attempts to make programmers contribute to an evolving
suite of programs, then to compete in the distribution and support
of this suite. This situation is unrealistic for many required
core system standards, which may be applied in widely varying
environments which require commercial customization or integration
with legacy standards under existing (non-GPL) licenses.
Real-time systems are often statically linked, so the GPL and LGPL
are definitely considered potential problems by many embedded
systems companies.

The GPL is an attempt to keep efforts, regardless of demand,
at the research and development stages. This maximizes the
benefits to researchers and developers, at an unknown cost to
those who would benefit from wider distribution.

The GPL was designed to keep research results from
transitioning to proprietary products. This step is often assumed
to be the last step in the traditional technology transfer
pipeline and it is usually difficult enough under the best of
circumstances; the GPL was intended to make it impossible.