the constraint of having salaried programmers working together in a dedicated facility. It was now possible for
programmers to collaborate in software
development via the Internet—whether
they were salaried personnel or volunteers, and whether they were trained
computer professionals or talented
amateurs. This was the birth of today’s
open source community. Linux was the
defining product of the community, and
the open source principle was also responsible for a large portion of the Internet infrastructure. Besides enabling the
new open source development regimen,
the Internet also removed the barriers to
software distribution. Whereas the existing software products industry had used
retail channels, which could carry only a
limited range of products, or had used
an (expensive) sales force, open source
products were freely available for downloading from the Internet. Open source
programs soon appeared in many of the
established software categories.
In the initial euphoria of open source
in the mid-1990s, it looked as though
in the future software would be “free”
in both senses of the word: free of cost
to consumers, and with freely available
source code. Ten years on, however, it
became clear that nothing was that simple. Fundamentally, open source was a
new development method. Traditionally, code development accounted for
10%–15% of the cost of a software product. The rest of the cost was for activities
such as marketing, packaging, and after-sales support (for example, telephone
help lines). For users, too, software was
only a fraction of what came to be called
the TCO (total cost of ownership), which
included computer and infrastructure
costs and technical support. Today,
there are numerous firms supplying
open source products, and their cost
structure turns out to be not very different compared to traditional software
firms. They spend 10%–15% of their income on code development, and the rest
is taken up with activities such as marketing and after-sales support. Because
of the open source development method, it may well be that their products are
better and less expensive than their proprietary equivalents, but for most users
they do not drastically change their total
information processing costs.
So, if a person was attempting to
peer into the future of software today,
the first software
products were
usually supplied in
both source code and
object code.
what would he or she predict? Such a
forecast has two dimensions: first, predictable extrapolation, and, second,
the unknowable paradigm shifts that
might take place. Predictably, we can
expect the open source paradigm to
gain in strength and to be increasingly
adopted by the traditional software industry, and that there will be some convergence between the two sides of the
industry. But in the next 10 or 15 years
there will surely be unanticipated technological discontinuities, comparable
with the launch of the IBM System/360
in the 1960s, the personal computer
in the late 1970s, and the open source
movement in the 1990s.
History shows us that the preferred
software development method of
the day has always been the one that
seemed to work best within the contemporary technological and economic constraints, particularly the costs of
computer ownership, programming
personnel, and data communications.
The next paradigm shift might well be
the currently much-hyped SaaS (
software as a service)—software delivered
as a service over the Internet rather
than as a product installed on a local
computer. SaaS seems to offer a technological prospect in which both proprietary and open source software can
flourish. But it is at least as likely that
some other technological development—perhaps already here and waiting in the wings—will create a software
future that is currently unimaginable.
That’s the fundamental reason historians are so reluctant to attempt to predict the future of software.
Martin Campbell-Kelly ( M.Campbell-Kelly@warwick.
ac.uk) is a professor in the Department of Computer
Science at the University of Warwick, where he specializes
in the history of computing.
Calendar
of Events
October 13–15
ASSETS ’08: The 10th
International ACM SIGACCESS
Conference on Computers and
Accessibility
Halifax, Nova Scotia,
Contact: Simon Harper,
Phone: 44-0-786-656-8334,
Email: simon.harper@
manchester.ac.uk
October 14–17
CBHPC ’08: Component-Based
High Performance Computing
Karlsruhe, Germany,
Contact: Masha Sosonkina,
Phone: 515-294-6751, Email:
masha@scl.ameslab.gov
October 14–17
CBSE ’08: 11th International
Symposium on Component-
Based Software Engineering
Karlsruhe, Germany,
Contact: Ralf H. Reussner,
Phone: 49-721-608-3934, Email:
reussner@ipd.uka.de
October 14–17
IIiX08: International Interaction
in Context Symposium
London, United Kingdom,
Contact: Mounia Lalmas,
Phone: + 44 020 7882 5200,
Contact: mounia@dcs.qmul.
ac.uk
October 16–18
SIGI TE ’08: ACM Special
Interest Group for Information
Technology Education
Conference
Cincinnati, OH,
Sponsored: SIGITE,
Contact: Mark Stockman,
Email: mark.stockman@uc.edu
October 19
PLOP ’08: Pattern Languages of
Programs
Nashville, TN,
Sponsored: SIGPLAN,
Contact: Ademar Aguiar,
Phone: 351-22-7125947,
Email: ademar.aguiar@fe.up.pt
October 19–22
SIGUCCS Fall ’08: ACM
SIGUCCS Fall Conference
Portland, OR,
Sponsored: SIGUCCS,
Contact: Terry B Wolff,
Phone: 213-821-2316,
Email: twolff@usc.edu