Usar Swing para desenvolver um soft para comércio é ruim?

40 respostas
jason_bourne

Pessoal,

Estou pensando em desenvolver um sofware para comércio usando o Swing+JWS. Alguém já fez isso? acha inviável? é melhor partir pro VB mesmo?

40 Respostas

romarcio

Não vejo pq vc precisaria partir para VB. A não ser que saiba bem VB e nada de Java e não queira perder muito tempo aprendendo.
Se vc fizer em Java, inclusive os usuários de linux poderia usar seu sistema.

jason_bourne

romarcio:
Não vejo pq vc precisaria partir para VB. A não ser que saiba bem VB e nada de Java e não queira perder muito tempo aprendendo.
Se vc fizer em Java, inclusive os usuários de linux poderia usar seu sistema.

Estou dizendo isso pq o Swing tem algumas coisas chatas, como definitir teclas de atalho, coisas que no VB já é mais intuitivo.

Marky.Vasconcelos

Nada que não seja fácil depois de acostumar.

A maioria dos componentes tem um setMnemonic (coisa assim) que define o atalho com alt.

E voce pode usar o InputMap para atalhos compostos como Ctrl+Shift+

B

eduacsp:
romarcio:
Não vejo pq vc precisaria partir para VB. A não ser que saiba bem VB e nada de Java e não queira perder muito tempo aprendendo.
Se vc fizer em Java, inclusive os usuários de linux poderia usar seu sistema.

Estou dizendo isso pq o Swing tem algumas coisas chatas, como definitir teclas de atalho, coisas que no VB já é mais intuitivo.

Ola,

Eu diria que Swing tinha estas coisas chatas, mas vc pode usar um plugin do eclipse para fazer o designer das telas, assim ele te dá suporte a criar as teclas de atalhos, muito similar ao VB.

Para designer de telas free, eu aconselho o matisse, que vem junto com o netbeans, que é um dos melhores, a meu ver e estou vendo agora um que o Google criou, Windows Builder Pro.

M

eduacsp,

Não vejo problema nenhum, inclusive, nesse tópico http://www.guj.com.br/java/129026-colocar-teclas-de-atalho-swing-vs-swt, criado por você mesmo, o colega já disse o caminho das pedras. No NetBeans, criar um atalho é intuitivo.

Já vi vários sistemas (PDV, Retaguarda de Loja e etc) implementados em Swing rodando muito bem.

Caso não queira se prender ao Swing, por que nã tenta usar o JavaFX ou o Abode Flex + Air?

Acho que o problema está mais em sair do "conforto" que o VB proporciona do que nas dificuldades com o Swing. Se estiver enganado, me desculpe.
jason_bourne

molmedo:
eduacsp,

Não vejo problema nenhum, inclusive, nesse tópico http://www.guj.com.br/java/129026-colocar-teclas-de-atalho-swing-vs-swt, criado por você mesmo, o colega já disse o caminho das pedras. No NetBeans, criar um atalho é intuitivo.

Já vi vários sistemas (PDV, Retaguarda de Loja e etc) implementados em Swing rodando muito bem.

Caso não queira se prender ao Swing, por que nã tenta usar o JavaFX ou o Abode Flex + Air?

É que tive sérios problemas para implementar teclas de atalho e vi que no VB isso é muito simples. Talvez pq o VB foi sempre uma linguagem de “caixa de padaria” e oferece mais facilidades para quem quer algo simples e direto.
Sei que o Swing tem muitas APIs interessantes e poderosas, mas estou tentando analisar a ferramenta que tenho disponível à solução que o cliente precisa.

Anime

Oi,

Está falando do vb.net?

Nossa o homem sumiu rsrs… :stuck_out_tongue:

Sinceramte não sei por que sempre tem alguém falando que Swing é um bicho de sete cabeças…
É super normal desenvolver um aplicativo comercial para desktop,não vejo tanta diferença no desenvolvimento entre Java SE e VB.NET,agora se estiver falando de VB 6,bom ai é mais facil mesmo,mas não vale a pena…

FelipeGalli

Não vejo problema nenhum…Tendo conhecimento ou buscando o pelo menos,já vi aplicações boas em Desktop,Agora só acho um pouco improdutivo…Mais da para fazer.

Anime

Oi,

O que quer dizer com improdutivo…

FelipeGalli

Só no sentindo que para fazer uma interface bem amigável leva bastante tempo,pois são muitos detalhes.(ainda mais se for fazer o software sozinho)

