Portability is a characteristic attributed to a computer program if it can be used in an operating systems other than the one in which it was created without requiring major rework. Porting is the task of doing any work necessary to make the computer program run in the new environment. In general, programs that adhere to standard program interfaces such as the X/Open UNIX 95 standard C language interface are portable. Ideally, such a program needs only to be compiled for the operating system to which it is being ported. However, programmers using standard interfaces also sometimes use operating system extensions or special capabilities that may not be present in the new operating system. Uses of such extensions have to be removed or replaced with comparable functions in the new operating system. In addition to language differences, porting may also require data conversion and adaptation to new system procedures for running an application.
Portability has usually meant some work when moving an application program to another operating system. Recently, the Java programming language and runtime environment has made it possible to have programs that run on any operating system that supports the Java standard (from Sun Microsystems) without any porting work. Java applets in the form of precompiled bytecode can be sent from a server program in one operating system to a client program (your Web browser) in another operating system without change.