Pergunta sobre o uso da palavra 'portar' na programação

11

Atualmente, estou no processo de modificar um código C ++ que foi escrito para o sistema UNIX para que ele funcione compilando no Visual Studio. Eu tive que mudar os nomes de algumas funções internas e tive que mudar a maneira como matrizes dinâmicas são definidas.

Minha pergunta é: posso dizer que estou 'portando' esse código do UNIX para o Windows / Visual Studio ou 'portando' é usado apenas ao mudar de uma linguagem de programação para outra (portando de C ++ para Java)?

Roronoa Zoro
fonte
1
Muitos anos atrás, tive que converter o software OS / 2 de 16 bits para rodar no OS / 2 de 32 bits. Durante o projeto, todos se referiram a essa atividade como "portando para 32 bits". Portanto, nem mesmo significa mudar para um SO diferente ou mesmo hardware diferente, apenas um ambiente diferente.
Gort the Robot

Respostas:

15

Segundo a Wikipedia e minha própria experiência pessoal, o termo "portabilidade" refere-se a fazer o software funcionar para uma plataforma para a qual não foi originalmente planejado. Às vezes, esse processo exige uma mudança de idioma, mas nem sempre.

O termo geralmente não é aplicado ao processo de adaptação de software para executar com menos memória na mesma CPU e sistema operacional, nem na reescrita do código-fonte em um idioma diferente (por exemplo, conversão ou tradução de idioma).

Quando as pessoas dizem que os programas Java são mais "portáteis", significam que é preciso menos trabalho adicional para torná-los compatíveis com uma variedade de máquinas e sistemas operacionais diferentes.

StriplingWarrior
fonte
7
Pelo que vi, quando as pessoas dizem que os programas Java são mais portáteis, isso significa que eles não têm experiência em portar programas Java e simplesmente confiam nos argumentos de vendas da Sun / Oracle. Na minha experiência, portar Java é realmente um pouco mais difícil que a média (principalmente porque as pessoas foram encorajadas a acreditar que a portabilidade é automática / garantida e, portanto, indigna de atenção ou trabalho).
Jerry Coffin
2
@ JerryCoffin: Eu não tive muita experiência nessa frente. Os programas Java com os quais trabalhei eram todos aplicativos da Web que funcionavam igualmente bem em caixas Linux, Windows e Mac. Mas ouvi histórias de empresas cujo gerenciamento impulsou uma conversão em Java, apesar dos protestos dos desenvolvedores de que eles não alcançariam portabilidade dessa maneira.
StriplingWarrior
4
@ Jerry - não sei onde está sua experiência, mas praticamente todos os programas Java que eu portamos têm sido triviais para portar (isso inclui GUIs e aplicativos do lado do servidor em Mac / Win / Linux / Solaris). A Sun e a Oracle estão corretas na medida em que os aplicativos Java são mais fáceis de portar do que qualquer outra coisa - a maioria nem precisa de uma recompilação (o que seria necessário mesmo para C / C ++ portátil bem escrito, que provavelmente é o segundo melhor em portabilidade). As questões mais comuns que eu vejo é quando os desenvolvedores têm codificado coisas específicas de plataforma como "/" como separador de diretório, mas estes são muito fáceis de corrigir ....
mikera
@Jerry Programei jogos J2ME por 5 anos. Quando terminei, estávamos fazendo 80 versões de um jogo - todas as plataformas têm diferentes desempenhos, bugs, etc. Solução? Eles não criaram padrões para plataformas, criaram testes padronizados para aplicativos J2ME. Nunca mais.
Sulthan
2

Pode-se portar software entre sistemas operacionais. Pode-se portar software entre arquiteturas de processador. Pode ser necessário realizar algumas das atividades que eu normalmente associaria à "portabilidade" ao lidar com grandes alterações na plataforma (switch PPC -> x86 da Apple ou Windows XP -> Windows Vista / 7/8). Eu não consideraria mudar as linguagens de programação para "portar". Mais como reescrever completamente.

Eu tenho portado software do Linux para o Windows e vice-versa. Transferi software do SPARC para o x86 (adoro lidar com problemas endian) e de 32 bits para 64 bits. Atualmente, estou programando em Java ... Não sei se a palavra "portar" tem muito significado no Javaland, talvez entre as principais versões da JVM ....

James Adam
fonte
0

A portabilidade está se tornando cada vez mais popular no desenvolvimento de jogos, já que os editores desejam cobrir o maior número possível de plataformas (PC, Xbox, Playstation etc.). Como mencionado, portar significa converter o programa original para que ele funcione em um sistema completamente diferente. Geralmente os criadores de jogos convertem jogos de console em PC.

Juha Untinen
fonte
Cada vez mais desenvolvedores contam com ferramentas de desenvolvimento de plataforma cruzada, como o Unity, para que não precisem portar. Desenvolver uma base de código que é executada em muitas plataformas desde o início não é a mesma coisa que "portar", o que implica que algo foi projetado e executado em uma plataforma e modificado para ser executado em outra.
Gort the Robot
Isso parece interessante! Como isso afeta o desempenho e a escalabilidade? Uma preocupação provavelmente seria o fato de os consoles ainda serem bem mais lentos que os PCs mais sofisticados - como o Unity aborda isso sem comprometer a qualidade máxima em sistemas mais rápidos?
precisa saber é o seguinte