D

Recomendo você estudar muito bem o Swing se quiser fazer algo. Tenho experiência no desenvolvimento de um software comercial em Swing e a performance dele era muito ruim. Muita da culpa era nossa(dois programadores inexperientes sem ninguém com mais vivência para corrigir os erros, utilizando RAD ainda por cima), mas é aquela coisa: os donos, que só conheciam Delphi, colocaram a culpa no Java.

Então caso você opte por Swing, estude bem e evite RADs. Eles viciam a pessoa de uma maneira que ela não sabe o que se passa no código e acabaram por deixar o sistema mais lento. Isso que era o Visual Editor, que gera código muito mais limpo que o Matisse.

Anime

ok… :wink:

yoshikichi

eduacsp:
romarcio:
Não vejo pq vc precisaria partir para VB. A não ser que saiba bem VB e nada de Java e não queira perder muito tempo aprendendo.
Se vc fizer em Java, inclusive os usuários de linux poderia usar seu sistema.

Estou dizendo isso pq o Swing tem algumas coisas chatas, como definitir teclas de atalho, coisas que no VB já é mais intuitivo.

Não é o VB q é intuitivo, e sim o Visual Studio que é. Mas se eu fosse desenvolver em “algo.net” escolheria C# mais proximo de java.
Agora preferir “algo.net” para desktop em vez de Java, é bobagem.

Mas a verdade é eu"Escolheria Java", pq é a LP que estou envolvido, que tenho contato diario. E isso faz muita diferença.
Ok dot.net pode ser intuitivo em alguns quesitos, mas, em outros não! Tente programar sem o Visual Studio para você ver…

Abs

Grinvon

Algumas dicas que podem ser relevantes no contexto de programação swing são:

Saiba usar bem o conceito de threads, no swing, não deixe que tudo seja alocado para a threadlocal dele, pois frequentimente algumas operações podem ficar em ?locked?;

Utilize o Swing Application Framework, inclusive, o netbeans já vem com projeto de exemplo, um escopo simples e já feito para apresentar como trabalhar como esse novo padrão;

Utilize o Matisse para geração das telas, é intuitivo, fácil de administrar, mesmo com alguns bugs.

arthurgon

Cara…sinceramente eu no seu lugar…dominando os dois ambientes e sendo uma aplicação pequena…faria em VB. Por outro lado…se dominar Java e quiser fazer algo em Desktop e que que tenha performance legal…faça em SWT. SWING tem mais informações…porém come um desempenho tremendo da máquina porque trabalha com os recursos da JVM, ao contrário do SWT que utiliza recursos do Sistema Operacional.

M

O mérito da facilidade não é do VB, mas do Visual Studio.
Na verdade desconheço uma IDE pra Java que tenha um programação RAD tão boa quanto o Delphi e o VB, que não geram lixo no código e que são fáceis de ter o controle do código.

Mesmo pra tarefas simples em Java, você é obrigado a saber muito mais de programação, arquitetura e conceitos do que precisaria pra fazer em Delphi, que também permite que se faça coisa sofisticada.

Por causa disso, o Java conseguiu penetrar bem nos grandes mercados mas nunca conseguiu se firmar entre os pequenos programadores e aqueles que só sabem arrastar e soltar telas. O pior é que tem muita gente que considera isso uma vantagem do Java.

jason_bourne

marcosalex:
O mérito da facilidade não é do VB, mas do Visual Studio.
Na verdade desconheço uma IDE pra Java que tenha um programação RAD tão boa quanto o Delphi e o VB, que não geram lixo no código e que são fáceis de ter o controle do código.

Mesmo pra tarefas simples em Java, você é obrigado a saber muito mais de programação, arquitetura e conceitos do que precisaria pra fazer em Delphi, que também permite que se faça coisa sofisticada.

Por causa disso, o Java conseguiu penetrar bem nos grandes mercados mas nunca conseguiu se firmar entre os pequenos programadores e aqueles que só sabem arrastar e soltar telas. O pior é que tem muita gente que considera isso uma vantagem do Java.

Concordo. Mas vou tentar usar o Netbeans+Swing+JWS e vou ver se fica performatico. Obrigado a todos.

fantomas

Entendi seu ponto de vista.

Porem vc já notou que toda “linguagem” que se firma entre “pequenos programadores e aqueles que só sabem arrastar e soltar” tem resultados desagradaveis?

Por exemplo:

