JavaFX vs Swing - A saga da melhor opção

Estou iniciando minha carreira com programação em Java, já vi a sintaxe básica, Programação Orientada à Objetos, mas tudo isso em modo console (O que acaba deixando tudo monótono), e agora está na hora de enfrentar um desafio maior, A INTERFACE GRÁFICA… E é aí que o “bixo pega”, comecei as minhas pesquisas sobre este tipo de desenvolvimento, eu estava querendo começar a desenvolver em Swing (Pois tive uma pequena esperiência com JOptionPane), mas o JavaFX me chamou muito a atenção, por ser o que eles dizem o “tipo de desenvolvimento do futuro”.

Estou com um projeto (que acredito que foi o inicio de muitos programadores) de controle de caixa, clientes e estoque. Andei pesquisando sobre os meios disponíveis para fazer uma interface gráfica e o que mais me chamou a atenção foi esse tal de JavaFX, muitos dizem que ele veio para substituir de uma vez por todas o Swing baseado em ATW, e outros muitos dizem que vale a pena continuar no tão conhecido Swing.

Portanto, vim buscar um parecer de vocês oráculos da programação em Java, tenho consciência das funcionalidades e novidades do JavaFX, mas não sei se devo aprender ele como o primeiro passo de programação gráfica (se é que posso chamar assim, visto que FXML é uma linguagem de marcação e css de estilização) pois, não há muitas explicações/video-aulas disponíveis e parece que todos sabem o que é, mas ninguém sabe como expressar.

Que comece o combate… quer dizer… DEBATE!

att
Gustavo de Carvalho Reinaldi

Esse é um projeto para um cliente real ou é só pra estudar?

Precisa realmente ser desktop (ex: haverá comunicação com impressoras fiscais)? Ou poderia ser web?

Se você deu uma pesquisada por aí (e aqui), deve ter visto que Java Desktop (seja Swing ou JavaFX) não é muito usado hoje em dia, pois a maioria das aplicações é web. Se for pra estudar é ok, mas, caso sejam projetos reais e de longo prazo, considere outras opções como C#.

Abraço.

4 curtidas

Concordo com @TerraSkilll sobre avaliar se o projeto pode ser web. E C# é melhor para desktop Windows.

Diretamente sobre Swing vs JavaFx, vá de Swing, tem mais mercado, JavaFx ficou só na promessa, não pegou e nunca vai pegar devido o mercado de aplicações desktop estar em baixa. Como Swing viveu a época que desktop estava em alta, tem muitos legados pra manter.

2 curtidas

JavaFX está ótimo e pode ser usado com tranquilidade em projeto desktop multi plataforma.
Não caia nesse papinho de C#.

Em relação a JavaFX vs Swing, seguinte …

Swing é muito bom, com ele você consegue dar nó em pingo de água, porem…, chegou num ponto
de maturidade e otimização e não tem mais onde crescer.

JavaFX traz a modernidade visual e ainda tem por onde crescer, por isso no Java 11 está separado
do JDK, sendo o OpenJFX.

Falo por experiencia propria de alguem que usou e usa na pratica.

1 curtida

Ele é um projeto simples, sem impressoras de nota fiscal ou coisa do tipo, somente para controle básico, e estou usando o Java por conta de estudo também, já que acabei de entregar um TCC em C++ e agora tenho que fazer outro em JAVA, por isso escolhi o Java desta vez, tanto para meu projeto pessoal, quanto para meu projeto curricular.

Obrigado pela sugestão!

É o que falam… Mas parece também que ninguém mais quer usar o Swing e que ele já está sumindo.

Fiquei com essa dúvida por que embora o JavaFX seja lindo e tudo mais, ele é pesado para o meu desenvolvimento, digo isso no quesito HARDWARE (Pentiun 2, 4Gb Ram, Placa de Vídeo NOT FOUND), e o Swing embora seja mais leve e muuito mais fácil de assimilar, ninguém mais quer usá-lo… rsrs

