Alternativas ao Java Desktop

46 respostas
E

Fiquei um bom tempo sem desenvolver aplicações Desktop. Estava desenvolvendo aplicações web, aplicações de filas JMS, aplicações genéricas, etc. Aplicações desktop só uma brincadeirinha aqui, outra ali. Agora, como vou ter que novamente desenvolver uma Desktop App pra valer, estou na dúvida se vale a pena fazer em Java.

Todas as vezes que fiz minhas aplicações Desktop didaticas em Java, tive muito trabalho chato. Ta certo que algumas coisas como JGoodies, MigLayout, até mesmo o SwingBean são muito legais, mas mesmo assim dá uma saudade do Delphi ou até mesmo o VB quando o assunto é Desktop. A priori não penso em voltar pra essas opções mas gostaria da ajuda dos colegas sobre algumas alternativas.

Andei lendo sobre algo do tipo Ruby/Tk, Ruby/Qt, JRuby/SWT. Até pensei alguma coisa sobre Mono.

Em fim, o que vocês tem usado?

[]s

46 Respostas

R

Porque não tenta usar o Netbeans?

Tem um suporte excelente pra Apps Desktop.

Se fosse vc, dava uma olhada.

E

Já usei, o problema é ficar preso a uma IDE, o que eu não gosto muito. De qualquer forma é uma alternativa. vlw

R

Um outro jeito legal também (sem ficar preso à IDE) é usar python com GTK (usando o Glade pra desenvolver as interfaces). Muita gente usa essa “duplinha” pra fazer apps pro Linux.

Quanto ao mono, tbm já várias aplicações Desktop no linux com ele, mas, sei lá, eu usaria Java com GTK ou SWT. Acho que com o Mono agente fica meio preso à uma implementação não completa, e sendo sempre inferior ao .NET (opinião pessoal).

Dá uma olhada tbm no JavaGnome(bom, mas com documentação péssima :(, talvez se vc conheça gtk pra C++ seja bom) e no QTJambi, esse último é mto bom, fácil de desenvolver, bem rápido e possui ótima documentação, porém seu projeto tem q ser opensource ou vc terá que pagar a licença para uso comercial.

Espero Ter ajudado um pouco (nunca desenvolví uma app Desktop séria, rsrs, mas sempre tive vontade e fiz uns projetinhos com as tecnologias que citei acima).

Flws

R

Olha voce pode usar o framework genesis.
Este frame e muito bom para desenvolvimento desktop.

Voce consegue escrever aplicacoes rapidas sem qualquer problema, aqui onde trabalho utilizamos a mais de 4 anos , e ele atende as espectativas.

segue o link do projeto:

https://genesis.dev.java.net/

Abracos

I

Eu acho que não seria ruim ficar preso ao netbeans, pois ele está evoluindo cada vez mais rápido e pra melhor, eu não conheço delphi mas pelas facilidades que o netbeans nos proporciona eu acho que tá quase lá (ou até já passou).
:shock: Mas se um grupo de aliens sabotar o netbeans e ninguém mais poder usá-lo :shock:
então importa o teu projeto pro eclipse e faz o resto na mão mesmo.

D

boas, tou a ver que aqui percebem de netbeans!
se alguem me pudesse ajudar agradecia:
é o seguinte: eu uso o netbeans e quando vou a desenhar o interface grafico aparece o seguinte:

isto é como eu quero…
mas quando vou a executar o programa ele aparece assim:

agradeco qualquer ajuda!

E

rsantos:
Olha voce pode usar o framework genesis.
Este frame e muito bom para desenvolvimento desktop.

Genesis não constroi interface gráfica.

R

DMM, Coloca isso aqui no seu main:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Ele vai pega o LaF do Sistema :wink:

D

rafagil:
DMM, Coloca isso aqui no seu main:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Ele vai pega o LaF do Sistema ;)


obrigadao!!!
ando à procura disto à semanas!!!

R

Neste caso voce pode usar o Matisse + Netbeans para desenhar a interface e o Genesis para implementar a logica.
O genesis entraria justamente na parte em que 'e um inferno na terra fazer na mao sem ter um framework por tras.

Abracos

E

Ok. No meu caso estou falando de alguma coisa produtiva no que se diz em construir interfaces gráficas para Desktop que não seja amarrada a um IDE. O que for diferente disso não me ajudará.

R

Produtivo mesmo e sem ficar amarrado à IDE é meio difícil.

