O poliglotismo do desenvolvimento pseudomoderno

No início, quando “softwares” disponíveis através do browser não passavam de sites pessoais munidos com ingênuos formulários para contato, quem fosse capaz de entender C ou Perl rodando em CGI era rei. Com a evolução de hardware, servidores, linguagens de programação, browsers e etc., aquelas linguagens em CGI ganharam novas utilidades, cada vez agregando mais itens às ferramentas produzidas.

A coisa toda deslanchou quando CRMs e ERPs começaram a ganhar versões web, direcionando-se para um modelo centralizado, eliminando a necessidade daquelas instalações em clientes, controle das versões, módulos e todo aquele inferno toda aquela via sacra que é controlar isto.

Os softwares web evoluíram, mas ainda precisavam do bendito refresh a cada ação. Surge então, a brilhante idéia baseada em uma API Microsoftiana esquecida ao léu, concebida ainda na década de 90, onde na ocasião os desenvolvedores a chamaram de XMLHttpRequest e tinha como objetivo iteração entre Outlook e Internet Explorer, provendo acesso ao Outlook Web Access. Ah sim, isso é conhecido pelos stakeholders como Ajax.

Com o advento desse tal Ajax, as telas baseadas em funcionalidades puderam evoluir para telas baseadas em eventos – o que pode ser conversa para outro post – Com essa utilidade, softwares web-based aumentaram em quantidade astronômica e junto levaram a complexidade às alturas !

Essa tal de complexidade, começou a exigir dos softwares comunicação com outros softwares, iteração com diversos dispositivos: hardware hospedeiro; ferramentas e dispositivos físicos plugados na máquina cliente, ou seja, na máquina que está acessando o software via browser. De frente à toda essa necessidade, no início teimaram em prover tudo isso com sua Linguagem de Programação Preferida e Bala de Prata ™. O resultado ? Perda de desempenho, muito dinheiro gasto com códigos que apenas satisfazem a necessidade da linguagem (i.e. Java, oi ?) e noites sem dormir.

PHP é uma excelente linguagem que muitos programadores PHP ainda não conhecem porém, não insista em controlar a impressora do cliente com a tal linguagem por que você simplesmente tomará na cabeça !

Disso, surgiu, assim digamos, um novo tipo de programador: o poliglota. Isso não quer dizer que entender ahn, COBOL e PHP torne-o passível de ser tachado como tal. Martin Fowler em entrevista à Paulo Silveira na Agile Brazil 2010, afirmou sem titubear que o programador poliglota é aquele que trabalha com mais de uma linguagem de programação em um mesmo software.

Neal Ford, tem uma visão um pouco mais abrangente sobre poliglotismo: ele afirma no livro The ThoughtWorks Anthology que o grande ponto do poliglotismo é aproveitar o que cada linguagem que roda sobre a JVM tem de melhor a oferecer. Ele dá exemplos de Java + Groovy; Java + JRuby e até Java + Jaskell. Isso é sem dúvidas infinitamente melhor do que tentar fazer uma aplicação em PHP e testá-la com Ruby e Cucumber sem qualquer tipo de integração direta =P

Desenvolver desta forma é mais comum do que se pensa ! Os primórdios dos Internet Banking’s foram construídos – e assim continuam – desta forma. Nada de arquitetura SOA! – O banco ABN AMRO tem um artigo sobre SOA publicado no JISTEM-USP – É utilizado Java e PHP com o módulo PHP-Java bridge para tal mágica. Empresas como Facebook, Last.fm, Google, Yahoo! utilizam mais de uma linguagem para uma mesma ferramenta como é anunciado na rede. Isto demanda profissionais com algumas características:

  • Livre de tecnologia. Os fanboys de linguagem de programação ficam a ver navios;
  • Domínio da teoria. Não basta ficar preso às facilidades de uma linguagem X ou Y; Faz-se necessário conhecer o por quê das coisas, pois uma linguagem pode ser mais ou menos easy-to-use do que a outra;
  • Interesse em conhecer novas formas e padrões: não adianta forçar-se a programar com o estilo Java com linguagens como Ruby. Camel case não é o padrão em Ruby;
  • Vontade em conhecer novas linguagens. No livro The Pragmatic Programmer é pelos autores recomendado que você aprenda uma linguagem nova a cada ano, e;
  • Estar apto a mudar tudo quase tudo, sempre!

Diante de tudo isso, qual linguagem “investir”? Eu levo em consideração a minha vontade na linguagem. Não é porque a linguagem Scala não está no topo dos mais procurados que eu não partiria para aprendê-la e usá-la em meus projetos e experimentos pessoais. É questão de afinidade com a linguagem. O mercado? Virá atrás de você de forma natural.

Artigo originalmente postado por mim no até então blog Ready to Sail, hoje, o planet da Vex.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s