Domanda sull'uso della parola "porting" nella programmazione


11

Attualmente sto modificando un codice C ++ che è stato scritto per il sistema UNIX in modo che funzioni compilando da Visual Studio. Ho dovuto cambiare i nomi di alcune funzioni integrate e ho dovuto cambiare il modo in cui sono definiti gli array dinamici.

La mia domanda è: posso dire che sto "eseguendo il porting" di questo codice da UNIX a Windows / Visual Studio o il "porting" viene utilizzato solo quando si passa da un linguaggio di programmazione a un altro (porting da C ++ a Java)?


1
Molti anni fa, ho dovuto convertire il software OS / 2 a 16 bit per funzionare su OS / 2 a 32 bit. Durante il progetto, tutti si sono riferiti a questa attività come "porting a 32 bit". Quindi non deve nemmeno significare passare a un altro sistema operativo o hardware diverso, solo un ambiente diverso.
Gort the Robot

Risposte:


15

Secondo Wikipedia e la mia esperienza personale, il termine "porting" si riferisce a far funzionare il software per una piattaforma per la quale inizialmente non era previsto. Questo processo a volte richiede un cambio di lingua, ma non sempre.

Il termine non viene generalmente applicato al processo di adattamento del software per l'esecuzione con meno memoria sulla stessa CPU e sistema operativo, né si applica alla riscrittura del codice sorgente in una lingua diversa (ovvero conversione della lingua o traduzione).

Quando le persone affermano che i programmi Java sono più "portatili", significano che ci vuole meno lavoro aggiuntivo per renderli compatibili con una varietà di macchine e sistemi operativi diversi.


7
Da quello che ho visto, quando la gente dice che i programmi Java sono più portabili, significa che mancano di esperienza nel porting dei programmi Java e si basano semplicemente sui passi di vendita di Sun / Oracle. Nella mia esperienza, il porting di Java è in realtà un po 'più difficile della media (soprattutto perché le persone sono state incoraggiate a credere che la portabilità sia automatica / garantita e quindi indegna di attenzione o lavoro).
Jerry Coffin,

2
@JerryCoffin: non ho avuto molta esperienza su quel fronte. I programmi Java con cui ho lavorato erano tutte applicazioni web che funzionavano altrettanto bene su Linux, Windows e Mac. Ma ho sentito storie di aziende la cui gestione ha spinto una conversione Java su di loro nonostante le proteste degli sviluppatori che non avrebbero raggiunto la portabilità in quel modo.
StriplingWarrior,

4
@Jerry - non sono sicuro di dove risieda la tua esperienza, ma praticamente ogni programma Java che ho portato è stato banale da portare (questo include sia le GUI che le app lato server su Mac / Win / Linux / Solaris). Sun e Oracle sono corretti nella misura in cui le app Java sono più facili da trasportare rispetto a qualsiasi altra cosa - la maggior parte non ha nemmeno bisogno di una ricompilazione (che sarebbe necessaria anche per un C / C ++ portatile ben scritto che è probabilmente il 2 ° migliore per la portabilità). I problemi più comuni che vedo sono quando gli sviluppatori hanno hardcoded cose specifiche della piattaforma come "/" come separatore di directory, ma questi sono abbastanza facili da risolvere ....
Mikera,

@Jerry Ho programmato i giochi J2ME per 5 anni. Quando stavo finendo, stavamo realizzando 80 versioni di un gioco: ogni piattaforma ha prestazioni, bug ecc. Diversi. Soluzione? Non hanno creato standard per le piattaforme, hanno creato test standardizzati per le applicazioni J2ME. Mai più.
Sulthan,

2

È possibile eseguire il port del software tra i sistemi operativi. È possibile eseguire il port del software tra architetture di processori. Potrebbe essere necessario eseguire alcune delle attività che normalmente assocerei al "porting" quando si tratta di importanti cambiamenti della piattaforma (PPC di Apple -> switch x86 o Windows XP -> Windows Vista / 7/8). Non prenderei in considerazione il passaggio dei linguaggi di programmazione come "porting". Più come riscrivere completamente.

Ho portato il software da Linux a Windows e viceversa. Ho portato il software da SPARC a x86 (adoro gestire le problematiche endian) E da 32-bit a 64-bit. In questi giorni sto programmando in Java ... Non sono sicuro che la parola "porting" abbia molto significato in Javaland, forse tra le principali versioni di JVM ....


0

Il porting sta diventando sempre più popolare nello sviluppo del gioco, poiché gli editori vogliono coprire quante più piattaforme possibili (PC, Xbox, Playstation, ecc.). Come accennato, porting significa convertire il programma originale in modo che funzioni in un sistema completamente diverso. Generalmente i produttori di giochi convertono i giochi console su PC.


Sempre più sviluppatori si affidano a strumenti di sviluppo multipiattaforma come Unity in modo che non debbano effettuare il porting. Lo sviluppo di una base di codice che gira su molte piattaforme all'inizio non è la stessa cosa di "porting", il che implica che qualcosa è stato progettato ed eseguito su una piattaforma e quindi modificato per essere eseguito su un'altra.
Gort il robot il

Sembra interessante! In che modo influenza le prestazioni e la scalabilità? Una preoccupazione sarebbe molto probabilmente il fatto che le console sono ancora molto più lente della maggior parte dei PC di fascia più alta: come fa Unity ad affrontarlo senza compromettere la massima qualità su sistemi più veloci?
Juha Untinen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.