Diga nÃo ao swing

Oie gente tudo bom?
desculpa se o titulo ficou sensacionalista demais mas é algo que eu preciso saber
A comunidade Java é imensa, isso todo sabemos… mas vejo muita gente comentando programar para desktop com java é perda de tempo ou algo do genero… queria entender o pq desse tipo de afirmacao
Seria performance dos programas java desktop? fico preocupada pois estou desenvolvendo um software para uma colega (escolar) e usando java desktop…

Me ajudem ok

Apesar de ser iniciante no ramo, no meu ponto de vista as aplicações desktop de modo geral estão ficando muito obsoletas, pois a grande necessidade atual é poder ter a informação em tempo real e em qualquer lugar para livre acesso. Eu mesmo estou fazendo uma interface de configuração de alguns equipamentos da minha empresa, o projeto piloto estou fazendo de modo desktop e em java, mas a versão final será totalmente online. imagine o seguinte, no meu caso, eu rodo meu projeto piloto e distribuo o jar para uns 5 clientes para testes, se der certo eu teria que distribuir o meso jar para todos os demais clientes, coloque isso numa escala de 100 clientes, depois 1000, que trabalho não? agora somente disponibilize um servidor para a aplicação e pronto todo o trabalho que será economizado.
por isso acredito que as aplicações desktop estão em desuso, mas claro, é só uma opinião.

Oie @aleks15 obrigada pela resposta e por expor sua opinião.
Com certeza essa é a tendencia e talvez a maior vantagem da web ne …
Mas vc acha que os projetos java desktop sao fracos em performance? Requerem muita memoria da maquina em que o jar é instalado? Ou esse que vc citou seria o real motivo para os programadores java optarem pela web

@Jessica_Lara, acredito mesmo que seja o principal fato seja a vantagem da web, aplicação disponível em qualquer lugar, sem instalação ou distribuição de jar’s, você aloca um servidor para sua aplicação e você garante que ele irá funcionar, você tem muito mais recursos disponíveis sem precisar conhecer a estrutura do cliente, imagine uma aplicação mais robusta que consuma mais memoria e processamento e dois cliente acessando por desktop, um com uma máquina de 8 gb de ram e processador de 2,7Ghz e outro com uma máquina de 1 gb ram e 1.66 de processador, acredite temos clientes do estado que tem máquinas assim, o que eles irão dizer sobre desempenho? até que você prove que o problema não está na aplicação, é uma dor de cabeça.
Mas cada caso é um caso, software desktop está perdendo e muito seu espaço, mas algumas aplicações ainda necessitam de serem para este público.

Claro que é só um ponto de vista de uma pessoa que não é tão “fluente” em desenvolvimento.

@aleks15 Ultima pergunta prometo hahaha
Nestes casos em que ainda seja mais viavel programar para desktop vc acha que o java vai bem?
quero dizer em comparacao com outras linguagens como delphi, C, etc eu entendo que o delphi por exemplo seja mais facil de programar desktop que o java… mas queria saber em relacao ao produto final entende
Digamos eu tenho um mesmo produto final (software escolar) em java, em c e em delphi…
O java vai bem em desempenho? este é o ponto que tenho a maior duvida

@Jessica_Lara, das aplicações que eu desenvolvi, claro que não são complexas, não pude reclamar de desempenho não, acredito que não terá problemas com desenvolvimento em Java em questões de desempenho.

Bom desenvolvo em Java a alguns anos, o que eu falaria pra vc é que o java desktop n morreu,nem outras linguagens desktop, o swing que vc esta utilizando sim rs ele foi descontinuado e agora entrou o JavaFX, eu programava utilizando swing a uns 5 anos quando migrei pro javaFX e digo que no inicio é meio etsranho porem o JavaFX te proporciona muitas coisas novas.
Quanto a performance depende de sua aplicação, normalmente a diferença entre uma linguagem e outra sao em milisegundos entao vc n sente, a performance do java é muito boa :slight_smile: são poucos os projetos que faço em web, a maioria utilizo desktop mesmo, visto que sao para lojas de minha cidade e região, e todas ofereço tanto um software web quanto desktop no orçamento, e a maioria(95%) pede desktop, quanto ao recurso de ser web a vntagem que vejo é de acessar em qualquer lugar, porme nos desktop eu desenvolvo um app para Android/IOS/WP para o cliente verificar alguns dados como estoque pelo celular tb :smiley: web seria mais facil, mesmo asism rpefiro desktop :v:

