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.
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#.
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.
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.
É 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 ://
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!
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.
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…
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
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
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.