portability : Java Glossary
- The main point of Java is that your code should run on any platform without changes, without even recompiling.
Portability is a Good Thing™ even if you don’t plan to run the program on more that one platform. Why?
Portability leaves open the option to upgrade hardware, or to jump ship to some other operating system if your
current vendor misbehaves. It makes it easier to upgrade to future versions of the current operating system. It
leaves open the option to reuse or sell your software to some other user with different hardware or operating
system. It makes it easier to get help. No matter what platform your expert uses, he can still run or debug your
code for you. Unfortunately, manufacturers of hardware and operating systems historically have done their darndest
to discourage portability. It is to their economic advantage to lock you into their hardware or OS (Operating System). We programmers
and users need to fight back by avoiding Java tools that lock you into one platform. Ease of switching platforms
encourages vigorous competition between vendors. Peter Linden recommended having a look at this essay on
the issue. The flip side of this issue is that Sun has made some major boo-boos which then are forced on the entire
industry. These include a Date/Calendar set of classes only their mother could love, lack of consistency in the
naming of conversion functions and I/O methods, and a serialization technique that is slow and incapable of
handling even a 1000-element list.