Question sur l'utilisation du mot «portage» dans la programmation


11

Je suis actuellement en train de modifier un code C ++ qui a été écrit pour le système UNIX afin qu'il fonctionne en compilant à partir de Visual Studio. J'ai dû changer le nom de certaines fonctions intégrées et j'ai dû changer la façon dont les tableaux dynamiques sont définis.

Ma question est, puis-je dire que je «porte» ce code d'UNIX vers Windows / Visual Studio ou que le «portage» est utilisé uniquement lors du passage d'un langage de programmation à un autre (portage de C ++ vers Java)?


1
Il y a de nombreuses années, j'ai dû convertir un logiciel OS / 2 16 bits pour fonctionner sur OS / 2 32 bits. Pendant le projet, tout le monde a qualifié cette activité de "portage sur 32 bits". Cela ne signifie donc pas nécessairement de passer à un autre système d'exploitation ou même à un matériel différent, juste à un environnement différent.
Gort the Robot

Réponses:


15

Selon Wikipedia et ma propre expérience personnelle, le terme "portage" fait référence au fonctionnement d'un logiciel pour une plate-forme à laquelle il n'était pas initialement destiné. Ce processus nécessite parfois un changement de langue, mais pas toujours.

Le terme n'est généralement pas appliqué au processus d'adaptation d'un logiciel pour fonctionner avec moins de mémoire sur le même processeur et système d'exploitation, ni à la réécriture du code source dans une langue différente (c'est-à-dire la conversion ou la traduction d'une langue).

Lorsque les gens disent que les programmes Java sont plus "portables", cela signifie qu'il faut moins de travail supplémentaire pour les rendre compatibles avec une variété de machines et de systèmes d'exploitation différents.


7
D'après ce que j'ai vu, lorsque les gens disent que les programmes Java sont plus portables, cela signifie qu'ils manquent d'expérience dans le portage de programmes Java et s'appuient simplement sur les arguments de vente de Sun / Oracle. D'après mon expérience, le portage de Java est en fait un peu plus difficile que la moyenne (principalement parce que les gens ont été encouragés à croire que la portabilité est automatique / garantie et donc indigne d'attention ou de travail).
Jerry Coffin

2
@JerryCoffin: Je n'ai pas beaucoup d'expérience sur ce front. Les programmes Java avec lesquels j'ai travaillé étaient toutes des applications Web qui fonctionnaient aussi bien sur les boîtiers Linux, Windows et Mac. Mais j'ai entendu des histoires d'entreprises dont la direction a poussé une conversion Java sur elles malgré les protestations des développeurs qui ne parviendraient pas à la portabilité de cette façon.
StriplingWarrior

4
@Jerry - je ne sais pas où se trouve votre expérience, mais à peu près tous les programmes Java que j'ai portés ont été triviaux à porter (cela inclut les interfaces graphiques et les applications côté serveur sur Mac / Win / Linux / Solaris). Sun et Oracle ont raison dans la mesure où les applications Java sont plus faciles à porter qu'autre chose - la plupart n'ont même pas besoin d'une recompilation (ce qui serait nécessaire même pour un C / C ++ portable bien écrit qui est probablement le deuxième meilleur en matière de portabilité). Les problèmes les plus courants que je vois sont lorsque les développeurs ont des éléments spécifiques à la plate-forme codés en dur comme "/" comme séparateur de répertoire, mais ceux-ci sont assez faciles à résoudre ....
mikera

@Jerry J'ai programmé des jeux J2ME pendant 5 ans. À la fin, nous faisions 80 versions d'un jeu - chaque plate-forme a des performances différentes, des bugs, etc. Solution? Ils n'ont pas créé de normes pour les plates-formes, ils ont créé des tests standardisés pour les applications J2ME. Plus jamais.
Sulthan

2

On peut porter le logiciel entre les systèmes d'exploitation. On peut porter le logiciel entre les architectures de processeur. Il se peut que vous deviez effectuer certaines des activités que j'associerais normalement au "portage" lors de changements majeurs de plate-forme (PPC d'Apple -> commutateur x86 ou Windows XP -> Windows Vista / 7/8). Je ne considérerais pas le changement de langage de programmation comme un «portage». Plus comme une réécriture complète.

J'ai porté des logiciels de Linux vers Windows et vice-versa. J'ai porté des logiciels de SPARC vers x86 (j'adore les problèmes endiens) et de 32 bits à 64 bits. Ces jours-ci, je programme en Java ... Je ne sais pas si le mot "portage" a beaucoup de sens en Javaland, peut-être entre les principales versions de la JVM ...


0

Le portage devient de plus en plus populaire dans le développement de jeux, car les éditeurs souhaitent couvrir autant de plateformes que possible (PC, Xbox, Playstation, etc.). Comme mentionné, le portage signifie la conversion du programme d'origine afin qu'il fonctionne dans un système complètement différent. Généralement, les fabricants de jeux convertissent les jeux de console en PC.


De plus en plus de développeurs s'appuient sur des outils de développement multiplateforme comme Unity pour ne pas avoir à porter. Développer une base de code qui s'exécute sur de nombreuses plates-formes au départ n'est pas la même chose que le "portage", ce qui implique que quelque chose a été conçu et exécuté sur une plate-forme, puis modifié pour s'exécuter sur une autre.
Gort the Robot

Cela semble intéressant! Comment cela affecte-t-il les performances et l'évolutivité? Une préoccupation serait probablement le fait que les consoles sont encore beaucoup plus lentes que la plupart des PC haut de gamme - comment Unity aborde-t-il cela sans compromettre la qualité maximale sur les systèmes plus rapides?
Juha Untinen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.