Storage.com

software portability

By Alexander S. Gillis

What is software portability?

Software portability is a characteristic attributed to a computer program if it can run with minimal rework on operating systems (OSes) other than the one for which it was created. Software portability is important for applications, as the ability to work on other desktop and mobile platforms increases user flexibility and the application's potential user base. Building software with portability in mind can save developers time and overhead when moving new software across an environment.

Porting is the task of doing any work necessary to make the computer program run in the new environment. Likewise, the term portability itself is a measure of whether software can be ported without requiring major rework.

For example, a portable application could work on platforms such as Windows, Linux, iOS and Android. The porting process might include transferring installed program files to another system or creating the same program using different source code.

In general, programs that adhere to standard program interfaces are portable. Ideally, such a program needs only to be compiled for the OS to which it's being ported. Extensions might need to be removed or replaced with comparable functions in the new OS. In addition to language differences, porting can also require data conversion and adaptation to new system procedures for running an application.

Types of software portability

The following are three basic types of software portability:

Other, more specific instances of portability could include containerized applications. For example, a containerized application can be run on any host platform that supports containers and runs the same OSes.

How to implement software portability

Implementing software portability can differ depending on what's being created. However, as a general process, the first step is to document any system requirements and dependencies the software needs for the move to a new environment. It might be possible to use a tool, such as AWS Data Migration Service, to automatically move data between two environments. Automation tools such as Red Hat Ansible can also aid in the porting process.

If the application or software requires too much work to easily port, it should be redesigned to support portability or must be re-created in a separate environment.

For example, porting source code includes recompiling the source code. If this is too difficult, or if there are additional hurdles making the porting more difficult, then parts of the code might need to be rewritten. Other potential hurdles could include if specific file paths aren't portable or if third-party libraries aren't available on an OS.

Benefits and drawbacks of software portability

Software portability offers the following benefits:

However, potential downsides of software portability could include the following:

Software portability strategies

There are three strategies, or dimensions, to the software portability process: vertical, horizontal and deep.

Learn more about the process of designing a cloud application with portability as a top tenant.

06 Apr 2023

All Rights Reserved, Copyright 2000 - 2024, TechTarget | Read our Privacy Statement