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