Portabilität (Informatik)
Als Portabilität wird der Grad der Plattformunabhängigkeit eines Computerprogramms bezeichnet, nicht nur der bestehenden Plattformunabhängigkeit, sondern auch unter Einbeziehung des eingeschätzten Arbeitsaufwandes, der benötigt würde, um das Programm in ein vollständig plattformunabhängiges umzuwandeln.
Der Grad der Portabilität ist umgekehrt proportional zum Aufwand das Computerprogramm auf einer anderen Plattform zum fehlerfreien Laufen zu bringen. 100% Portabilität ist dann gegeben, wenn der Aufwand 0 Stunden beträgt. Ein hoher Grad an Portabilität ist dann vorhanden, wenn das Programm mit bloß wenigen Stunden Aufwand oder ohne Aufwand aber mit nur gering eingeschränkter Funktionalität auf der anderen Plattform läuft.
Beispiele für Softwaresysteme mit einer hohen Portabilität:
- Java-Code der in einer Java-Virtual-Machine läuft
- .NET-Code der in einem .NET Framework läuft
- Lotus-Notes-Anwendungen, die auf den Plattformen Windows, Macintosh, Unix u.a.m. laufen
Allerdings ist anzumerken, dass der Begriff "Portabilität" im Falle von Java/.NET den Kern der Sache nicht wirklich trifft, da es sich von Beginn an um plattformunabhängige Konzepte handelt - also auch alle APIs auf jedem Zielsystem im Vorhinein so nachgebildet werden müssen, dass die Software zwangsläufig lauffähig ist. Ansonsten wäre z.B. eine Java JVM nicht zertifizierungsfähig.
Hierzu ist zu ergänzen, dass gerade im Server-Bereich, wo schon sehr früh mit virtuellen Maschinen und virtuellen CPUs gearbeitet wurde (z.B. von IBM) Portabilität ein anderes Gesicht hat, als man es von klassischen Unix-/Linux-Portierungen her kennt - letztere fassen zwar zunehmend im Desktop-Bereich Fuß, verursachen durch die starke Ausrichtung auf x86-PCs in Sachen Plattformunabhängigkeit allerdings oftmals eher mehr Kopfzerbrechen als klassische Unix-Anwendungen.