Aplicação Desktop em Java

13 respostas
black_fire

Caros amigos javanianos,

:?: Gostaria de saber se é aconselhavel partir para o desenvolvimento de aplicações Desktop em Java?

Hoje eu programo em Delphi e estou ingressando no desenvolvimento de aplicações Java para web, JSP.
Sempre fui um profundo admirador da Tecnologia Java, e quando começei a desenvolver algumas coisas gostei muito.

Como sou a favor de minimizar quantidade de ferramentas de desenvolvimento para facilitar as manutenções futuras e facilitar a busca de um profissional, gostaria de saber a opnião de todos, se for possível, dos prós e dos contras no desenvolvimento de aplicações desktop em java, porém os dois itens abaixo foram os que mais me deixaram preocupado, pois as máquinas client que eu tenho aki na empresa variam entre Pentium 200 à AMD-K6II 500 com 32, 64 ou 128 de ram rodando Win98 (maioria) e Win2k.

:arrow: Qual a configuração mínima de máquina para rodar uma aplicaçào desktop com DB SQL Server 2000/Oracle?

:arrow: Qual a diferença de performance entre uma aplicação .exe (Delphi no caso) para uma aplicação Java com o mesmo porte?

Um grande abraço para todos,

13 Respostas

Jair_Rillo_Junior

cara sinceramente…

rodando java desktop em umas máquinas com essas configurações, voce vai desanimar muitooooo e vai sentir saudades do Delphi…

o principal contra realmente é a questão de velocidade
os prós são ferramentas free, a OOP em Java é muito show, a paixão pelo Java, dizem que é mais robusta que o Delphi, Multiplataforma e por ae vai…

Bani

Só para tentar defenter o Java um pouquinho, não é que Swing seja lento, apenas precisa de mais recursos computacionais para rodar em uma velocidade boa.
Eu acredito que uma aplicação com uma certa complexidade, rodando em uma máquina com mais memória, deve ter um desempenho compatível com o do Delphi.

louds

Use swing somente se voce tiver máquinas razoavelmente rápidas e com muita memoria.
Uma boa saída para usar java e ter uma boa performance com aplicações GUI é usar SWT.
A impressão que eu tenho é que swing só é viavel para aplicações gui pequenas, qualquer coisa maior nunca existe cpu ou memoria suficiente.

Bani

Eu acho que ter o front end em Java compensa principalmente quando você já tem (ou vai fazer) um super back end em Java.

Java tem bastante recursos para GUI, mas a força maior está em outras áreas.

Ironlynx

Minha máq é rápida e o swing continua lerdo…
Cá entre nós,não sei quem concorda comigo,mas GUI é o
calcanhar de Aquiles do Java…a Sun tinha q dar uma reformulada
nas Api´s gráficas…isso dava até um tópico…Qual o maior
problema da linguagem Java?
Vou estudar SWT p/ver se mudo minha impressão sobre esse
assunto…

dukejeffrie

“black_fire”:
Caros amigos javanianos,
:?: Gostaria de saber se é aconselhavel partir para o desenvolvimento de aplicações Desktop em Java?

Sim! Ouca de quem faz. Eu sou fa do Swing e faco GUIs em Java desde antes de ter Swing (pobre de mim, foi uma época brava). Posso te dizer que, se vc quer estar bonito na foto daqui a um ano e meio, dois, é uma boa hora pra comecar a aprender.

Nunca fiz nada com SWT, principalmente pq já sei Swing e nao uso Eclipse (Oooohhhh, exclama a platéia). Pra vc, talvez seja uma boa olhar as duas.

De qq forma, se vc acha que vai fazer GUI que nem no Deplhi, tá bem enganado. As apps pra fazer GUI em Java sao horríveis, e geram um código horrível. O problema com o código horrível é que como elas nao fazem tudo o que vc precisa, vc precisa mexer no código, e como o código é horrível…

:2gunfire: nao escute esse pessoal que fala que swing é lerdo. Pra vc ter uma idéia, a performance do java, em geral, e do swing, em particular, melhorou, do J2SE 1.3 pra 1.4. Tenho absoluta certeza de que uma app Swing idêntica a uma app em Delphi usa pelo menos o dobro de RAM, isso é um problema.