Mas, como já disse anteriormente, vc pode usar o Glade, e depois faz o código em Java, C# ou no que der na telha :wink:

M

Na prática, VB e Delphi não servem então :slight_smile:

I

Na prática, VB e Delphi não servem então :-)

Concordo, então se é pra ficar preso escolhe-se o menos pior.

H

Com o NetBeans você não fica preso ao IDE, você apenas não poderá abrir um .form no Eclipse por exemplo, mas o código gerado não tem nada proprietário que não possa ser editado por quaisquer outros IDEs. Já trabalhei em projetos onde as telas eram “desenhadas” no NetBeans, entretanto os desenvolvedores utilizavam o IDE que preferissem… Eclipse e NetBeans vivendo pacificamente e produtivamente num mesmo ambiente e mesmo projeto… Isso só não acontece por falta de vontade da equipe bem como falta de conhecimento das ferramentas por parte da equipe, onde não conseguem configurar ambos os IDEs para funcionarem corretamente.

[]'s

E

Na prática, VB e Delphi não servem então :-)
Exatamente :). Aproveitando o embalo, alguma sugestão? :smiley:

M

O Clipper resolveria todos seus problemas, e com certeza vc não ficaria preso a nenhuma ferramenta.

E

hmichel:
Com o NetBeans você não fica preso ao IDE, você apenas não poderá abrir um .form no Eclipse por exemplo, mas o código gerado não tem nada proprietário que não possa ser editado por quaisquer outros IDEs. Já trabalhei em projetos onde as telas eram “desenhadas” no NetBeans, entretanto os desenvolvedores utilizavam o IDE que preferissem… Eclipse e NetBeans vivendo pacificamente e produtivamente num mesmo ambiente e mesmo projeto… Isso só não acontece por falta de vontade da equipe bem como falta de conhecimento das ferramentas por parte da equipe, onde não conseguem configurar ambos os IDEs para funcionarem corretamente.

[]'s


A questão não é essa. A questão é que eu to procurando alguma alternativa produtiva sem ter que ficar nessa. É muito chato ser dependente de uma IDE apenas para alterar o layout.

De qualquer forma, alguém já usou algumas das coisas que eu citei num projeto real pra dar uma dica se vale a pena? Ou alguma outra coisa?

E

Aham. Me passa a URL pra eu baixar e a documentação tb :shock:

H

emerleite:

A questão não é essa. A questão é que eu to procurando alguma alternativa produtiva sem ter que ficar nessa. É muito chato ser dependente de uma IDE apenas para alterar o layout.

De qualquer forma, alguém já usou algumas das coisas que eu citei num projeto real pra dar uma dica se vale a pena? Ou alguma outra coisa?

Cara, então te sobra o editor de código! Não existe padrão para intercâmbio de telas entre IDEs definido por ninguém… e as ferramentas que dizem que fazem inferência do código são um mito que não funcionam nada bem, já que você pode editar o código na mão e as ferramentas não conseguem contemplar todos os casos possíveis (então não vejo diferença no que o NetBeans faz, trancando o código para edição), ou seja, pegue o tutorial sobre layout managers e seja feliz.

E

Bem, eu devo ter me expressado de maneira errada. Sendo assim vou melhorar.

O que eu quero saber é se alguém já teve alguma experiência real com alguma coisa que dê pra fazer de forma produtiva sem IDEs tipo Ruby/Tk, Ruby/Qt, Ruby/SWT, ou até outras linguagens e tookits gráficos que possa contar a experiência como forma de dica para eu ter um norte ao invés de sair testando tudo, afinal, hoje em dia temos zilhões de opções, mas como o foco tem sido mais desenvolvimento web, o assunto as vezes fica um pouco defasado de discussões.

[]s

L

Cara,

eu já fiz um projetinho em gtkmm numa época em que eu trabalhava em C++. Eu usei o Glade para gerar interfaces, cujo produto é um XML independente de linguagem. No final, consegui rodar em Linux e em Windows.

Apesar de eu ter usado o C++, talvez seja melhor usar um porte do GTK para uma outra linguagem mais fácil. (Na época eu achava o C++ o máximo e quem reclamava muito era considerada por mim uma pessoa não muito inteligente pra gerenciar memória.)

L

Particularmente, nunca gostei de nenhum toolkit gráfico que não possui a aparência nativa do ambiente do usuário, e isso inclui Swing, Flash, JavaFX (aquele que nunca vai sair do papel), Silverlight…

T

