Olá, estou iniciando um projeto java web e gostaria de saber qual é o melhor front-end para java?
O que vc quer dizer com isso?
Qual o melhor framework para desenvolver o front-end em uma aplicação web usando java como back-end
Depende cara, da tua aplicação, tua pergunta é muito abstrata.
Eu tenho duvida em saber o que usar, jsf, angular JS, bootstrap, vaadin etc
Voce sabe o significado de cada uma ?
O que vc conhece ?
Front-end pra navegadores nao tem o que escolher, é HTML/CSS/JS, independente de ser Java no back-end.
Se precisar de alguma ferramenta, aí só voce mesmo experimentando cada uma pra avaliar se vai ser proveitoso. Do que posso te falar de experiência própria, use ferramenta só quando for necessário, no máximo uma biblioteca como jquery pra ajudar em pontos que ainda seja trabalhoso fazer com JS puro. Como jquery é só uma biblioteca e não framework, então não é intrusivo como angularjs, que força uma cultura de programação particular.
Sobre JSF e vaadin, passe longe dessas tranqueiras.
Sobre Bootstrap, se o programador é quem vai se virar no layout, então é uma boa. De qualquer forma isso não evita da pessoa ter que saber lidar bem com CSS.
Obrigado, era essa resposta que precisava escutar, muito obrigado.
O Jsweet é um transpilador de Java para Typescript/Javascript, isso tornaria possível montar um site sem framework com java.
Mas existem alguns frameworks que permitem criar fronts completos com Java! Eu não sei como eles funcionam, se é da mesma maneira que o Jsweet, transpilando o Java para Javascript, mas sei que funcionam e são usados por grandes empresas.
Alguns exemplos:
-
Vaadin (https://vaadin.com)
-
Google Web Toolkit (http://www.gwtproject.org)
-
ZK Framework (https://www.zkoss.org)
-
OpenXava (https://www.openxava.org)
-
Apache Wicket (https://wicket.apache.org)
Entre os casos de mais sucesso estão o Vaadin, que é usado por 40% das empresas da Fortune-100, empresas que usam ele, por exemplo são a Dell, Volkswagen, Motorola e Netflix, e o ZK Framework que é usado por empresas como Toyota, Ebay, Samsung, Sony, LG, Huawei e Dream Works.
Se quiser checar essa lista de empresas:
Vaadin: https://vaadin.com/consulting/ux-consulting
ZK Framework: https://www.zkoss.org/whyzk/WhosUsing
Acho que é mais facil pular direto pro javascript do que fazer esse rolê todo
Eu estou atualizando essa listinha, pois achei ferramentas bem melhores!
JPro - https://www.jpro.one/
Eu acho que de toda a lista, esta é a melhor opção!
Com o JPro você pode simplesmente pegar uma aplicação JavaFX existente e fazê-la rodar no navegador! Como você pode conferir neste exemplo real. Outra vantagem é que você pode embutir código java em uma página web existente, e ele torna o Java e o Javascript completamente interoperáveis.
O Gluon Mobile também é compativel e você pode combinar os dois, para usar o mesmo código Java para ter uma página web, aplicativos para Android e IPhone, e aplicativos desktop também, tudo feito com o mesmo código!
Também é interessante mencionar o Gluon Substrate, que usa a ferramente de imagem nativa da GraalVM para compilar bytecodes java para binários nativos, dessa forma temos apps nativos!
Juntando isso, em nenhuma circunstância será necessário uma JVM, e você terá literalmente todo o seu frontend escrito apenas uma vez em Java!
Enfim, o “Write Once, Run Anywhere”, é verdadeiro novamente!
Um exemplo de uma bela página web feita puramente com JavaFX.
TeaVM - http://teavm.org/
A TeaVM tem uma abordagem diferente do JPro, por exemplo, você não pode fazer uma aplicação Java existente funcionar como página web, e não possui compatibilidade com o Gluon Mobile ou Substrate, dessa forma, o projeto criado com a TeaVM não funciona em outras plataformas de modo nativo.
Mas, você pode usar o Ionic por exemplo, para embrulhar a página web gerada e fazê-la rodar fora do navegador. Uma das vantagens da TeaVM é que ela trasnformar os bytecodes Java em Javascript eficiente e otimizado, mas não para por ai, ela também gera e combina WebAssembly para deixar sua aplicação web ainda mais rápida!
A TeaVM também oferece um benchmark online, então você mesmo pode verificar a performance e comparar com outras ferramentas no navegador da sua máquina: http://www.teavm.org/live-examples/jbox2d-benchmark/
Bck2Brwsr - http://wiki.apidesign.org/wiki/Bck2Brwsr
Semelhante a TeaVM não se pode utilizar projetos existentes, por exemplo, o objetivo dele não é executar nenhuma biblioteca existente, embora a equipe tenha conseguido portar e fazer o JavaFX funcionar, não sei dizer se é compativel com o Gluon Mobile ou Substrate.
Diferente da TeaVM ele não gera WebAssembly, apenas Javascript, e de todos na lista ele é o mais lento, você pode conferir no benchmark mostrado pela TeaVM.
Além disso, tanto a comunidade quanto o desenvolvimento do projeto parecem não estarem mais tão ativos quanto já foram, então eu não recomendo tentar usar este aqui, mas deixo na lista apenas para conhecimento.
Por isso Java continua valendo a pena e em termos de manutenção nem tem comparação com tantas outras tecnologias por ai. Uma coisa é escrever um “Alo mundo”, outra bem diferente é desenvolver coisas complexas que envolvam muitas alterações.