Taverna /dev/All

EJB hoje: pra quê?

Hoje em dia vocês usam EJB em que situações? Mesmo em seu auge, o uso do EJB era bastante limitado: eu pelo menos via muito poucas equipes o adotando. Mas e hoje?

O modelo distribuído dele, por exemplo, vocês vêem sendo adotado hoje? Faria sentido? Quais seriam as suas vantagens?

minhas experiências recentes com Java só vejo as pessoas cegamente usando Spring achando que vai ter um spring-alguma-coisa que vai resolver todos os seus problemas. Estão me lembrando a outra comunidade que tbm começa com Java. Resumindo, uma comunidade que sempre vi pensando em engenharia de software e arquitetura de sistemas tá caindo em qualidade por conta de confiar demais nas abstrações que surgem e sem entender como elas funcionam e porque elas existem. É muito “li no blog/SO ou vi na palestra X/Y/Z” e faz igual sem entender o seu contexto.

felizmente descobri o https://www.youtube.com/channel/UCH0qj1HFZ9jy0w87YfMSA7w recentemente q me fez ver q era só um problema de contexto meu aqui.

Oi Joao, confesso que não entendi direito a sua resposta.

Mas o que você quer dizer é o uso indiscriminado de uma tecnologia, certo? Eu concordo completamente com você neste ponto. Sempre que vejo todo mundo usando algo “por que sim” ou “por que todo mundo usa”, desconfio e vejo uma oportunidade profissional pra mim.

Do ponto de vista técnico, você tem visto usos legais do EJB? Do ponto de vista de desenvolvimento distribuído eu, pessoalmente, acho fenomenal como evolução do antigo CORBA.

Isso mesmo, não tenho visto ninguém usar. Estou mais afastado de Java no momento. A empresa atual é JS, Python e Go apenas. CORBA só vi na graduação e nunca mais, sempre que escutei em conversas por ai foi em tom pejorativo. Acho que é só questão de tempo do ciclo de tecnologias do momento rotacionar p/ o CORBA ou algo igual ao CORBA com nome bonito e vendido em palestra voltar.

Mas o EJB nao era limitado ao Java?

Mas se Spring é o framework mais produtivo e ao mesmo tempo o mais difundido para back-end Java, não vejo nada de errado nisso, errado seria se aventurar em algo duvidoso.

O importante são os resultados para o Negócio, quanto mais esconder complexidade desnecessária melhor para a produtividade. Pra mim a comunidade evoluiu, lembro como era antigamente a comunidade Java, defendiam soluções hiper complexas sem a menor necessidade. Na época eu só estava no .NET e achava uma aberração os projetos Java, hoje é mais normal tocar um projeto Java para web usando essas soluções produtivas do Spring, embora a linguagem Java ainda deva muito para as outras.

Sobre o tópico, hoje HTTP é o que mais alimenta e integra sistemas. Certamente nao usaria EJB. Nesse cenário para web server seria somente overhead.

a critica é ao uso deliberado de ferramentas sem entender o que ela resolve e como. usei o spring de exemplo dado o contexto da pergunta inicial apenas. onde vejo mais problemas nisso na realidade é no JS, vejo que a pessoas colocam deliberadamente qqr pacote como dependência do projeto.

é fato que o importante é atender o negócio mas pequenas práticas ruins vão se acumulando e tornando complexa a evolução do produto prejudicando o msm negócio que foi priorizado no começo ao invés da qualidade do software.

mas isso é conversa p/ outro tópico. =)

Isso é verdade, mas porque browser nao foi projetado para sistemas. Então pelas exigências atuais a garotada do front-end tem que se abraçar a grandes gambiarras como Angular, Reactjs e toneladas de dependências para criar programas do lado do browser. Talvez com webassembly o cenário melhore um pouco quanto a linguagem e desempenho.

itexto