pq o swing é tão pesado( lento ao abrir aplicação ) em relação ao Delphi?
Delphi compila e gera um EXE nativo, java é interpretado. Isso por si só já é uma diferença considerável, mas além disso o Swing não utiliza o SO para desenhar os componentes, ele o faz sozinho, isso o deixa mais lento ainda.
Tenta utilizar o SWT. Eu nunca usei, mas ele usa as apis do SO, e é mais rápido que o Swing.
O Eclipse foi feito com SWT.
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/dev.html
Só um detalhe! Esse tipo de comparação EXE x Swing, é uma coisa que é uma puta utopia.
Java usa os bytecodes para compilar o seu programa e quando vc executa ele a VM termina o trabalho de compilação (isso bem a grosso modo…), então mesmo utilizando o as APIs do SO, vc nunca vai ter uma perfomance igual a um programa compilado.
Ao contrário, em uma aplicação web (jsp e servlet), o java é mais rápido que o PHP, asp, etc… Pq estas linguagens são interpretadas enquanto que o java é pré-compilado…
:arrow: Não sei se fui claro…
Um abraço…
Completando o black_fire:
Java NÃO é interpretado.Vc précompila ele para bytecodes,a VM interpreta esses bytecodes para transformar numa linguagem de máquina(digamos “nativa”),trechos de código muito utilizados-o famoso HotSpot-para melhorar a performance.Quanto maior a execução de um programa Java,menos bytecodes serão executados pois grande parte jah estarão em código nativo(a máquina).
Hoje em dia não se faz necessário reclamar tanto da performance do Swing(Mais ainda eh lerdo…),mas a velocidade de um código 100% nativo não pode ser comparada.Deve-se escolher entre velocidade e portabilidade.Eu ficaria com a segunda,uma vez q a distância para primeira,jah não é tão significativa…
Existem muitas pesquisas sobre como JIT pode resultar em código mais eficiente que offline compiling. O problema que todos costumam reclamar é o slow start.
Perdoem o “interpretado”. Quis dizer não nativo, não EXE etc…
Mas de certa forma a JVM acaba “interpretando” o byte code para de fato execuar instruções nativas.
Uma coisa interessante sobre a forma de construção de componentes visuais no Swing é que o Delphi faz exatamente o mesmo para algumas classes. Ele não usa o SO para desenhar. Mas ao contrário do Swing o programa fica mais rápido por causa disso.
Eu tou usando 1 pc pentium-pro class, logo todo código é interpretado, seja ele bytecode java ou asm x86. Chega de discutir por nada.