Blog do TaQ

Mórbida semelhança 2

Publicado em Developer

Continuando as mórbidas semelhanças de ontem ... estava imaginando o quanto alguns pontos de tecnologias como o J2EE e o .NET se parecem, tanto como no jeito que são feitas como no jeito que são empregadas e entendidas pelos desenvolvedores.
Em um papo mais "animado" (socos,pontapés) com meu amigo Rael foi apresentada a seguinte argumentação em certo ponto: fica mais prático para uma empresa fazer toda a sua programação levando-se em conta uma plataforma só, onde se economizaria tempo de aprendizado da ferramenta/linguagem e de manutenção de código/pessoas nos produtos que utilizam essa plataforma.

Tiro algumas conclusões disso ... a primeira é que se for pensar por esse lado, não podemos criticar o .NET por tentar fazer essa mesma coisa (isso levando-se em conta que a gente gosta de Java e odeia as coisas da Microsoft ehehe), ser uma plataforma muito abrangente que você tem que montar toda sua estrutura em cima dela. Isso abstraindo-se alguns conceitos que o .NET só roda bem no Windows, de toda a sujeirada da Microsoft, etc e tal. Levando-se em conta apenas o fato de basear tudo em uma plataforma só. Nesse caso, são idênticas para muitas pessoas.

Outra coisa é sobre esse lance de uma tecnologia só. Qualquer uma das duas tecnologias citadas aí em cima nunca vai ficar somente dentro de seus próprios recursos. Exemplos? Imaginemos que uma empresa tenha vários aplicativos internos, um site, uma intranet e alguns aplicativos distribuídos em palmtops, celulares etc e tal. Vamos pegar só o site e a intranet como exemplo. Qualquer das duas tecnologias vai ter ser mixada junto com, antes de mais nada, HTML. Para fazer um HTML que preste, sem encher de tags excessivas e coisas do tipo, o sujeito vai ter que conhecer bem HTML, isso sem nem mencionarmos a parte do layout aqui. Se o site quiser ter um pouquinho de interação do lado de lá com o cliente, digo, não nas páginas, mas do lado de lá do browser, vai ter que saber também JavaScript. Se for fazer alguma firulinha, dá-lhe DHTML/DOM no meio também.

Na ponta do lápis, já temos J2EE/.NET mais HTML, JavaScript e DHTML, só para mencionar o site e a intranet. No máximo temos mais 3 tecnologias adicionais e no mínimo, mais 1 para que se possa ter uma coisa decente. Nesse caso ou você tem um profissional bom em todas ou tem vários profissionais especializados em cada uma. Primeiro ponto que nega uma tecnologia só.

Agora, mesmo que eu tenha toda a minha estrutura baseada em J2EE/.NET, o que me impede de usar Python no meu celular/palmtop do mesmo jeito que a Nokia fez? Alguém já instalou Java no palmtop? Já? Sortudos. Eu até agora não vi algum jeito fácil e prático de se fazer isso. Se o Python está nos celulares da Nokia, também está nos palmtops (o projeto está meio capenga, mas está lá). Fica mais fácil brigar com a VM para instalar nos palms e aprender as regras dos midlets? Tudo bem, a escolha é sua, do mesmo jeito que é minha também utilizar alguma coisa diferente do esquemão para ter uma solução prática (sim, prática) em algum lugar que eu precise dela também.
Uma coisa que não podemos ser é absolutistas; a frase "empresas se dão melhor utilizando uma tecnologia por toda a empresa" não funciona em todas as empresas, pode funcionar em algumas, mas não funciona em outras. É critério e opção de cada empresa, e é totalmente fútil julgar o posicionamento da mesma antes de ver a implementação das soluções empregadas.

É fácil falar com uma opinião "sacramentada" defendida por alguns (ohhh Deus me mandou fazer isso ,vai discutir, herege?), mas ao mesmo tempo é bem desconcertante admirar a eficiência de uma metodologia eficiente e diferente da defendida por você. Vejam o post das "idéias pré-concebidas" abaixo. Em um ambiente desses já vamos de "escudos defletores" erguidos e espadas em punho, pois já imaginamos um bando de barbáros atacando. Não é bem assim ...
Engraçado que, pegando o exemplo de Java, tem uns engraçadinhos por aí que acham que programar em Java é programar em J2EE, do mesmo jeito que alguns que acham que Java é só applets. No segundo caso, fica o desconhecimento mais acentuado da linguagem, mas o segundo caso é mais grave, pois (não generalizando) são os tipos de sujeitos que abstrairam todo o resto de utilizações, conceitos e conhecimentos da linguagem em favor da coisa que eles mais sabem/gostam. E quando você pergunta sobre tópicos como multithreading, sincronização, nio (ou mesmo até de event handlers!) os caras respondem "hein? o que é isso?". Tem que ter paciência ou faltar com ela de uma vez com essas coisas ...

Aí eu entro em outro ponto, mais biológico: diversidade de espécies. Já ficou comprovado que em um ambiente com poucas espécies diferentes ou apenas uma só a evolução é praticamente nula e o risco de extinção é bem alto. Nesse caso, tanto de plataformas/linguagens como de desenvolvedores.

Falando nas linguagens, vejam as mudanças no Java 1.5 (tá, eu sei que muita gente torceu o nariz com essas mudanças): o autoboxing praticamente veio do C#, o novo for e os static imports são presenças bem marcantes do Python. Eu gostei das mudanças. Não digo que se não tivessem as outras linguagens elas não apareceriam, ou que deve-se replicar tudo o que as outras tem, mas que foi uma boa coisa foi, justamente por que os desenvolvedores que utilizam a linguagem e participam do JCP gostam de Java mas também se interessam por outras coisas.
Ainda bem, por que falando sobre desenvolvedores agora, você ficar preso à uma só tecnologia é horrível! Eu pelo menos adoro estudar e aprender coisas novas, adoro ver novidades e fazer comparações e reavaliações sobre os conceitos (das coisas que estudo e dos meus próprios) e apesar de adorar programar em Java eu iria ficar louco se falassem que só poderia usar ele 100% nas minhas atividades, nos próximos, sei lá, 5 anos. Você exercitar seu cérebro com outro tipo de coisa além daquela corriqueira é muito importante, sempre se tira proveito de conhecimento. E você evolui. ;-)

E isso é importante para o seu futuro como desenvolvedor também. Você ganha flexibilidade, raciocínio mais rápido, capacidade de analisar e se adaptar ao problema do melhor jeito possível e a capacidade da auto-crítica e de, se preciso, se reinventar, jogar seus conceitos fora e partir para novos horizontes. Suícidio do ponto de vista corporativo? Pode ser, mas pode ser a "salvação da lavoura" dependendo dos casos. Não vão pensando que corporações não gostam de inovação (mesmo inovações das grandes), que eles gostam sim, mesmo as mais tradicionais ...
Eu sempre pensei desse jeito e tem funcionado. Já joguei alguns conceitos na lata do lixo e comecei de novo. Me mantenho firme em alguns outros. E por aí vai. E sempre tem funcionado ... você me achando sortudo ou não, é o jeito que a coisa está rolando. :-)

Só para quebrar o gelo, falando sobre evolução, fiquem de olho nesse filme:



Ou vai ser uma bomba ou vai ser muito bom. :-)
Tags:


Comentários

Sem nenhum comentário.

comments powered by Disqus

Twitter