The problem with proprietary components in open source projects is not
just the costs, but the loss of many of the advantages of open source.
Pure advantages:
No per user, per site, per platform, or per machine licensing costs.
No budget surprises because of changing prices and strategies.
Freedom to deploy as you see fit without economic penalty.
Guaranteed future. No-one can force you to upgrade (even for new
hardware). If your vendor "stops supporting" your platform, you can
pick another. Some company going out of business is not going to
obsolete all your effort.
If it's broken, you can fix it. You are not dependent on a single
vendor for the fix and the fix cannot be tied to other "features" and
charges. You can find out what's happening without violating a license
agreement.
No boundaries or limits on where, when, and how the software can evolve
over time.
These advantages are all jepardized to the extent that proprietary
components are required. There is no reason or advantage to releasing
heavily encumbered source code at all.
Caution -- The costs of proprietary software are much larger then they
first appear:
The purchase price is just the down payment, you are going to need to
upgrade from time to time, so there is a cost per year.
The purchase price is just for a single platform (computer and Operating
System), the more industrial strength platforms are going to cost a lot
more.
The vendor is not doing their job very well if you are totally happy
after the initial purchase and never buy anything else. It is typical
to find that you need or want other proprietary add-ons.
Proprietary packages tend to run only on proprietary operating systems.
Even without licensing fees for the compiler runtime, your users could
still end up paying $50 - $1000 or more per seat in OS licenses. Server
licenses are going to be a *lot* more.
Proprietary packages tend to work best (or only!) with other proprietary
tools. Picking a compiler can end up limiting or directing your
purchases of source code control, debugger, platform development
documentation and tools, database management system, etc.
Your design is affected. Everyone designs their products to match the
technology available and to take advantage of it. Open source
developers have a tendency to use industrial strength components for
simple jobs (there is no economic penalty for this), while proprietary
developers have a tendency to buy components based on how well they are
marketed and their initial cost (searching and evaluation can be more
expensive than the initial price). GEHR would not be using Eiffel if
there were no good tools for it. For many developers, their first
introduction to open source is for a web server because the tools are so
good.
The same argument used for one tool (ie: it's just $x.xx and it would
save time) can be used for the next tool and the next. Where do you
draw the line on software licence costs? At $0.00 run-time costs and
$3500.00 per year per developer (this gets you a basic MS-windows
development setup for an individual in a small company)? This is a
popular answer.
What I've discovered is that the world where the line is $0.00 for both
run-time and development license costs is actually pretty good and in
most ways superior to what I was getting for my $3500.00 a year. I
recommend it highly.
The economics *are* different. If you want an advanced tool that's not
already available, then the decision is whether the time required to
create the tool is worth the time saved by having it. The advantage is
that there are a lot of developers to contribute to this kind of
project.
-Brian