a) Cai em desuso ou vira “carne de vaca” (Clipper, Dbase (II, III, V), Basic, Vb, Delphi);
b) Drastica redução de “salarios”.
c) Sistemas dificeis de se fazer manutenção.
d) Arquitetura pobre.
e) Alta rotatividade.
f) Abandono de projetos.
g) Desvalorização da classe.

flws

M

Cair em desuso, acredito que toda linguagem acontece isso, não somente as simples e fáceis. Nos exemplos que você citou, Clipper, Dbase e Basic caíram em desuso porque eram ótimas linguagens pra ambiente ASCII mas não se firmaram em ambiente Windows. VB e Delphi eram boas pra programação Windows mas não se firmaram em ambiente Web.

Esses tópicos que você falou acontece dentre os programadores que citei. Os que ficam em projetos maiores, seja em Java, Delphi Flex, VB, esses não são afetados. Mesmo que mude a linguagem, são profissionais que ficam no mesmo nível, quando não valorizam. Conheço analista em Delphi ganhando 80 a hora e analistas Java ganhando 15.

Bom, é minha opinião, não vou brigar por causa disso. heheheh

yoshikichi

Volto a dizer não trocaria Java por .net, mas se tivesse que trocar não seria o fim do mundo.
Só prefiro java por causa do envolvimento.
Mas a facildade que eu falei e concordaram ai é a que o visual Studio proporciona. Porém sem o visual studio já sobrevivi tb, bom não sou expert em C#, mas já trampei com ele,
e utilizava sharpdevelop como IDE.
Não é um visual Studio, mas cai bem…
http://www.icsharpcode.net/opensource/sd/

Agora qm qrer testar, utilize o sharpDEvelop e depois o visual studio e veja a diferença.

Andre_Brito

Eu acho possível sim. Tem um sistema do Correios que é em Swing e dizem (digo ‘dizem’ por não ter visto com meus próprios olhos) que o JEdwards da Oracle é em Swing.

Aliás, testei esse WindowsBuilderPro. Putz, é lindo hein? Eu nunca gostei de NetBeans. Encontrei o JFormsDesigner que é 10 pro Eclipse. Esse WBP é 20 mil vezes melhor… Até o padrão dos nomes ele segue. Se eu coloco uma label e coloco um texto do tipo “User name:”, o nome da variável da JLabel fica “lblUserName”. Muito legal =)

Editado: Vi o JFormsDesigner 5 hoje e ele tem muita coisa parecida com o do WBP… Parece-me que os dois vão brigar feio no mercado.

M

Também já vi muita aplicação comercial em Swing. Como o colega lembrou, as ferramentas de desenvolvimento da Oracle geram uma interface em Swing pra seus produtos e funciona legal.

O sistema de Correios é feito em Swing sim, e o das lotéricas também. É um pouco mais pesado do que feito em código nativo, naturalmente, mas pras máquinas de hoje em dia não é crítico, e ainda tem o ganho da independência de plataforma.

romarcio

Andre Brito:
Eu acho possível sim. Tem um sistema do Correios que é em Swing e dizem (digo ‘dizem’ por não ter visto com meus próprios olhos) que o JEdwards da Oracle é em Swing.

Aliás, testei esse WindowsBuilderPro. Putz, é lindo hein? Eu nunca gostei de NetBeans. Encontrei o JFormsDesigner que é 10 pro Eclipse. Esse WBP é 20 mil vezes melhor… Até o padrão dos nomes ele segue. Se eu coloco uma label e coloco um texto do tipo “User name:”, o nome da variável da JLabel fica “lblUserName”. Muito legal =)

Editado: Vi o JFormsDesigner 5 hoje e ele tem muita coisa parecida com o do WBP… Parece-me que os dois vão brigar feio no mercado.

Me diz uma coisa, esse plugin WindowsBuilderPro, como faz pra baixar ele? Não costumo usar eclipse então toh meio perdido. Vi que alguns plugins tem um botão install na pagina, mas esse não tem.

J

Grinvon:
Algumas dicas que podem ser relevantes no contexto de programação swing são:

Saiba usar bem o conceito de threads, no swing, não deixe que tudo seja alocado para a threadlocal dele, pois frequentimente algumas operações podem ficar em ?locked?;

Utilize o Swing Application Framework, inclusive, o netbeans já vem com projeto de exemplo, um escopo simples e já feito para apresentar como trabalhar como esse novo padrão;

Utilize o Matisse para geração das telas, é intuitivo, fácil de administrar, mesmo com alguns bugs.