@guilherme.programmer oie obrigada pela resposta!!!
Eu estudei um pouco o javafx8 e confesso que gostei bastante e ate achei tranquilo a forma de programar
A minha ideia inicial inclusive era usar javafx mas nao encontrei muito material em portugues e como nao entendo quase nada de ingles estava sofrendo muito usando tradutores online para aprender e acabei desistindo temporariamente ate que saiam livros em pt-br.
Como dito por voce eu ainda vejo uma certa resistencia no dia a dia por parte dos clientes em relacao a web … quando sao apresentadas duas solucoes à eles (desktop e web) … .bem o que vc disse!!!

Olá, trabalho com automação comercial a algum tempo e sempre com Java recentemente estou adotando o JavaFX em novos projetos. Com relação a desempenho o java não fica atrás de outras linguagens e ainda tem a vantagem de ser multiplataforma. Muitas aplicações estão indo para a web mas nem todas, nunca vi um frente de loja ou um caixa rodando na web, por exemplo. Enfim se quer aprender java desktop vá em frente tem muito conteúdo na web e bons livros tbm e se puder veja JavaFX é ótimo.

Indico esse tutorial sobre JavaFX, comecei por ele : http://code.makery.ch/library/javafx-8-tutorial/pt/part1/

@Andrauss obrigada pela resposta e pela indicação do material!!!
Só pra fechar mesmo acham que seria loucura lançar as primeiras versoes de um software com java + swing e posteriormente migrar para o javafx e ao finaliza-lo lançar como uma nova versao do mesmo software??? digo pq serao dois arquivos .jar e o usuario em si nao vai avaliar isto… vai apenas notar que o sistema tem uma aparencia mais agradavel

@guilherme.programmer @aleks15 @Andrauss

Indico começar com JavaFX pois se iniciar com swing e futuramente for migrar (experiência própria), dependendo do tamanho do projeto você já irá ter utilizado bibliotecas que possam impedir essa migração ou dificultá-la, eu tenho esse problema hoje pois a maioria dos meus projetos usam recursos específicos do swing e dessa forma fica difícil de migrar apesar de poder misturar as duas tecnologias.

Olá,

Com relação a sua última pergunta, depende se um dos requisitos do seu software escolar é performance. Por exemplo, se for para realizar cadastros, manter informações sobre alunos, professores, cursos, e assim por diante atualizados, então performance não é uma preocupação, assim pode escolher qualquer linguagem de programação e framework que dê conta do recado, obviamente, uma linguagem e framework pode ser mais produtivo que o outro.

Sobre qual arquitetura que você utilizará, se aplicativo desktop ou se aplicativo web, também depende dos requisitos, necessidades, objetivos, metas a serem cumpridas.

Por exemplo, o aplicativo de IRPF da Receita Federal, você não precisa de acesso a Internet para preencher a declaração, só precisa da Internet quando for enviar a declaração. Por outro lado, sites de comércio eletrônico tais como Lojas Americanas, Ponto Frio, Submarino, Walmart e assim por diante, precisam ficar no ar 24h por dia e 7 dias por semana, pois assim as chances de lucrar são maiores.

Olá,

Já tentou esse livro ?

Atenciosamente.

Já sim comprei o e-book

1 curtida

Olá
Bom, eu, como desenvolvedor de Java, para desktop, tenho que dar minha opinião né :v
Então, realmente as aplicações para desktop tornam as coisas um pouco restritas. Obviamente eu não poderia distribuir minha aplicação para smartphones, por exemplo. Mas acho que isso varia muito do tipo de aplicação que ce ta pretendendo criar. Quer um exemplo?

