Futuro do Java

Estou voltando a programar em Java, após ter passado alguns anos administrando redes. Tenho bastante interesse no JavaFX, porque fui programador Delphi e gosto de GUI. Contudo vejo com bastante preocupação a aquisição do Java pela Oracle. Não sei sobre a compatibilidade do OpenJdk com o JDK da Oracle e sobre a compatibilidade do OpenJFX com o JavaFX. Qual a opinião dos outros programadores, ainda vale apena programar em Java ou seria melhor mudar para o Python, mas posso ter o mesmo problema. Talvez fosse melhor voltar para C, mas já soube da nova linguagem D que irá substituir o C. Qual a melhor alternativa ?

Para java eu só conheço mercado web ou android. Tirando isso, nunca vi nada considerável. Mas, esta é a minha experiência pessoal.
E, não, o java não vai morrer, mesmo que a Oracle cobre pelo JDK, faça uma versão paga e outra (capada) free.

Segundo os manuais, o JavaFX roda na Web, no desktop, no android, Raspberry pi e no arduino. Compila uma vez e roda em qualquer lugar. Se realmente funcionar vais ser uma grande sacada para quem adotar, o perigo é a oracle começar a cobrar…

Cara, eu acho que linguagem é só mais uma ferramenta. Então, além de sua experiencia nela, vai muito do tipo de projeto qual vai ser melhor. E isso varia não só com os pontos fortes de cada linguagem, mas com o tempo, então eu acho que o que é bom aprender é ter a base como para poder mudar de linguagem, framework, etc de acordo com a necessidade e saber avaliar qual se encaixa melhor.

Como já falaram, Java tem mais o nicho web e Android, porém para web e rodando na JVM sendo as demais coisas iguais, para um projeto novo eu pessoalmente usaria Scala com Play Framework. Mas nem sempre há essa liberdade de escolher, por um motivo ou outro, tem empresas que preferem fazer tudo no mesmo “template” (mesma linguagem, IDE, SGBD, frameworks, etc).

D vai substituir C tanto quanto C++ substituiu C rs Só conversar com alguém que trabalha com sistemas embarcados pra tu ter uma ideia sobre o estado das coisas. Também, diferente de C++, a linguagem D até onde sei só tem uma unica implementação do compilador, ou seja, nesse ponto é pior que Java, onde há varias implementações. Isso entre mais outras coisas como dificultar gerenciamento de memoria sem garbage collecting, coisa que eles ainda estavam vendo de melhorar.

A Oracle cobra pelo uso de seus bancos de dados e, adivinha, tem muita gente que paga para utilizar o banco de dados Oracle.
Assim como N ferramentas que a Oracle vende. Assim como outras N ferramentas que a IBM vende. Assim como outras N que a Microsoft vende.
Assim como serviços, suporte, consultoria que são vendidos por aí.
Pense no seguinte, se todo mundo fizesse software livre, você teria mercado? Software livre é importante, mas não é a única forma de se desenvolver.

Em termos práticos, acho muito mais provável que projetos percam tempo com desenvolvimento de coisas em CSS e javascript do que com java fx. Mais fácil encontrar desenvolvedores mobile híbridos e aptos a desenvolver para android, ios e windows phone do que contratar um que manje de javafx.
Acho mais provável desenvolver uma aplicação desktop em c++, c# ou mesmo delphi do que em javafx.
Não que seja uma tecnologia ruim, mas é o que o mercado consolidou.
Pode ser (afinal, tudo é possibilidade) que amanhã tudo isso mude. Mas, se você realmente quer investir tempo, dinheiro e paciência em algo que vai dominar o mundo, faça algo voltado ao mercado mobile, web e, certamente, cloud.
Agora, se o objetivo é só passar o tempo, vá fundo no javafx. Se a tua região é um mercado que consome javafx, vai com fé.
Ressalto que essa é minha opinião pessoal, com base nas experiências que tenho e do que vejo no mercado e em anúncios atualmente.

Para a Web, achei o Django muito mais rápido para desenvolver que o JSF, o problema é para fazer o debug, neste caso, usando o eclipse ou o netbeans a depuração do FSF é muito simples, foi o que me fez abandonar o Django, apesar de ter gostado muito dele. O debug é essencial.mas não gostei muito do JSF, apesar de ser rápido de desenvolver e ainda preciso do maldito web designer. Com o JavaKX eu não preciso tanto de um designer, nem de Javascript, Ajax ou JQuery.Pode ficar tudo no Java nativo.

@marco5, django, perl, php, nodejs… Tudo isso é muito mais rápido que o jsf (e bota rápido nisso). E é, efetivamente, para ser assim.
O objetivo do JSF é diferente do objetivo do django, php, nodejs.
Dificilmente um arquiteto vai chegar para e empresa e dizer que vai trocar o sistema que roda em websphere, utiliza o ibm broker e integra com cobol por um sistema nodejs com mongodb.
Lembre-se que o mundo dos sistemas não sobrevive de uma linguagem que é a bala de prata.

