Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
Portability, in relation to software, is a measure of how easily an application can be transferred from one computer environment to another. A computer software application is considered portable to a new environment if the effort required to adapt it to the new environment is within reasonable limits. The meaning of the abstract term 'reasonable' depends upon the nature of the application and is often difficult to express in quantifiable units.
The phrase "to port" means to modify software and make it adaptable to work on a different computer system. For example, to port an application to Linux means to modify the program so that it can be run in a Linux environment.
Portability refers to the ability of an application to move across environments, not just across platforms. To clarify, a computer platform generally refers to the operating system and computer hardware only. A computer environment is much broader and may include the hardware, the operating system and the interfaces with other software, users and programmers.
Portability is a form of reusability. Some kinds of software are known to be less portable than others. An example of software that is not portable would be assembly code, since assembly code is specific to processor type. No software is perfectly portable because all softwares have limitations.
Some programming languages are fairly portable, for example the C language. C compilers are readily available for the majority of operating systems, which in turn makes C programs very portable. This portability of C language programs has resulted in some programmers re-writing their programs and recompiling them in C to make them much more portable.
Portability is also used to describe the flexibility of the use of data. Some file formats are less portable than others. For example, to view files with file formats such as PDF or JPEG, the formats depend on the availability of appropriate software applications.