O swing não é thread safe. Isso quer dizer que se você não desenhar bem a aplicação vai perder muito desempenho. Até um tempo atras eu diria para usar swt em resposta ao swing, mas hoje em dia em termos de desempenho eles são a mesma coisa.

Vantagens.
*light weight - É totalmente escrito em java.
*Faz parte da biblioteca padrão e está presente na jvm. Isso diminuii consideravelmente dependências de software;
*Ótimo suporte para Opengl
*Simples de entender.

Contras.
*Não é thread safe - A Aplicação deve ser bem dividida em tarefas(threads)(Isso inclui os componentes da interface gráfica) para evitar comportamentos estranhos como congelamentos etc.
*Alto consumo de memória. Por ser java o swing é inteiramente carregado na memória(ao contrário do swt que usa recursos nativos do sistema) da jvm. O alto consumo não influencia na velocidade de processamento mas é o que impede as aplicações java de serem populares para desktop.

na minha opinião usaria o swing em contrapartida a todas as outras. O custo benefício é ótimo.

Andre_Brito

Dá uma olhada neste link.

M

Entendi seu ponto de vista.

Porem vc já notou que toda “linguagem” que se firma entre “pequenos programadores e aqueles que só sabem arrastar e soltar” tem resultados desagradaveis?

Por exemplo:

a) Cai em desuso ou vira “carne de vaca” (Clipper, Dbase (II, III, V), Basic, Vb, Delphi);
b) Drastica redução de “salarios”.
c) Sistemas dificeis de se fazer manutenção.
d) Arquitetura pobre.
e) Alta rotatividade.
f) Abandono de projetos.
g) Desvalorização da classe.

flws

Existe uma classe para “pequenos programadores” em linguagem Windows? :lol:

jason_bourne

Testei o WindowBuilder Pro do Google e achei ruim, pouco intuitivo. Parece que pegaram os principais frameworks para design de telas, juntaram tudo e colocaram no Eclipse. Ainda acho que o NB ganha em facilidade.

M

mochuara:

Existe uma classe para “pequenos programadores” em linguagem Windows? :lol:

Não é uma classe, mas é um outro nicho de mercado, dentre vários que existem na nossa área.

Ou você acha que esses caras ameaçam seu trabalho?

jaboot

eduacsp,

Se fosse fácil pra implementar teclas de atalho por exemplo, você usaria Java?
E se fosse web?
http://www.sproutcore.com/

Dá pra implementar várias teclas de atalho e uma interface bem intuitiva também com o GWT do Google. E daí seu cliente não precisa instalar um programa(.exe), basta um browser.

É só uma dica, valeu!

rdsilio

Acredito que optando por swing, o swingbean seria uma boa pedida para a produtividade e qualidade no desenvolvimento.

romarcio

Dá uma olhada neste link.

Valeu pela dica, tinha testado aquele link dali mas não dava em nada. Dai alterei na mão para esse: http://dl.google.com/eclipse/inst/d2wbpro/latest/3.6 e consegui instalar.

Até agora achei bem interessante, vou ver se monto alguma coisa mais tarde, valeu de novo.

M

marcosalex:
mochuara:

Existe uma classe para “pequenos programadores” em linguagem Windows? :lol:

Não é uma classe, mas é um outro nicho de mercado, dentre vários que existem na nossa área.

Ou você acha que esses caras ameaçam seu trabalho?

Não é um outro nicho de mercado, e sim uma concorrência comoditizada de serviços de TI. Eu entendi o que o fantomas quis dizer, e não concordo que Java esteja em outro patamar. Só que ele esta equivocado porque o resultado é agradável sim para o mercado, porque com o aumento da oferta os preços caem.

B

se escolher o java como plataforma vai ter que usar o swing pra desktop (visto que vc é iniciante e assim vai ter o netbeans pra te ajudar com as telas).

M

mochuara:

Não é um outro nicho de mercado, e sim uma concorrência comoditizada de serviços de TI. Eu entendi o que o fantomas quis dizer, e não concordo que Java esteja em outro patamar. Só que ele esta equivocado porque o resultado é agradável sim para o mercado, porque com o aumento da oferta os preços caem.

Eu entendo seu ponto de vista, mas acredito que esse processo de comoditização independe da linguagem, é da própria área e é uma tendência para determinadas tarefas que são passíveis disso. Não é querendo boicotar as linguagens e IDEs mais produtivas e fáceis que vai mudar, tem tarefas que vão ficar mais automáticas, mão de obra bara que vai fazer, não tem jeito.

