• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

melSpeedl.ine

programação e arquitecturas de sistemas

4 mensagens neste tópico

pois bem pessoal, queria levantar um debate sobre algo que eu acho que é um pouco esquecido por muito programadores - programação dedicada as arquitecturas disponíveis

o que é que quero dizer com isto??

grande parte do software que se vê por este mundo fora, não passa de um pack, igual para tudo e todos diferenciado na maioria dos casos "apenas" pelos OS a que se destinam.

E o resto?

desenhar um programa que trabalhe d igual forma num pentium3 como num core2??? porque não uma programação dedicada as diversas arquitecturas de hardware disponíveis??

quais as vantagens e desvantagens?

é esta a questão que deixo no ar e que gostaria que vocês expusessem a vossa opinião.

cumps

mel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

acho que quando programamos, devemos fazer o código o mais genérico possível, de forma a que funcione no maior número de plataformas disponíveis.

adaptar o software aos SO/arquitecturas é, na maioria dos casos, uma tarefa que pode ser feita pelos compiladores.

adaptar o código para tirar o máximo desempenho de uma arquitectura obriga-nos a conhecer essa arquitectura muito bem, para além de que, muitas vezes, é preciso analizar o código assembly gerado pelo compilador, para saber se uma determinada opção conduz ou não a um melhor desempenho. tal complicaria demasiado a tarefa do programador.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
tal complicaria demasiado a tarefa do programador.

Para não falar no tempo e investimento que demoraria tal tarefa...

Tomemos com exemplo simples uma aplicação desktop em C/C++, indiferente neste caso, e uma em Java. Pondo de parte qualquer questão de performance e focando apenas a parte da portabilidade... Uma equipa de programadores poderá criar a aplicação em java, suponhamos em 3 meses, isto faz com que em 3 meses a empresa tenha no mercado uma aplicação completamente funcional e que vai poder vender em virtualmente todas as plataformas que existem.

Se a empresa optar por criar o mesmo sistema em C/C++ terá de ter não uma, mas várias equipas, cada uma especializada numa plataforma para que seja possível ter a aplicação pronta. Isto duplicará despesas, esforços e aumentará o número de erros que a aplicação terá, para não falar que cada versão do software terá problemas inerentes à plataforma onde corre. Isto é um exemplo aplicado a duas linguagens mas podemos transportá-lo para as plataformas que existem.

Criar aplicações com código genérico, modular e que possa ser transposto para outras plataformas sem esforço é mais barato e mais seguro porque os erros tendem a ficar relacionados com apenas uma porção de código e não são introduzidos bugs por questões relacionadas com a platforma onde correm.

Mesmo que uma equipa conheça as várias plataformas onde a aplicação vai ser executada esse conhecimento é dispendioso, não só para a empresa como para o programador que terá de dominar muita coisa. E claro, ninguém sabe tudo e nunca é boa ideia tentarmos ser bons em tudo senão acabamos por não saber coisa alguma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É dificil criar programas que funcionem de igual para igual em todas as plataformas. Pelas razões que já indicaram e por outras.

Uma forma de contornar isso seria se as principais empresas que produzem as arquitecturas adoptassem uma convenção para tal mas não sei até que ponto isso é possivel. Assim deixaríamos de ter 500 versões de software para correr em 500 arquitecturas. Mas pode ser que um dia isso aconteça.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora