Corporate BSD
"The Open API Initiative"
D S Wilde
As we approach the Twenty-First Century, it is time to assess what is good
and what is bad about computers and the way they are used, and to seek with
wisdom to right the wrongs that have been propagated through the early development
stages of the computer revolution. Computers -- especially inexpensive, mass
produced personal computers -- have more power than most of the early systems
used to design the atom bombs and Apollo moon rockets. Electronic transaction
processing is well on its way to making commerce worldwide and instantaneous.
There is no question that in many ways business is booming because of the
new opportunities created by electronics, software and the communications
infrastructure we are creating that links it all together, and the world
is better in a lot of ways for all of these efforts.
In my columns in each alternate month of Daemon News, I'm going to examine the
computer industry from the perspective of the corporate user. My day job
involves managing and making sense of a heterogenous mishmash of systems
including Novell and NT network servers, HP-UX workstations, and dozens of
PC's for a corporation that has grown from a garage to a worldwide leader
in its unique niche. In the four years that I have had this responsibility,
I've developed some definite opinions about what is good and what is harmful
about the way the computer industry does business. I've also begun the long
and slow process of replacing all of the above-mentioned proprietary systems
with FreeBSD and its associated freeware applications.
I'm not a fan of government intervention in any way, shape or form. I'm a
Libertarian, and I believe that every manufacturer and user has the right
to do business as they choose. My plan is to stand up on my soap box and
explain my points well enough that the average user will agree and say,
"I will no longer accept this. Change!" If enough agree, Mr. Gates and all the
other manufacturers will see that it is in their interests to accomodate us.
One of the key issues facing any Information Technology department is
interoperability and compatibility. We need software to run successfully
on our desktop systems, share data with other networked PCs and servers,
and coexist peacefully with other software provided by different manufacturers.
This is very, very basic, but as we all know, it is not the way real life is.
Manufacturers advertise interoperability, but few deliver it. As we are seeing
in the current Department of Justice investigations, some manufacturers
believe it is acceptable to deliberately disrupt competitors' software.
We can see from the mountains of money the most successful software companies
accumulate that there is a strong incentive for them to continue to battle
behind the scenes with dueling DLLs and proprietary hooks that are jealously
guarded secrets. As long as they can get rich from it and get away with
it, why change?
We who use freeware are well aware of the value of source code availability
in software. Not only can we (or our paid corporate MIS experts) discern
the functionality encoded in the product, we can also identify all file
formats and command API's. Unfortunately, there are others who are not so lucky.
Users of payware such as Microsoft Windows(TM) have no access to the code source,
and they suffer accordingly. Since I in my corporate persona must support
Windows users, I see their struggles daily. It is not likely that manufacturers
will release their source code for public scrutiny -- except under duress -- so we
will not be able to achieve the same openness in their world as we have in ours,
but I believe it is an acheivable goal to insist that manufacturers provide
basic and complete documentation for their products' interaction with our systems.
The time has come for us to mount an effort to educate the rest of the
corporate world about the damage 'proprietary secrets' do to their ability
to integrate software successfully. While I don't fault the software
manufacturers for trying to get away with as much as they can get users to
agree to, it is our responsibility as the best of the user breed to make
sure these devious business practices are stopped cold. People can still
choose to buy payware. I would too, if it met my needs. There is no question
that professional programmers can create brilliant software that does wonders
for corporate productivity. It is also true that buying software gets business
results much faster than writing software. What we need to do is to help our
less-enlightened friends and bosses realize how vulnerable they are and how
much more understandable and productive the computer world will be if we all
insist on a few simple stipulations before we buy software:
- all filesystem interfaces documented (file formats, file locations expected,
BIOS routines used, etc.)
- all operating system interfaces documented (shared library versions required,
system calls, etc.)
- all inter-program communication interfaces documented
- all user commands documented, whether used, fully implemented, or not.
- all known bugs and patches listed for public access
Any reasonable person would think I'm not asking a lot. All these things
have to exist somewhere in the programmers' internal documentation,
otherwise they'd never get it out the door. If you think about it, though,
when was the last time you saw a payware reference manual that actually
listed all the commands and command options? When have you ever seen
complete Windows Help documentation for any program? All you get these days
is a pretty little graphic depiction of one or two of the command operations, and
you're supposed to figure out the rest by yourself. It's Windows, right?
Everybody knows how Windows works. Sure, we do...
I and all of our BSD Advocates are all actively seeking suggestions for
ways we can change the course of software history. We realize we will never
see wide acceptance of our free software as long as we can't obtain basic
software interface information without paying a steep price for the privilege.
We have also shown that when such interface information is available,
freeware developers are more than up to the task of matching payware development
stride for stride, and the users are the beneficiaries.
The only group that can possibly achieve what I am proposing is an actively
involved worldwide user population. To raise the user world above apathy
is not a trivial undertaking, but it is a hurdle we must overcome if we
wish to become more than a footnote in the list of operating system market
failures. If you agree with this goal, sign up for one of the freeware advocacy
mailing lists, such as freebsd-advocacy@freebsd.org, and let's discuss the
possibilities for creating a beneficial earthquake in the software world.