Estou em um projeto atualmente, que vai precisar de informações em computadores. Restritamente a computadores, por hora. Claro que vão ter, futuramente, um software nos seus queridos Android, mas no momento, vai ser apenas no desktop. Sobre o download do arquivo, seria realmente insano distribuir para 1000 pessoas um arquivo jar da minha aplicação. Seria uma dor de cabeça SÉRIA.

Prevendo isso, eu criei um site e disponibilizo minha aplicação por ele. Assim, o usuário faz a instalação do meu software e pode baixar as atualizações por ali. PENSEI ALÉM. Recentemente, resolvi criar (e estou criando) um Gerenciador de Downloads. Assim como os que você já deve conhecer. Porém, esse vai baixar as versões novas do meu sistema e, automaticamente, substituir pelas antigas, poupando esforço do cliente. Sim, é algo complicado. Mas possível.

Isso, apenas em aplicação para desktop.
Mas poxa, logo Swing?
Quero dizer, a Oracle já anunciou a “substituição” dos pacotes Swing e AWT no Java 9, onde o que vai “mandar no reinado” agora é o JavaFX.

Então… Concluindo…
Tudo depende do que você vai precisar fazer. As pessoas precisam ter acesso ao pc pra isso? Precisa ser em um smartphone? Pode ser desktop? Pode ser Android?
Verifique o que a pessoa precisa.
Sempre o melhor para o cliente.

1 curtida

OI @Chaybelucas como fica a situação de softwares que ja estao implantados há anos e usam Swing/AWT? Terão que manter a versao sempre no Java 8 (maxima) ??? Se puder me indicar links aos quais eu possa me inteirar do assunto, fico agradecida… .de qualquer forma foi pesquisar a respeito

Isso é somente minha opinião:

Programar Java utilizando o Swing ou framework que use o Swing é igual a ir de bicicleta para o trabalho pensando que vai salvar o planeta.
O Máximo que vai ocorrer é você chegar todo molhado de suor no trabalho, pois teve muito mais esforço, trabalho mecânico e estresse para chegar à Empresa.

Traduzindo…
Java Swing está obsoleto e não vou escrever texto que explique isso.

É melhor dar um exemplo bem mais simples do tipo…

Por que você faz o seu programa de computador utilizando o Eclipse ao invés de utilizar o Notepad ou o Prompt do Dos?

Simples né? Já descobriu a resposta?

Agora falando em termos de tecnologia:
O mundo não para e quem fica andando de fusca, fica mesmo é para trás.
Novas tecnologias estão sendo lançadas enquanto estamos aqui aprendendo sobre este tema…rsrsrs

Porque vou perder meu tempo tendo 50 vezes mais trabalho para criar, atualizar, dar suporte e administrar projetos que usam Swing, se eu posso criar facilmente o mesmo projeto utilizando frameworks que já diminuem e muito meu trabalho?

Porque o Flex e o Flash da Adobe morreram?
Lembra quando o Jobs da Apple disse que o novo modelo do celular super moderno que eles iam lançar não ia usar Flash?

Pois é minha gente, se apegar à determinada tecnologia é assinar a própria sentença de morte. Se ela morrer, você vai junto.

Prova disso são as vagas de emprego para Estagiário, Programador, Desenvolvedor, Analista Java que não me deixam mentir.

Eu risquei Java Swing e JavaFx do meu cardápio, pois usando um Projeto Web dá para atender e muito bem.
Java Swing pois é um fusca nos dias de hoje…
JavaFx pois é o novo modelo do fusca que lançaram aí uns tempos atrás…
Prova disso são as Lambda que na minha opinião são uma verdadeira lambança que só ajuda a preguiçosos.

Caso precise rodar local então você coloca no seu cliente o seu servidor protegido com senha para somente você acessar. Assim todos que precisarem acessar vão ir no browser e acessar a url que aponta para o servidor interno lá.

Abraço.

Olá,

JavaFX for Swing Developers: https://docs.oracle.com/javafx/2/swing/jfxpub-swing.htm

JavaFX-Swing Interoperability: http://docs.oracle.com/javase/8/javafx/interoperability-tutorial/fx_swing.htm#JFXIP561