- 論壇徽章:
- 0
|
Portability, open standards and open source
Prev Chapter 15. Portability
Next
Portability, open standards and open source
Portability requires standards. Open-source reference implementations are the most effective
method known for both promulgating a standard and for pressuring proprietary vendors into
conforming. If you are a developer, open-source implementations of a published standard
can both tremendously reducing your coding workload and allow your product to benefit (in
ways both expected and unexpected) from the labor of others.
Let's suppose, for example, you are designing image-capture software for a digital camera.
Why write your own format for saving image bits or buy proprietary code when (as we noted
in Chapter 5 (Textuality)) there is a well-tested, full-featured library for writing PNGs in
open source?
The (re)invention of open source has had a significant impact on the standards process as
well. Though it is not formally a requirement, the IETF has since around 1997 grown
increasingly resistent to standard-tracking RFCs that do not have at least one open-source
reference implementation. In the future, it seems likely that conformance to any given
standard will increasingly be measured by conformance to (or outright use of!) open-source
implementations that have been blessed by the standard's authors.
In the end, the most effective step you can take to ensure the portability of your code is to not
rely on proprietary technology. You never know when the closed-source library or tool or
code generator or network protocol you are depending on will be end-of-lifed, or when it will
be changed in some backwards-incompatible way that breaks your project. With open-source
code, you have a path forward even if the leading-edge version changes in a way that breaks
your project; because you have access to source code, you can forward-port it to new
platforms if you need to.
Until the late 1990s this advice would have been been impractical. The few alternatives to
relying on proprietary operating systems and development tools were noble experiments,
academic proofs-of-concept, or toys. But the Internet changed everything; in early 2003
Linux and the other open-source Unixes exist and have proven their mettle as platforms for
delivering production-quality software. Developers have a better option now than being
dependent on short-term business decisions designed to protect someone else's monopoly. |
|