Bate-papo sobre JSF 2.3 e PrimeFaces 6.1 com Çağatay Çivici

Postado por em   ●   Seja o primeiro a comentar

No final de 2016 eu convidei o Çağatay, criador do PrimeFaces, para mais um bate-papo por Skype, para falar sobre o futuro do JSF e PrimeFaces.

Nesse vídeo, você vai descobrir:

  • O que é PrimeFaces
  • Como o Çağatay consegue financiar o trabalho do PrimeFaces
  • Se existe algum plano de criar um layout premium gratuito
  • Quais são as principais novidades do PrimeFaces 6.1
  • Quais são as principais novidades do JSF 2.3
  • O que o Çağatay pensa sobre frameworks client-side, como Angular e React

Assista a entrevista completa abaixo.

Assista o vídeo, comente e compartilhe com seus amigos que também gostam de PrimeFaces! :)

Quer aprender mais sobre JSF e PrimeFaces? Então baixe o e-book gratuito que eu escrevi.

E-Book Java EE 7 com JSF, Primefaces e CDI

Transcrição

Thiago: Olá a todos. Meu nome é Thiago, eu trabalho na AlgaWorks, e hoje eu vou falar com Çağatay, o fundador do PrimeFaces. Eu estou no Brasil e ele na Turquia. Oi, Çağatay, como vai?

Çağatay: Oi. Olá todo mundo.

Thiago: Obrigado, Çağatay, por aceitar mais uma vez meu convite para esta entrevista para atualizar a comunidade brasileira sobre o PrimeFaces. Então, vamos começar. Talvez hajam pessoas que ainda não conhecem o PrimeFaces, você poderia dar uma breve introdução do que ele é?

Çağatay: Claro. PrimeFaces é uma biblioteca de componentes JSF. JSF é o framework web padrão do Java EE, e os componentes padrão que ele tem não são adequados para se criar aplicações de internet ricas, então, nós criamos o PrimeFaces para preencher esse espaço. Nós temos em torno de 100 componentes, desde tabelas, abas, acordeões, gráficos… qualquer coisa que você precisar para criar uma aplicação rica. PrimeFaces é, no momento, a biblioteca mais popular para se criar aplicações JSF. Ninguém usa JSF sem PrimeFaces hoje em dia, eu acho.

Thiago: Sim, claro. Nós sabemos que PrimeFaces é gratuito e de código aberto. E a sua empresa, a PrimeTek, está por trás da tecnologia, certo?

Çağatay: Sim.

Thiago: Então, como sua empresa consegue fazer dinheiro para financiar esta tecnologia? Vocês têm algum outro produto comercial?

Çağatay: Atualmente, nosso principal produto é o PrimeFaces. Ele é totalmente de código aberto. Nós temos um programa chamado ELITE. PrimeFaces ELITE. Quando fazemos uma correção, uma mudança, nós as incluímos no ELITE. A versões como 6.1, ou 6.0, ou 5. … essas versões maiores são gratuitas e de código aberto sob licenças Apache. Ou seja, 5, 4, 5.1… Mas, versões menores, como 5.1.algumacoisa ou 6.0.algumacoisa não são de código aberto. Elas são chamadas de versões ELITE e somente estão disponíveis para usuários ELITE. Mas, o legal é que quando nós fazemos uma mudança, uma correção, ou, digamos, depois de lançarmos PrimeFaces 6, assim que o PrimeFaces 6.0.1 é lançado, nós fazemos a modificação tanto na versão ELITE quanto no repositório GitHub para a 6.1. Então, você pode consegui-la se compilar PrimeFaces a partir do código-fonte. Mas, se você quiser uma biblioteca pré-compilada e altamente testada, simplesmente use a versão ELITE. Nós também temos o suporte PRO, onde você pode ter suporte em horário comercial. É geralmente o que as empresas preferem, elas querem alguém para poder tirar dúvidas. Isso é uma coisa. Nós também implementamos funcionalidades baseadas em pedidos de usuários. E também nós temos templates e temas premium onde nós criamos todo o template da aplicação com temas interessantes. Nós também vendemos eles na nossa PrimeStore. Então, o produto central é gratuito, mas se você precisar de suporte ou layouts interessantes, temas interessantes, também há ofertas comerciais.

