Jump to content

Recommended Posts

Posted

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

Posted

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.

Posted
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.

Posted

É 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.

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.