Gosto muito de java pra desktop, mas o meu preconceito com ele é a descompilação da aplicação final . O que tornar inviável o desenvolvimento desktop na minha concepção.[/quote]
esse é só um dos problemas… outros dois que também teriam são, primeiro que a api padrão de desktop, o swing é meio ruimzinho, os gerenciadores de layout são bem ruimzinhos de se trabalhar, em contrapartida também o mercado não usa muito, o investimento também não é tão alto quanto em outras partes como jee por exemplo…[/quote]
Não vejo isso como problema… basta compilar o Java para nativo… se realmente tiver essa necessidade.
Já usei este cara aqui, mas é pago:
http://www.excelsior-usa.com/jet.html
A diferença no carregamento da aplicação é a principal, entretanto não vi diferença de performance rodando os .jar e os executaveis em maquinas com mais de 1 nucleo…
Tem alguns casos que nem a diferença compensa… as vezes cai de 3 segundos para 1 segundo… 3 segundos para carregar a aplicação dependendo do tipo é irrelevante…
Tem alguns apps comerciais que usam esse cara…
[/quote]
O excelsior só vai otimizar o programa e não reduzir suas dependências. No final ele tem que embutir no executável a máquina virtual. Java é pesado porque tem muitas dependências. Quando digo “pesado” não quer dizer “lento”.[/quote]
ah sim… mas pesado em tamanho… agora nos dias de hoje… algo em torno de 50mb é realmente pesado ???
Volto na questão… tudo depende do que você vai fazer… tem casos que Java realmente não é uma boa escolha… mas tem muitos casos onde Java Desktop é sim uma ótima pedida!
[/quote]
Concordo com você. Eu me refiro a “aplicativos” e não a programas específicos como erps, etc… Para isso acho o swing e o swt ótimos. O problema é o maldito peso da aplicação. Para você ter uma idéia, 50mb é o peso sozinho da classe principal do programa:
Um programa grande vai ocupar na faixa de 1gb ou mais de memória.
Por isso é difícil um desktop possuir mais de duas aplicações java rodando ao mesmo tempo. Um típico caso de desktop seria o seguinte:
Adobe Photoshop editando imagens e passando recursos pela área de transferência para o microsoft word, enquanto você escuta música com mediaplayer e surfa na internet.
Isso é impossível com o java que temos hoje, entendeu?
[/quote]
Sim… já tinha entendido… e Repito… eu dificilmente usaria Java para software de prateleira (entenda-se office, photoshop, games e coisas assim)…
No caso do corporativo, só não concordo em ser tão pesado assim… estou trabalhando atualmente em um sistema em SWT que possui 4000 classes java… e consultas muito pesadas que montam tabelas com mais de 100 mil registros numa unica tela… e dificilmente o consumo de memória deste programa passa de 100MB.
Não sei até que ponto conseguiria fazer tão melhor em .NET…
E os outros programadores da equipe nunca trabalharam em C++…
Sem dizer que 50% dos fontes são compartilhados com um módulo Web… aumentando a produtividade… e este que roda em linux (esse foi o principal motivo de descartarmos o .NET no inicio do projeto… a prova de conceito com o mono não foi satisfatória…
mas cada caso é um caso…