Thiago: Ok, então, se você não quiser construir um layout por conta própria você pode comprar um layout e tema dos criadores do PrimeFaces.

Çağatay: Sim, quero dizer… Há também outros layouts, por exemplo, se você conferir outros sites eles te oferecem templates e temas, mas, o interessante acerca dos nossos templates é que eles são testados com o PrimeFaces, e nós também oferecemos o tema. Se você pegar um layout de terceiros você precisará fazer mudanças para garantir que eles se apresentem bem, você precisa também alterar os componentes do PrimeFaces. Mas com os templates do PrimeFaces você também recebe um tema para o PrimeFaces. E eles são altamente testados, os criadores do PrimeFaces implementam esses temas e layouts, o que é um ótimo bônus.

Thiago: Sim. Muito bom. Vários estudantes me pediram para perguntar algo pra você, então, vou fazer isso: vocês têm planos para criar um template gratuito, comunitário?

Çağatay: Não tenho certeza, nós queremos, mas… este é o nosso modelo de negócios, mas também gostaríamos de criar um gratuito. Não tenho certeza, talvez no futuro, isso é algo que precisa ser conversado. Talvez podemos criar um gratuito, mas com menos funcionalidades, talvez versões mais simples. Mas, há um p:layout no PrimeFaces também, embora esteja meio fora de moda, comparado ao conjunto atual. Mas estamos avaliando isso, entretanto, não há uma decisão definitiva no momento. Talvez no futuro.

Thiago: Nós da AlgaWorks criamos um layout bem simples para nossos estudantes que se interessassem em criar um sistema bem simples do zero, mas que não têm dinheiro para investir. Mas, se você estiver trabalhando num software comercial, numa empresa, eu recomendo que você compre estes layouts porque você conseguirá um excelente retorno do investimento, seu tempo… você não precisará fazê-lo.

Çağatay: Faz sentido. Quero dizer, atualmente… se você precisar de um layout agora, você pode procurar agências de design e pode ser bem caro contratar uma agência, e eles já têm que entender o PrimeFaces, eles têm que criar todos os temas e coisas tipo isso. Mas, no momento, nossos temas e templates… você pode consegui-los por um valor acessível e razoável. E eles são criados por designers profissionais, e implementados por desenvolvedores front-end profissionais. E eles são muito mais baratos… eles são mais baratos do que você irá conseguir em uma agência de design.

Thiago: O interessante é que, investindo num layout, você ganha todos esses benefícios e ainda financia o trabalho… o grande trabalho do PrimeFaces, que é de código aberto… um modelo de negócios que eu compreendo totalmente.

Thiago: Quais são seus planos para a próxima versão do PrimeFaces?

Çağatay: No momento… por exemplo, hoje nós adicionamos uma funcionalidade interessante chamada TableState. Por exemplo, você abre uma tabela, organiza, filtra, avança páginas, seleciona alguns dados… se você for para outra página e voltar, as suas alterações são perdidas, no momento. Então, quando você colocar multiViewState=true, numa tabela, o estado será mantido. Então, você pode ir para outra página e daí voltar e você vai encontrar a tabela do jeito que deixou. Foi pedido várias vezes pelos usuários. Isso é uma coisa. Nós adicionamos caixas de seleção de 3 estados, também um componente de organograma onde você pode mostrar a estrutura organizacional. Também está disponível. Também, no momento, estamos trabalhando em um novo componente de planilhas, onde você pode ter funcionalidades de Excel na web. Por exemplo, criar células, juntá-las, mostrar fórmulas. Essa é também uma funcionalidade principal. E nós adicionamos paginação para TreeTable. Então, nós temos algumas ideias e, também, revemos as ideias da comunidade e adicionamos funcionalidades. Mas, as funcionalidades principais são planilha, organograma, caixa de seleção de 3 estados e TableState, para a 6.1, que deve sair em meados de fevereiro, de acordo com os planos em 2017.