Isso me mata de loucura… Mas estou pensando seriamente em ir para o Swing ://

ENTÃO AMIGO… ISSO É O QUE MAIS ME MATA!

Os dois têm seus pontos muito fortes, no meu caso é claro… eu queria muito aprender o JAVAFX mas o Hardware iria me atrasar, o Swing por sua vez, ele é atrasado mas têm muito mais material de estudo, coisa que o JavaFX ainda está perdendo infelizmente.

Estou pensando seriamente em ficar no JFrame por enquanto mesmo… O Swing me vencendo pelo cansaço!

Obrigado pela força!

Pq não pensa em ir para web?

Se realmente precisa ser aplicação desktop Java, sem dúvidas continue com Swing. Mas o que pode ser um atraso de fato é fazer uma aplicação desktop que poderia ser web.

1 curtida

Eu uso o Swing, e como disseram, dá pra dar nó em água. Não acho que ele é atrasado, ele é antigo, mas dá pra fazer muita coisa legal nele. Tanto em interface gráfica, quanto em código.

Essa aqui é uma tela minha, eu acho que vale a pena dar uma investida em Swing hoje em dia. Mas se vc puder aprender mais sobre web, é melhor. JavaScript, PHP, HTML…

1 curtida

Da pra fazer muita coisa, mas a web é muito mais flexível em relação a tudo.

O fato é que praticamente não há demanda para aplicações desktop e a tendência é diminuir mais ainda.
Ai por isso eu acho que não vale a pena gastar tempo estudando algo que dificilmente você irá encontrar como requisito de trabalho (isso para quem esta começando, quem já esta na área faz o que quiser)

PS: Normalmente eu vejo umas aplicações bem feias em Swing, a sua esta até bonita

2 curtidas

Sim, acho a mesma coisa, se a pessoa estiver começando e tiver essa escolha entre Desk ou Web, escolher Web é a melhor opção. E obrigado mano kkkkkk

Vai de Python aprendizado rapido

Sempre vai perder pois poucos adotam JavaFx. Swing é de um tempo que maior parte das demandas eram desktop, então tem um legado considerável. Já o JavaFx chegou em um tempo que já não fazia muito sentido sua existencia. Por isso veja bem se não está perdendo tempo com desktop, como a maioria está avisando. Tendo um motivo real, sem problemas.

Precisa parar com esse negocio de achar que tudo deve ser feito na web.
Tem coisas que ficam melhores em desktop.
O desenvolvedor deve saber que solução é a melhor.

Imagina uma IDE, um programa de 3d/engenharia, um sistema de gestão dentro do navegador, fica horrivel ( Embora quando dava pra usa java como applet, eu adorava mostrar o sistema desktop inteiro dentro do navegador a titulo de demonstração e alguma emergencia )

E não e’ somente o resultado final, se vai rodar em desktop ou não, tem a ver com a codificação em sí, isso envolve manutenção, pessoas envolvidas num projeto em comum, bem escrito.

A pessoa esta iniciando no mundo da programação, é melhor gastar tempo estudando algo que é pedido em 1% (Swing/JavaFX) das vagas ou 99% (HTML, CSS e JS)?

Se a pessoa não souber desenvolver pra web vai ficar horrível mesmo

1 curtida

Isso depende, se você pretende trabalhar como empregado e’ uma coisa, se pretende ser desenvolvedor independente e ter suas coisas e’ completamente diferente.

Se for front-end, javascript, css, html, angular e por ai vai, são verdadeiros demônios pra dar manutenção. E’ tudo remendado.

Se a pessoa que fez o código era iniciante, ai é uma desgraça dar manutenção mesmo kk

Mas se for experiente, ai é de boa

2 curtidas

Vai nessa…, tenho uns codigos aqui de gente experiente, que dá uma olhada na criança ?

Hahahahaha melhor deixar quieto