Pregunta sobre el uso de la palabra 'portar' en la programación

11

Actualmente estoy en el proceso de modificar un código C ++ que fue escrito para el sistema UNIX para que funcione compilando desde Visual Studio. Tuve que cambiar algunos nombres de funciones integradas y tuve que cambiar la forma en que se definen las matrices dinámicas.

Mi pregunta es, ¿puedo decir que estoy 'portando' este código de UNIX a Windows / Visual Studio o 'portando' solo cuando se cambia de un lenguaje de programación a otro (portando de C ++ a Java)?

Roronoa Zoro
fuente
1
Hace muchos años, tuve que convertir el software OS / 2 de 16 bits para ejecutarlo en OS / 2 de 32 bits. Durante el proyecto, todos se refirieron a esta actividad como "portar a 32 bits". Por lo tanto, ni siquiera tiene que significar mudarse a un sistema operativo diferente o incluso a un hardware diferente, solo a un entorno diferente.
Gort the Robot

Respuestas:

15

Según Wikipedia , y mi propia experiencia personal, el término "portabilidad" se refiere a hacer que el software funcione para una plataforma para la que no estaba destinado originalmente. Este proceso a veces requiere un cambio de idioma, pero no siempre.

El término generalmente no se aplica al proceso de adaptar el software para que se ejecute con menos memoria en la misma CPU y sistema operativo, ni se aplica a la reescritura del código fuente en un idioma diferente (es decir, conversión o traducción de idiomas).

Cuando la gente dice que los programas Java son más "portátiles", quieren decir que se necesita menos trabajo adicional para hacerlos compatibles con una variedad de máquinas y sistemas operativos diferentes.

StriplingWarrior
fuente
77
Por lo que he visto, cuando la gente dice que los programas de Java son más portátiles, significa que carecen de experiencia en portar programas de Java, y simplemente confían en los argumentos de venta de Sun / Oracle. En mi experiencia, portar Java es en realidad un poco más difícil que el promedio (en gran parte porque se ha alentado a las personas a creer que la portabilidad es automática / garantizada y, por lo tanto, no merece atención ni trabajo).
Jerry Coffin
2
@JerryCoffin: No he tenido mucha experiencia en ese frente. Los programas Java con los que he trabajado fueron todas aplicaciones web que funcionaron igualmente bien en cajas de Linux, Windows y Mac. Pero he escuchado historias de empresas cuya administración impulsó una conversión de Java en ellas a pesar de las protestas de los desarrolladores de que no lograrían la portabilidad de esa manera.
StriplingWarrior
44
@Jerry: no estoy seguro de dónde reside su experiencia, pero casi todos los programas Java que he portado han sido triviales (esto incluye tanto las GUI como las aplicaciones del lado del servidor en Mac / Win / Linux / Solaris). Sun y Oracle son correctos en la medida en que las aplicaciones Java son más fáciles de portar que cualquier otra cosa; la mayoría ni siquiera necesita una recompilación (lo que sería necesario incluso para C / C ++ portátil bien escrito, que probablemente sea el segundo mejor en portabilidad). Los problemas más comunes que veo son cuando los desarrolladores han codificado cosas específicas de la plataforma como "/" como el separador de directorio, pero estos son bastante fáciles de solucionar ...
mikera
@Jerry Programé juegos J2ME durante 5 años. Cuando estaba terminando, estábamos haciendo 80 versiones de un juego: cada plataforma tiene un rendimiento diferente, errores, etc. ¿Solución? No crearon estándares para plataformas, crearon pruebas estandarizadas para aplicaciones J2ME. Nunca más.
Sulthan
2

Uno puede portar software entre sistemas operativos. Uno puede portar software entre arquitecturas de procesador. Es posible que deba realizar algunas de las actividades que normalmente asociaría con la "portabilidad" cuando se trata de cambios importantes de la plataforma (PPC de Apple -> conmutador x86, o Windows XP -> Windows Vista / 7/8). No consideraría cambiar los lenguajes de programación como "portadores". Más como reescribir completamente.

He portado software de Linux a Windows y viceversa. He portado software de SPARC a x86 (me encanta tratar con problemas endian) y de 32 bits a 64 bits. En estos días estoy programando en Java ... No estoy seguro de si la palabra "portar" tiene mucho significado en Javaland, tal vez entre las principales versiones de JVM ...

James Adam
fuente
0

La portación se está volviendo cada vez más popular en el desarrollo de juegos, ya que los editores quieren cubrir tantas plataformas como sea posible (PC, Xbox, Playstation, etc.). Como se mencionó, portar significa convertir el programa original para que funcione en un sistema completamente diferente. En general, los creadores de juegos convierten los juegos de consola a PC.

Juha Untinen
fuente
Cada vez más desarrolladores confían en herramientas de desarrollo multiplataforma como Unity para que no tengan que portar. Desarrollar una base de código que se ejecute en muchas plataformas desde el principio no es lo mismo que "portar", lo que implica que algo fue diseñado y ejecutado en una plataforma, y ​​luego modificado para ejecutarse en otra.
Gort the Robot
¡Eso suena interesante! ¿Cómo afecta el rendimiento y la escalabilidad? Una preocupación probablemente sea el hecho de que las consolas siguen siendo bastante más lentas que la mayoría de las PC de gama alta: ¿cómo aborda Unity esto sin comprometer la calidad máxima en sistemas más rápidos?
Juha Untinen