Por que o java não é o mais indicado para desktop?

5 respostas
G

prezados,

vendo outro tópico de um colega, e vendo a resposta do moderador viny e outros membros dizendo que de fato para desktop o java não é uma boa opção, lhes pergunto então por qual motivo o java não é bom para desktop? eu pensei que fosse apenas uma questão de mercado, como desktop caiu consideravelmente.
Mas ao que parece o java mesmo é que não é tão bom pra desktop, como nunca trabalhei com desktop, gostaria da opinião dos que já trabalharam e tiveram experiência com java e outras linguagens, no que o java sai perdendo?

5 Respostas

E

Eu tenho um sistema relativamente grande para desktop (que escrevi em 100% Java mas estou procurando alguém na empresa que o porte para C++).

O problema dele é que ele ficou muito pesado e em várias máquinas da empresa ele não roda direito (e não sou eu que vou conseguir atualizar as máquinas dessas pessoas :frowning: )

Ele tem até umas telas relativamente complexas (em particular, como ele tem de acompanhar cotações de ações, com livros de ofertas com dezenas de milhares de entradas, ele tem de ser bastante rápido - e nesse ponto ele cumpre os requisitos), e ele ficou muito rápido de manter (isso porque qualquer bug é fácil de resolver - afinal de contas, Java é excelente nesse requisito) mas agora ele está bem estável e está precisando de rodar em várias máquinas mais velhinhas, e nesse ponto ele está deixando a desejar.

G

entanglement:
Eu tenho um sistema relativamente grande para desktop (que escrevi em 100% Java mas estou procurando alguém na empresa que o porte para C++).

O problema dele é que ele ficou muito pesado e em várias máquinas da empresa ele não roda direito (e não sou eu que vou conseguir atualizar as máquinas dessas pessoas :frowning: )

Ele tem até umas telas relativamente complexas (em particular, como ele tem de acompanhar cotações de ações, com livros de ofertas com dezenas de milhares de entradas, ele tem de ser bastante rápido - e nesse ponto ele cumpre os requisitos), e ele ficou muito rápido de manter (isso porque qualquer bug é fácil de resolver - afinal de contas, Java é excelente nesse requisito) mas agora ele está bem estável e está precisando de rodar em várias máquinas mais velhinhas, e nesse ponto ele está deixando a desejar.


pela resposta do Dr, estou entendendo que o java perde em relação as demais linguagens no quesito desempenho, é isso mesmo?

J

gambazinho:
prezados,

vendo outro tópico de um colega, e vendo a resposta do moderador viny e outros membros dizendo que de fato para desktop o java não é uma boa opção, lhes pergunto então por qual motivo o java não é bom para desktop? eu pensei que fosse apenas uma questão de mercado, como desktop caiu consideravelmente.
Mas ao que parece o java mesmo é que não é tão bom pra desktop, como nunca trabalhei com desktop, gostaria da opinião dos que já trabalharam e tiveram experiência com java e outras linguagens, no que o java sai perdendo?

Quando você liga o seu pc e loga na sua conta quantas aplicações desktop você vê? Eu pelo menos vejo 90% das minhas ferramentas. Essa questão de mercado é a área que você atua. Java é ótimo para soluções cliente servidor mas não é amplamente usada para soluções desktop. Isso acontece porque não havia investimentos num toolkit de janelas adequado e rico que possibilitasse uma experiência boa para usuários finais. Quantas instâncias do netbeans ou do eclipse você consegue deixar abertas no seu desktop sem derrubar o desempenho da sua máquina?

Aplicação desktop é aquela aplicação que você usa constantemente, como um navegador por exemplo. Você abre uma infinidade delas.

J

gambazinho:
entanglement:
Eu tenho um sistema relativamente grande para desktop (que escrevi em 100% Java mas estou procurando alguém na empresa que o porte para C++).

O problema dele é que ele ficou muito pesado e em várias máquinas da empresa ele não roda direito (e não sou eu que vou conseguir atualizar as máquinas dessas pessoas :frowning: )

Ele tem até umas telas relativamente complexas (em particular, como ele tem de acompanhar cotações de ações, com livros de ofertas com dezenas de milhares de entradas, ele tem de ser bastante rápido - e nesse ponto ele cumpre os requisitos), e ele ficou muito rápido de manter (isso porque qualquer bug é fácil de resolver - afinal de contas, Java é excelente nesse requisito) mas agora ele está bem estável e está precisando de rodar em várias máquinas mais velhinhas, e nesse ponto ele está deixando a desejar.


pela resposta do Dr, estou entendendo que o java perde em relação as demais linguagens no quesito desempenho, é isso mesmo?

Depende do desempenho. Se for velocidade a diferença para um programa escrito em c++ é muito pequena. Isso porque é mais fácil escrever um “software bom” em java do que em c++. Mas quando o desempenho é o “peso” da aplicação ela perde disparado. Isso porque o runtime do java é maior que a maioria dos toolkits de janela e bibliotecas de linguagens nativas. É o custo da máquina virtual. Lógico que existem outros fatores que também influenciam.

E

gambazinho:
entanglement:
Eu tenho um sistema relativamente grande para desktop (que escrevi em 100% Java mas estou procurando alguém na empresa que o porte para C++).

O problema dele é que ele ficou muito pesado e em várias máquinas da empresa ele não roda direito (e não sou eu que vou conseguir atualizar as máquinas dessas pessoas :frowning: )

Ele tem até umas telas relativamente complexas (em particular, como ele tem de acompanhar cotações de ações, com livros de ofertas com dezenas de milhares de entradas, ele tem de ser bastante rápido - e nesse ponto ele cumpre os requisitos), e ele ficou muito rápido de manter (isso porque qualquer bug é fácil de resolver - afinal de contas, Java é excelente nesse requisito) mas agora ele está bem estável e está precisando de rodar em várias máquinas mais velhinhas, e nesse ponto ele está deixando a desejar.


pela resposta do Dr, estou entendendo que o java perde em relação as demais linguagens no quesito desempenho, é isso mesmo?

Não exatamente. Ele é pesado, ou seja, precisa usar muitos recursos da máquina, como memória.
Além disso, os antivírus atuais costumam inspecionar todos os JARs que são usados por um programa Java, fazendo com que o carregamento deles seja muito atrasado :frowning: :frowning: :frowning: - você pode ter o caso de um programa Java demorar 5 minutos a ser carregado por causa de um antivírus mal-configurado.
Não que seja lento - como eu disse, ele é bem rápido, depois que foi completamente carregado.
Mas máquinas mais velhas costumam ter pouca memória - não é todo desktop que tem 8 GB de memória e roda Windows 64 bits, por exemplo.
Se o JavaFX estivesse mais maduro, provavelmente iria reescrever as telas do sistema para usar JavaFX, não Swing (que era a única alternativa razoável que existia na época em que comecei a escrever o programa).

Em um servidor (aplicação web, por exemplo), você não precisa se preocupar tanto com isso - você não usa Swing, e você tem várias aplicações que já ficam rodando o dia inteiro, e ele não roda em uma máquina Windows que roda um antivírus, e sim em uma máquina Unix ou Linux que não tem essas coisas que atrapalham o desempenho.

Tipicamente, para aplicações clientes, a velocidade de carregamento da aplicação é tão importante quanto a velocidade “pura” da aplicação (depois que ela entrou no ar). E é por isso que normalmente é melhor usar alguma outra coisa (como C# no caso do Windows, Qt/C++ no caso do Windows, Linux e MacOSX) para aplicações desktop.

Criado 30 de julho de 2012
Ultima resposta 30 de jul. de 2012
Respostas 5
Participantes 3