Ae pessoal… VB, Delphi? Porque voce está querendo fazer a aplicação em Java? Tem algo em específico que tem que ser em Java? Aplicações Desktop em java, o mais produtivo ainda é o NetBeans que é bem parecido com o “Delphi”… arrastar e clicar…

R

Setando o UIManager ele fica, ne minha opinião, com a cara do sistema nativo do usuário, utilizando Swing.

Mas respondendo ao tópico, eu uso o SwingBean para fazer os forms, que em geral são os componentes mais chatos de se fazer na mão e uso também o mostrador de mensagens de erro igualzinho o dele tb, usando a classe ErroPanel.
As demais telas eu faço sempre programando mesmo, fazendo composições do GroupLayout com BorderLayout. Gosto de fazer assim pq o código fica limpo, não fico preso em IDE nenhuma e posso editar o código como bem entender…

A

VB ou Delphi acessando serviços ou algo parecido, já pensou a respeito? Não vi nenhuma ferramenta que se igualasse aos 2.

T

Leia mais sobre java…

P

Acho dificil desenvolver uma aplicação de forma produtiva sem auxilio de uma IDE. Delphi e VB são bastantes produtivos. Trabalho com Delphi já faz 2 anos na empresa, trabalho com java usando netbeans em projetos particulares, diversos frameworks como genesis podem auxiliar no desenvolvimento de aplicações desktop,aqui eu uso uma alterna propria de binding. Se quer uma alternativa que seja idependente de IDE você teria que implementar algo todo manual. Uma ideia seria como acontece nos sistemas da Microsiga, vc acresenta um campo na base de dados, usando uma ferramenta chamada de configurador e automaticamente e inserido um campo na interface gráfica, isto facilita e muito,mas isso to no sistema MicroSiga e claro. Estou tentando implementar algo parecido em java tb. Mas implementar algo que seja produtivo sem auxilio de uma IDE, so pelo motivo de ser independente de IDE, acho dificil

P

Acho dificil desenvolver uma aplicação de forma produtiva sem auxilio de uma IDE. Delphi e VB são bastantes produtivos. Trabalho com Delphi já faz 2 anos na empresa, trabalho com java usando netbeans em projetos particulares, diversos frameworks como genesis podem auxiliar no desenvolvimento de aplicações desktop,aqui eu uso uma alterna propria de binding. Se quer uma alternativa que seja idependente de IDE você teria que implementar algo todo manual. Uma ideia seria como acontece nos sistemas da Microsiga, vc acresenta um campo na base de dados, usando uma ferramenta chamada de configurador e automaticamente e inserido um campo na interface gráfica, isto facilita e muito,mas isso to no sistema MicroSiga e claro. Estou tentando implementar algo parecido em java tb. Mas implementar algo que seja produtivo sem auxilio de uma IDE, so pelo motivo de ser idependente de IDE, acho dificil

R

Visual Studio .NET 2008:

-WCF
-NHibernate
-Autofac
-Log4Net

T

Java para desktop não é tão produtivo qto as ferramentas(Delphi e VB) citadas acima, mas as vantagens que voce tem com o Java são imensas… uma delas e a principal… não tenho dineiro para pagar uma ferramenta como VB ou Delphi… Já usei bastante o Delphi, realmente é uma ferramenta boa e produtiva, mas não oferece as vantagens que o java tem… Quanto ao sistema da Microsiga, alguem se empenhou um dia pra chegar aonde chegou, continua que voce chega lá… é dificil e trabalhoso… Eu tambem já tentei inventar algo assim… voce configura o XML e gera um sistema desktop com banco e telinhas… mas cara… muito complicado… Esse meu sistema já gera pra mim a tela com os campos(somente campo texto), agora estou mexendo nas classes que irão fazer conexão com o banco…

V

Acho que você deveria utilizar java mesmo, pois assim sua aplicação seria independente do sistema operacional, diferentemente de algumas soluções já citadas. Outro motivo para utilizar java é que recentemente a Sun criou algumas “alternativas” interessantes para o desenvolvimento desktop com swing, tais como o Beans Binding e o Swing Application Framework, que facilitam bastante a criação de uma aplicação desktop. Vale lembrar também que o netbeans já possui suporte a essas duas APIs.

F

concordo com o vinicius, e na prática você acaba sendo, parte, dependente da IDE. Vivênciei isto quando foi necessário criar protótipos no netbeans, onde o pessoal desenvolvia na IDE do eclipse, de forma que tivermos que manter um acordo e manter uma certa modularização, parecido com o MVP(bem abaixo no artigo), entre padrões de nomeclatura. Na época eu não conhecia o Beans Binding e o Swing Application Framework, apesar de já existir.

