Portning
Wikipedia
Att porta programvara innebär att man anpassar ett program till en annan plattform. Programvara är vanligtvis inte kompatibel mellan olika system. Därför krävs att programmeraren gör om källkoden så den kan omvandlas till ett körbart program på den plattform man avser. Ordet ”porta” är en något slarvig direktöversättning av engelskans ”port”. Innebörden i svenska och engelska är densamma. Ibland förekommer ordet ”konvertera” med samma innebörd.
Poängen med att porta programvara är i regel att bredda marknaden för en (kommersiell) produkt. Genom att nå fler användare kan programutvecklaren tjäna mera pengar. Av den anledningen kan man ofta hitta ett och samma spel till flera olika datorer och TV-spel.
Mjukvaruutvecklare hävdar ofta att mjukvaran de skriver är portabel, d.v.s att det krävs obetydligt arbete för att porta den till en ny plattform. Den verkliga mängden arbete som slutligen krävs vid en portning beror på till vilken grad den ursprungliga miljön (källplattformen) skiljer sig från den nya miljön (målplattformen), den erfarenhet och kunskap som de ursprungliga programmerarna har över vilka programspråksfinesser och programbiblioteksanrop som kan vara ickeportabla, samt till vilken längd som den ursprunliga programmerarna har gått för att bara använda portabla delar av källplattformen. Att använda sig plattformspecifik funktionalitet ger ofta en snabbare och billigare lösning.
Antalet markant olika CPU:er och operativsystem som används idag har minskat jämfört med tidigare. Intels x86-processor dominenerar markanden i sådan grad att mycket skrivbordsmjukvara aldrig portas till andra CPU:er, och i samma marknad har urvalet av operativsystem reducerats till nästan bara två (Microsoft Windows och någon variant av Unix). Bland inbyggda system kan portabilitet fortfarande vara ett betydande problem.
Internationella standarder, som de som certifieras av ISO, underlättar portning i hög grad eftersom de specifierar detaljerna i en programmeringsmiljö på ett sätt som gör att den varierar väldigt litet mellan olika plattformer. Ofta är portning mellan två plattformer som stöder samma standard (som till exempel POSIX.1) så enkelt som att kompilera om källkoden på den nya plattformen. Det finns också ett ökande antal verktyg som underlättar portning, som GCC som tillhandahåller konsekventa programspråk på olika plattformaer, och autoconf som automatiserar hanteringen av mindre variationer i programmiljön och anpassar mjukvara följdaktligen före kompilering.