Thiago: Ok, funcionalidades bem interessantes. Na minha opinião, JSF é uma tecnologia muito boa, e ainda é popular graças do PrimeFaces. Como você disse no começo, é difícil encontrar um projeto, hoje em dia, feito em JSF sem o PrimeFaces. JSF é a tecnologia base e o PrimeFaces oferece vários componentes, funcionalidades. Mas, atualmente, há várias tecnologias client-side que trabalham com componentes também, como por exemplo, Angular e React. Eu gostaria de saber o que você acha. Você acha que essas novas tecnologias client-side substituirão o JSF num futuro próximo?

Çağatay: Há muitas coisas acontecendo no ramo dos frameworks web modernos. Todo dia parece que temos um novo framework em JavaScript. Algumas vezes você começa a usar algo e, na semana seguinte, ele fica defasado. No momento, os populares, como Angular 1 e 2, React, Vue, Knockout, Backbone, Batman, Ember… Eu posso ir sem parar… Polymer, se você gosta de Web Components. Quero dizer, não há solução definitiva, depende da aplicação. Por exemplo: JSF funciona muito bem em ambiente corporativo, onde as aplicações ficam atrás de um firewall, dentro de uma rede de intranet, onde você precisa criar uma aplicação de centenas de páginas sem lidar muito com JavaScript e CSS. É um framework muito muito muito bom. Mas ele tem seus pontos negativos como, por exemplo, não ser muito adequado para suporte a offline. Mas se você não se importar com suporte a offline, JSF é uma boa escolha. Quero dizer, ele tem essas raízes na renderização server-side, ele renderiza as coisas no servidor e envia para o cliente, onde frameworks client-side, como Angular e React, faz o seu trabalho no lado do cliente. Mas, há suporte para renderização server-side… Você sabe, depende do tipo de… Então, o que estou tentando dizer é que mesmo esses frameworks client-side, precisam de alguma renderização server-side, que melhora performance de carregamento da página, que otimiza o suporte aos mecanismos de busca. Então, depende… por exemplo, nós também estamos interessados no Angular 2. Nós temos outro produto, chamado PrimeNG, que é a mesma coisa mas para Angular 2, mas, por vezes todos nós vemos discussões como “PrimeFaces é melhor ou PrimeNG é melhor?”, “Devemos fazer um PrimeReact?” e coisas do tipo, mas, no momento, se eles fossem bons o suficiente para substituir o PrimeFaces, eles já teriam feito isso. Estamos falando de 2016. JSF nasceu em 2003 ou 2004. PrimeFaces nasceu em 2009. Angular nasceu no começo de 2010, assim como React. Mas quando nós olhamos a quantidade de downloads, para uso e adoção, nós não vemos muito crescimento no número de usuários mas nenhuma queda também, então, ainda há amantes e usuários de JSF e PrimeFaces, e eles na verdade não vão a lugar algum pois uma vez que você gosta desse modelo de programação, é difícil voltar e começar a fazer algo em client-side, mas, se você for acostumado ao client-side primeiro… talvez novos desenvolvedores ou desenvolvedores jovens… eles podem preferir tecnologias client-side, talvez ele não gostem do estilo server-side em frameworks, então, depende do que você gosta, mas, uma coisa é certa: a adoção e a popularidade do PrimeFaces ainda existe, não vai à lugar algum, e o número de downloads ainda é alto. Nós monitoramos diariamente a adoção e coisas do tipo, então, estamos felizes e iremos manter melhorando enquanto as pessoas quiserem.

Thiago: E outra pergunta: você é um membro do grupo de especialistas da JSR 372, que é a especificação do JSF 2.3, que ainda é um rascunho. Na sua opinião, quais são as funcionalidades mais importantes dessa nova versão do JSF?