Na época pensava o mesmo(quase 2 anos atrás), e hoje ainda me questiono sobre a mesma pergunta, mas minha resposta seria esta.

T

Concordo com os amigos acima, mesmo não tendo muita experiência com aplicações Desktop em java, se tivesse algum projeto de aplicação eu faria em java… A questão de a aplicação ser independente de sistema operacional é muito importante, pelo fato de que o windows continua sendo o SO mais usado, mas o Linux está começando a entrar nos desktop de usuário.
Veja a reportagem no site do terra: http://tecnologia.terra.com.br/interna/0,OI3440553-EI4801,00-Conheca+o+sistema+livre+que+ameaca+o+Windows.html

L

IDE pra mim é uma muleta. A sensação de que a IDE é essencial para criar interface gráfica se deve ao fato de que as linguagens maintreams (Java, VB, Delphi) são ruins para codificar as telas. O ideal seria se as empresas tivessem investido em uma linguagem de estrutura em árvore como HTML (porém menos verboso). Claro que é mais interessante vender IDE do que linguagem, por isso que ninguém inventou uma.

Quando se faz uma aplicação em swing e roda em uma máquina windows, com apenas a JRE instalada, é claro que vai parecer como se fosse uma aplicação nativa. Mas a aparência nativa não passa do feijão-com-arroz, na hora de querer recursos avançados do SO, você vai ficar na mão. Até hoje não acredito que seja interessante programar em Swing com Java, mas me parece promissor usar outras linguagens como JRuby, Groovy ou Scala.

Ainda não entendo como as pessoas acreditam que Matisse é um excelente editor gráfico. Primeiro, que a ancoragem de componentes é péssima, precisa de um mouse com precisão cirúrgica. Segundo, que eu não conseguia fazer um formulário dividido em duas colunas, onde ambas crescessem na mesma proporção quando a janela fosse redimensionada. Terceiro, que o código gerado é críptico, e estarei amarrado “forever” ao NetBeans. Quarto, que o editor impede de editar certos trechos de código. Quinto, que os listeners “a la” ASP não são a coisa mais bonita do mundo.

Enfim, é isso.

E

@Leonardo3001
Você foi exatamente no ponto que me motivou a abrir esse tópico (quase 1 ano atrás). Ficar preso a um IDE por um tempo pode não parecer nada ruim, mas se tiver que dar manutenção daqui a 2 anos em alguma coisa toda amarrada a um IDE que pode estar inclusive descontinuado não é nada interessante.

T

Quando voce faz alguma aplicação em Java com alguma IDE, voce não fica preso a uma IDE. Porque essas IDEś geram arquivos .java e esses arquivos podem ser abertos com qualquer edit de texto, até com o bloco de notas. Não importa a IDE(eclipse, netbeans, jCreator, etc…) que voce use… todos irão gerar .java pra voces, a partir daí é só alterar os códigos e compilar denovo. Não estou falando mau do Delphi até porque acho uma excelente ferramenta, mas com ele voce fica preso a ferramenta. Voce não consegue por exemplo alterar uma tela do Delphi com o bloco de notas. Essa é mais uma das vantagens que o java leva em cima das outras linguagens de programação.

V

Eu não acho que depender do netBeans seja tão ruim assim, a não ser que realmente vcs não gostem da IDE. A Sun sempre visa manter compatibilidade retroativa em todos os seus projetos, então as chances de não se conseguir manter uma aplicação no netbeans num futuro são pequenas. Mas tenho que concordar com vcs: a qualidade do código gerado pela ide é horrível… acho até que seria legal se o pessoal começasse a comentar isso no site do netbeans…

…Uma pergunta: alguém já utilizou o Swing Bean em aplicações reais? Ele cobriu todos os requisitos?

T

Eu já fiz algumas telinhas pra empresa, mas nada para uso comercial. Mas se voce adotar um padrão de criação das telas e usar no seu projeto inteiro, não fica complicado dar manutenção. Se quiser conversar mais à respeito, é só falar…

R

Eu utilizei o SwingBean e gostei. Mas usei somente a parte gráfica, a parte de validação eu não curti muito. A única coisa ruim foi de encontrar documentação, mas como o Guerra, criador do SwingBean, foi meu orientador de tcc, era só perguntar as coisas pra ele. Sobre a documentação, achei um da DevMedia bem bacana, se eu achar depois posto aqui, e o fórum do projeto também ajudou bastante.