:2gunfire: Tem mais um lance: Swing é muito, muito lerdo quando vc faz errado. Tem alguém aqui que usa o Squirrel pra brincar de SQL? Alguém acha o squirrel lerdo? Uma aplicacao malfeita em Deplhi vai rodar muito melhor que uma aplicacao malfeita em Java.

Java tem Look and Feel. Nao sei se dá pra usar um skinlf com SWT, mas tb nao precisa pq o L&F é lindo. O L&F Metal (o “roxinho”) é feio, tem que trocar.

Eu recomendo, também, fazer aplicacoes com Swing em várias camadas, e usar RMI ou equivalente. Por que? Pq assim, sua aplicacao tem dois processadores de 500Mhz em vez de um, e duas RAMs de 64Mb. E dá pra reutilizar mais memória. E daqui a dois anos, seu servidor vai ter recebido 4 updgrades, enquanto seus desktops vao ter recebido um, talvez 2.

:!: Tem um terceiro ponto aqui que eu quero enfatizar no quesito performance do Java: saber manipular múltiplas Threads é essencial pra vc fazer um programa decente em Java, com GUI ou sem GUI. E existem várias opcoes da JVM na hora de rodar a aplicacao que podem fazer sua aplicacao aproveitar o melhor possível o ambiente em que ela está.

Bom, espero nao soar muito grosso… :slight_smile:
[]s!!

D

Concordo com o dukejeffrie em gênero, número e grau.

E foi o que a Bani falou; o principal é que o núcleo do sistema pode independer da apresentação, que pode ser uma página web ou um aplicativo desktop… se você está interessado em facilidade de manutenção, aí está.

louds

Duke, eu tenho um XP 1.8 com 512ram e rodando o Sun One Studio a maquina fica 1 lesma, sem falar que volta e meia acontece umas pausas de 2-3 segundos para GC (ok, só ligar concurent GC, mas isso não ocorre por padrão). Não vou nem comentar sobre o JBuilder e o Together Control Center. Já o Eclipse roda perfeitamente.

R

“dukejeffrie”:

Eu recomendo, também, fazer aplicacoes com Swing em várias camadas, e usar RMI ou equivalente.

Dá pra tu exemplificar isto?

Abraço.

cancao

Como eu ativo esse GC para trabalhar no JBuilder?

t+

Bani

E não só da 1.3 para a 1.4. Da 1.4.1 para a 1.4.2 parece que teve um aumento de 30% ou algo asssim!

louds

Bani, oque mudou na 1.4.2 foi, principalmente, o startup time do java.
Sendo e media 15% mais rápido, chegando ate a 30%

dukejeffrie

Pois eh. Mas a culpa é do Swing? Ou é do fato deles tentarem colocar ABSOLUTAMENTE TUDO numa IDE, e nao usar lazy loading, muito menos técnicas mais complexas?

A Sun sabe fazer as coisas “corretas”, mas nao tem nenhum talento pra fazer coisas rápidas. Tem vezes em que só eficiencia basta. Tem vezes que vc precisa de mais!

Régis, falei de várias camadas, querendo dizer mais de duas. 95% das vezes, mais de duas quer dizer 3: o cliente, o mais leve possível, um servidor, que faz “o grosso” da coisa, e o banco, ou o que quer que seja seu mecanismo pra guardar dados.

Muito da lerdeza do Swing vem do modelo de threads do Java (já falei isso?), que é muito chato de usar. Se tivesse um mecanismo facinho (Será que no 1.5 vem?) de usar WorkerThreads, dava pra fazer coisas mais legais. O normal é vc fica preso a uma thread pra despachar eventos e repintar a tela. Pra mim, isso significa que é o máximo que ela deve fazer. Qualquer actionPerformed() que nao faca trabalhos mínimos tem que ser jogado pra outra thread.

Pois bem, mas qual? new é a operacao mais cara no Java, implementar do jeito clássico funciona muito pouco. O legal era poder falar “usa a thread de PropertyChanges pra executar esse método”. Sempre dá pra fazer isso na mao, mas é um saco, dá trabalho, e poucas vezes vc consegue reutilizar isso.

Eu posso falar do startup time da 1.4.2 pq eu uso TIBCO. Caiu pra quase metade do tempo só mudando a VM. Nem preciso contar que deu um trabalhao. Xô TIBCO!

[]s!!

Criado 14 de agosto de 2003
Ultima resposta 18 de ago. de 2003
Respostas 13
Participantes 9