Çağatay: Nós temos a funcionalidade chamada Atmosphere Integration, o p:socket, onde você pode fazer server-side push principalmente com Web Sockets, e então, se você… se o navegador e o ambiente no servidor não suportarem Web Sockets você pode ainda usar HTTP Streams e Long Polling. Há, agora, um componente padrão chamado f:socket. Foi também derivado das ideias dos componentes de socket do PrimeFaces e OmniFaces, o p:socket, e agora se torna um padrão, o f:socket. Então agora você pode usar server-side push com Web Sockets, se o navegador e o seu servidor suportar. E também tem a validação múltipla. Hoje eu descobri ser uma excelente funcionalidade. O framework de Search Expression do PrimeFaces também vai se tornar padrão porque Thomas Andraschko, que é meu colega no time do PrimeFaces e também faz parte do Expert Group, ele portou junto com Leonardo da MyFaces, Leonardo é da Colômbia… eles portaram esta Search Expression para o núcleo do JSF. No momento você tem somente @all, @none, @form, @this… agora você pode combiná-los com @parent, @child, e você pode misturá-los. Também, há suporte para Flash Injection, usando @Inject, para melhor integração com Managed Beans. Melhorias bem legais. Quero dizer, a ideia da especificação é padronizar o que a comunidade espera, então, nós e a OmniFaces antecipamos um monte de coisas e, então, elas estão sendo agora padronizadas.

Thiago: E você sabe qual é a previsão para o lançamento do JSF 2.3?

Çağatay: Está alinhado com o Java EE 8, então, provavelmente no próximo ano (2017). Não tenho certeza da data, preciso checar, mas, próximo ano (2017).

Thiago: Bem, em nome de todos os desenvolvedores PrimeFaces no Brasil, eu gostaria de te agradecer muito por esta entrevista, pelo seu tempo de conversar conosco e parabenizar o seu time e todos os contribuidores do PrimeFaces pelo excelente trabalho. Então, você tem algumas palavras finais para a comunidade?

Çağatay: Quero dizer, o Brasil é muito importante pra nós. Quando conferimos o Google Analytics, a maior quantidade de visitantes e usuários são do Brasil, e eles tipo… eles são o dobro do segundo lugar, que é, eu acho, Estados Unidos, quero dizer, é muito popular, nós estamos realmente felizes de ver tantos usuários no Brasil. Nós até decidimos melhorar o suporte ao português brasileiro no PrimeFaces, para garantir que tudo esteja embutido. Então, obrigado por fazerem parte da nossa excelente comunidade e obrigado pelo feedback contínuo para melhorar o PrimeFaces. E obrigado por tudo. De verdade.

Thiago: Ok, eu acabei de conversar com Çağatay, o criador do PrimeFaces. Gostou do vídeo? Então, por favor, compartilhe este vídeo com seus amigos, deixe um comentário abaixo dizendo o que mais gostou no vídeo e, se você quiser aprender mais sobre o PrimeFaces, eu escrevi um ebook, é gratuito, você pode baixar o PDF. Vou colocar um link talvez na descrição ou dentro do vídeo, não sei ainda, mas você pode baixá-lo de graça. E obrigado novamente, Çağatay, tenha um ótimo dia. Até mais.

Çağatay: Obrigado. Você também.

Fundador e instrutor da AlgaWorks. Certificado como programador Java pela Sun, autor e co-autor de diversos livros de Java, Java EE, JPA, JSF e PrimeFaces e palestrante da maior conferência de Java do mundo (JavaOne San Francisco). Iniciou seu interesse por programação aos 14 anos de idade (1995), quando desenvolveu o primeiro jogo de truco online e multiplayer do mundo. Já foi sócio e trabalhou em outras empresas de software como programador, gerente e diretor de tecnologia, mas nunca deixou de programar.

Deixe um comentário