É assim em outras áreas, não só na TI. O profissional pra ganhar bem não pode ficar restrito no básico.

M

marcosalex:
mochuara:

Não é um outro nicho de mercado, e sim uma concorrência comoditizada de serviços de TI. Eu entendi o que o fantomas quis dizer, e não concordo que Java esteja em outro patamar. Só que ele esta equivocado porque o resultado é agradável sim para o mercado, porque com o aumento da oferta os preços caem.

Eu entendo seu ponto de vista, mas acredito que esse processo de comoditização independe da linguagem, é da própria área e é uma tendência para determinadas tarefas que são passíveis disso. Não é querendo boicotar as linguagens e IDEs mais produtivas e fáceis que vai mudar, tem tarefas que vão ficar mais automáticas, mão de obra bara que vai fazer, não tem jeito.

É assim em outras áreas, não só na TI. O profissional pra ganhar bem não pode ficar restrito no básico.

Pode não ser o seu caso, mas pra quem presta serviços de ti como desenvolvedor, acho interessante boicotar essas linguagens estaticas sim, afinal é quem vai sofrer competiçao comoditizada mais diretsmente, com o risco de trabalhar ao lado de pessoas que acreditam que sua produtividade esta relacionada a uma determinada IDE.

M

mochuara:

Pode não ser o seu caso, mas pra quem presta serviços de ti como desenvolvedor, acho interessante boicotar essas linguagens estaticas sim, afinal é quem vai sofrer competiçao comoditizada mais diretsmente, com o risco de trabalhar ao lado de pessoas que acreditam que sua produtividade esta relacionada a uma determinada IDE.

Não seria melhor então você deixar as linguagens estáticas com IDEs produtivas pra esse mercado comoditizado e você simplesmente focar nas linguagens dinâmicas e no mercado que as usa, que precisa das vantagens dela, não são atendidos bem pelas linguagens estáticas e que valoriza o seu perfil, já que exige mais conhecimento e outras habilidades?

Por isso eu usei o termo “nicho”.

De qualquer forma, respeito sua opinião.

J

se escolher o java como plataforma vai ter que usar o swing pra desktop (visto que vc é iniciante e assim vai ter o netbeans pra te ajudar com as telas).

Bom, ele pode usar o jface/swt. Esses toolkits são muito bons visto que utilizam recursos nativos(Há uma vantagem nisso já que você permite que o sistema operacional execute algumas tarefas para você(ganho de recursos)). Mas em termos de gráfico, java2d arrebenta.
Até hoje tenho algumas dúvidas quanto ao desempenho da classe Device do swt/jface. Alguém sabe me dizer se ela utiliza aceleração da gpu(java2d utiliza, mapeando a opengl)?

antonioni.rocha

Uso o NetBeans para programar (tando para a web como para desktops).
Claro, estude também o swing antes de partir para as IDEs. :slight_smile:

M

marcosalex:
mochuara:

Pode não ser o seu caso, mas pra quem presta serviços de ti como desenvolvedor, acho interessante boicotar essas linguagens estaticas sim, afinal é quem vai sofrer competiçao comoditizada mais diretsmente, com o risco de trabalhar ao lado de pessoas que acreditam que sua produtividade esta relacionada a uma determinada IDE.

Não seria melhor então você deixar as linguagens estáticas com IDEs produtivas pra esse mercado comoditizado e você simplesmente focar nas linguagens dinâmicas e no mercado que as usa, que precisa das vantagens dela, não são atendidos bem pelas linguagens estáticas e que valoriza o seu perfil, já que exige mais conhecimento e outras habilidades?

Por isso eu usei o termo “nicho”.

De qualquer forma, respeito sua opinião.

Receita para morrer de fome IMHO. O cliente não da a minima pra qual linguagem vc usa, e portanto vai escolher a que sai mais barato pra ele, que é, contratar programadores macdonalds.

bsmachado

Fazendo uma pesquisa rapida em um site sobre trampo, vejo que o VB apareceu mais que o Swing…
Mas por se tratar de uma plataforma mais viavel a qualquer S.O. Java sai na frente…
Swing não é muito divulgado pela Oracle, mas com alguns frameworks e o Netbeans auxiliam quem quer programar para Desktop…
Vai da necessidade de cada projeto…

Criado 10 de janeiro de 2011
Ultima resposta 15 de jan. de 2011
Respostas 40
Participantes 21