Pera, Uva, Maçã, Salada Mista

Eu venho pensando em escrever o post inicial deste blog a um certo tempo, porém não quero ficar escrevendo trechos de código nem “como implementar tal função em xpto”.

Um assunto que vem me incomodando a um certo tempo é a questão da “super facilidade” de se trabalhar com Java. Que Java é uma linguagem poderosa todos sabemos, porém com todos esses frameworks que nos vem sendo apresentados, até onde a facilidade continua?

Em uma época em que assuntos como produtividade, agilidade estão em evidência, vale mesmo a pena começar um projeto com Java?
No projeto em que venho trabalhando, onde não citarei nomes de pessoas nem de empresas, estamos utilizando Java, mais espeficamente um “kit de desenvolvimento”, onde foram incluidas inúmeras tecnologias, conceitos, e que visa “facilitar” o desenvolvimento de aplicações para determinada empresa. O que descreverei abaixo não é uma conversa real, porém imagino que só pode ser fruto de algo parecido:

“- pessoa1: Bom, vamos criar um super framework que visa juntar diversos frameworks e pré-configurá-los para que obtenhamos um melhor desempenho

– pessoa2: Ótima idéia! Ouvi dizer que JSF está na moda! Temos que utilizar!

– pessoa3: JSF é muito bom, mas para reaproveitarmos os nossos layouts, porque não utilizar Tiles do Struts?

– pessoa2: Tem certeza? Bom, se é bom, vamos colocar também!

– pessoa1: Mas não existe aplicação profissional sem EJB’s! Coloque na lista também!

– pessoa2: E quanto à persistencia? ficaremos com JPA ou vamos utilizar Hibernate?

– pessoa1: Coloca o melhor dos 2 que está otimo!

– pessoa3: Hey, JSF é muito bom, mas nós podemos criar os nossos próprios componentes!

– pessoa4: Mas para quem pegar o projeto, não vai complicar um pouco?

pessoa3: Claro que não! Além do mais, podemos escrever um super documento descrevendo como utilizá-los! Vai ficar excelente!

pessoa1: Então criaremos os nossos componentes! Alguém ai já ouviu falar do Maven? O que vocês acham?

pessoa2: Está mais do que incluido!

pessoa1: Certo pessoal, estamos entendidos! mão na massa! Desenvolvam um superframework que mudará nossas vidas! E passe para a mulher do RH uma relação com todas essas tecnologias para que possamos contratar algumas pessoas novas! Como não sabemos ainda qual server iremos utilizar, pessam conhecimento de Websphere, JBoss, Tomcat e Weblogic. Coloquem na lista também diversos Design Patterns, isso é bom! Ah pessoa3, não esqueça de pedir pra colocar um desejável conhecimento de metodologias ágeis, ouvi dizer que esse tal de XP é muito bom!”

Realmente não posso dizer que essa conversa existiu, mas com o que tenho em mãos hoje, o que vem na minha cabeça não foge muito disso. Aonde está a facilidade de desenvolvimento em dezenas de arquivos de configuração? Aonde está a facilidade em, além de entender diversos frameworks, entender como eles trabalham juntos, e ainda mais, ELES TRABALHAM BEM JUNTOS? Dezenas de xml’s, properties, e uma salada mista só para utilizar o que está na moda.

Gostaria de entender o uso desenfreado destes frameworks, que estão ai para ajudar no desenvolvimento, e não atrapalhar! Recetemente estava conversando com uma pessoa que trabalha em um outro projeto para outra instituição financeira, e lhe perguntei quais eram as maiores dificuldades que ele via, e sua resposta foi simples e direta:

“TUDO! Um monte de framework trabalhando junto!”

Até onde vale a pena investir em uma carreira em que 98% das vagas anunciadas remetem a este mesmo problema?

Por hoje é só!