O C++ posui interface gráfica ? e o Scala possui ? O Python possui várias, mas a POO é muito inferior à do Java. Preciso tomar uma decisão !

Até onde sei todas as bibliotecas de UI Python são wrappers para bibliotecas em C ou C++ (Qt, wx, etc).

Scala roda na JVM e é compatível com bibliotecas Java. Já fiz programas que usavam Swing nele por exemplo, sem nenhum problema.

Plataforma Java da Oracle só tem grande importancia no mercado para back-end web. Como o @Luis_Augusto_Santos falou, só invista em JavaFx se isso fizer parte da sua religião, com a crença de “usar Java pra tudo”.

Futuro só Deus sabe, mas torço para Go ser o futuro.

1 curtida

@javaflex, eu gostei muito de typescript também (eu sei, é M$$$$$ do hell), mas achei fantástica.
Eu torci o nariz para angularjs, mas angular 2 é fenomenal. Não que front seja muito do meu agrado.

Deixa eu dar o testemunho que ouvi de um amigo. Ele se formou em 2009. O tcc dele foi feito em java desktop, com swing e orientado a stored procedures (sério) no mysql.
Ele me disse: desktop, nunca mais!
É exagero dizer isso, mas, somente sistemas muito específicos (ERPs, editoração de vídeos e imagens, IDEs e alguns poucos outros) é que ainda tem apelo desktop. Muitos já disponibilizam opções web, na nuvem e, com certeza, isso é o futuro.
Aqui na empresa se fala muito de IoT (internet of things) e muito da infra já foi posta na amazon cloud.
Então, se eu fosse começar hoje, atacaria web ou mobile.

O chato da programação web é o request/response. Nem tudo funciona desta forma. Em algumas aplicações, o usuário pode trabalhar durante horas e so utilizar o servidor para o backup.

Eu discordo.
A partir do momento que você tem uma aplicação construída devidamente, de acordo com as melhores práticas e atendendo a todos os requisitos e especificações solicitados, você acaba por mitigar problemas como este.
A questão do timeout em sessão ou view é algo que pode se resolver com poucas linhas de código.
Ainda assim, ressalto que são raras as exceções que ainda tem apelo desktop. Por exemplo, o Siebel, um CRM robusto, a partir da versão 8 já é web. A equipe que mantém o corel draw já disponibiliza licenças para uso do mesmo na nuvem.

Na empresa que trabalho estamos adotando o javaFX, entretanto temos que construir nossas próprias bibliotecas para algumas coisas que não existem nele, como por exemplo mdi (internal frame). Ressalto que o fx usa muito o processador e não é muito indicado para pcs muito antigos, diferente do swing. Sobre rodar na web, somente por webstart, applet já foi. No Pi roda, arduino só C meu amigo (pelo menos o que vi até agora). A qualidade gráfica do Fx é boa e é relativamente fácil desenvolver belas interfaces, entretanto tem coisas que não são tão tiviais em comparação com o swing. Se gosta da plataforma e tem mercado na sua cidade/região vá em frente. Senão estude alternativamente web, SPA, grails… (web).

Veja no meu git algumas UIs e Bibliotecas pra FX:
UI
Lib
UI

Eu prefiro javascript puro sem frameworks, no máximo usando a biblioteca jquery. Mas front-end web, independente da ferramenta usada, também não é do meu agrado. Importante é ter na equipe quem goste pra poder focar mais nisso.

Eu já trabalhei para web há alguns anos atrás. O que eu não gostei era a quantidade de tecnologias diferentes necessária para se fazer um aplicativo. Por exemplo HTML, CSS, Javascript, Ajax, EJB, Hibernate, JSF, SQL, JMS, Glassfish e isso é só o começo. Depois tive de trabalhar com projetos de rede, depois administração de redes e agora quero voltar a programar. Mas queria algum tipo de linguagem que não exigisse tanta tecnologia diferente(e problemas de integração), por isso pensei no JavaFX.

A Caelum conseguiu empacotar tudo isso em dois cursos que eu fiz. Agora se você vai ler tudo sozinho e se virar sozinho vai ter de ralar muito !

Cursos específicos pra JavaFx?

Não. Foi EJB e outro de JSF.O EJB eu gostei, mas o JSF é muito engessado. Funciona, mas você tem de se adequar ao ciclo de vida do JSF. Os servlets também tem ciclos de vida distintos. No Django não tem nada disso, é mais prático, mas achei muito ruim de depurar, Nisso o JSF é melhor, graças ao eclipse, se não houver nada melhor vou ter de usar o JSF.

Atá, achei estranho pq nunca vi treinamento específico para Fx. Para web já tentou Grails? eu achei bacana.