melSpeedl.ine Posted December 16, 2006 at 09:50 PM Report #70881 Posted December 16, 2006 at 09:50 PM 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
Rui Carlos Posted December 16, 2006 at 10:06 PM Report #70883 Posted December 16, 2006 at 10:06 PM 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. Rui Carlos Gonçalves
Knitter Posted December 16, 2006 at 10:26 PM Report #70885 Posted December 16, 2006 at 10:26 PM 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.
Hipnoted Posted December 17, 2006 at 11:33 AM Report #70913 Posted December 17, 2006 at 11:33 AM É 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"
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now