T

Eu utilizei num curso, o JGoodies e pareceu bem fácil… mas nesses testes que fiz montei eu usei “swingão” mesmo e montei meu próprio metodo de criar as telinhas… como disse numa resposta acima… fiz um programinha lê um xml configurado por mim mesmo… e gera um programa com menus e as telas com os campos…

J

O amigo do post vai me desculpar mas eu acho um absurdo dizer “não quero ficar preso a uma IDE”, não se trata de ficar preso, vamos aos fatos: tem programador que usa o Eclipse há anos e também programador que usa o Netbeans há anos (como eu, uso ele há 6 anos) e isso não é ficar preso, quanto mais você usa mais você cria prática e habilidade para trabalhar com ele, obviamente seu conhecimento na linguagem tem que ser avançado para utilizar os recursos que a IDE oferece.

Meu voto “pessoal” é pelo Netbeans (não quero criar aqui mais uma guerra de IDEs - isso acontece sempre que se mexe nesse assunto) porque eu uso ele há muito tempo e cada ano que passa e a cada nova versão vem melhorando muito, o que acelera consideravelmente a produtividade de desenvolvimento.

Em resumo, o termo “ficar preso a uma IDE” é totalmente inadequado, o correto seria “dar preferência a uma IDE”, ou fazer na “unha” tudo.

Foi apenas minha opinião.

E

@thigo.san
Dizer que é possível alterar o código da user interface escrita pelo delphi em qualquer editor, mas na pŕatica utilizar apenas a própria IDE do delphi para alterar (que é o que acontece sempre) só reforça o que eu disse que o problema está na linguagem nada específica para escrever a interface com o usuário, necessitando de uma IDE para tornar o trabalho produtivo. Mais uma vez: não tenho nada contra a IDE, o que me incomoda é depender de uma específica para desenhar uma tela desktop de forma produtiva.

@javer
A resposta para o amigo acima serve também para seu questionamento. Todas as pessoas que eu conheço que fizeram interface desktop no Netbeans e tentaram ficar editando no eclipse acharam um saco (inclusive eu). Mais uma vez o ponto aqui é ter uma linguagem mais específica para construir essas telas, de forma a poder fazer sem necessitar de uma IDE super-poderosa. Isso facilita muito e é bem mais interessante.

M

Justiça seja feita: No Delphi vc CONSEGUE alterar o que quiser pelo bloco de notas. Assim como tem o compilador do java, tem o dele também que dá pra rodar em linha de comando. Só que ninguém em sã consciência vai fazer isto tendo uma ferramenta como o Delphi. Algum programador profissional em Java fica perdendo tempo em compilar por linha de comando (apesar de saber)?

Outro detalhe: cada vez que sai uma versão nova do NetBeans eu vou com tudo ver a herança gráfica e (rufam os tambores): não tem! Tem via gambiarra, eu corro dessas coisas.

Mano, pra programar no Java hoje eu utilizo o eclipse, para editar telas eu uso o WindowBuilder (muito bom). É uma ferramenta paga, mas é relativamente barata. Inclusive tem a tal herança gráfica e lê os códigos-formulários do NetBeans. Ainda sim o melhor editor gráfico que conheço para Java se chama JBuilder.

Se vale como dica, desenvolva uma boa biblioteca de objetos gráficos, pois vai precisar. De uma maneira “crua”, os objetos visuais do Java são bem fracos para quem está acostumado com Delphi ou Vb, mas possuem uma abertura para desenvolvimento que considero melhor que os dois. Só vai dar um trabalho no começo, depois você começa a curtir. Na net vc também acha muito objeto bacana com fonte para vc fuçar.

Espero ter ajudado.

P

Muito se fala, mas a produtividade para se desenvolver em Swing está no quanto o desenvolvedor conhece de gerenciamento de layouts. Talvez um mix com JRuby+MigLayout seja o que você procura de produtivo. :slight_smile:

E

É possível. Na época desse post (1 ano atrás), estava buscando opções pois fazia tempo que não desenvolvida nada desktop profissionalmente (os últimos 8 anos foram só web e console). Esse projeto nem vingou e quando pintar alguma coisa vou avaliar algumas opçoes. Essa sua sugestão é legal. Já usei MigLayout com Java mesmo e gostei bastante.

Criado 7 de abril de 2008
Ultima resposta 1 de fev. de 2009
Respostas 46
Participantes 19