Complementariedade das tecnologias e plataformas: um novo paradigma

Lembra quando uma novidade tecnológica substituia por completo alguma outra coisa, que se tornava obsoleta e em seguida caía por desuso completo? Tivemos duas ondas nesse sentido: a primeira foi pela própria popularização do computador que, entre outras coisas, tornou obsoleto a máquina de escrever.

A segunda onda se caracterizada por substituições que ocorriam dentro dos computadores. O Orkut e o MySpace sumiram, tendo seus espaços ocupados pelo Facbook. O Flickr..., ele ainda existe. Mas fato é que ele morreu para muitos e seu lugar como rede social para fotos foi tomado pelo Instagram.

Para o profissional de tecnologia o história é a mesma. O que dizer de programadores de Cobol, Clipper, Delphi...

Você pode ainda estar pensando que isso seja uma coisa "normal" do mundo da tecnologia. Mas me diga: qual foi a última grande substituição de plataforma tecnoloógica da qual você se lembra? Para mim, a última foi o Facebookm nascido lá nos primórdios de 2004 (parece que foi intem, mas já faz muito tempo). Ultrapassou o MySpace em número de usuários americanos em 2009. E no final de 2011 ultrapassou o Orkut número de usuários brasileiros. Ou seja, a 7 anos atrás (uma eternidade do ponto de vista da tecnologia) que o Facebook não consegue mais ser interessante. Não consegue mais surpreender...

Não que o Facebook esteja fadado a um fracasso iminente por não conseguir ser mais interessante. Ele ainda é muito forte, claro. Mas nesse tempo todo apareceram algumas outras coisinhas como o Instagram, o Linkedin, o Pinterest, o Snapchat.

Algumas pessoas acham que o Snapchat está morto. Pesquise um pouco sobre ele para você ver. Não está. Assim como o Flickr não está. Este último tão sobrevivente como o Twitter.

Está percebendo uma mudança de paradigma por aí?

Voltando para o assunto principal deste blog: esta mudança de paradigma também se aplica às linguagens e plataformas. Você pode estar se achando moderninho em encher a boca para dizer que linguagens como PHP, Java (e se for um pouco mais ousado, Ruby também) estão mortas. Mas na verdade, o problema pode ser você não saber escolher os termos corretos a serem pesquisados no Google...

Mais precisamente falando: o que você busca em uma linguagem de programação? Melhorando ainda mais: quais são os critérios de uma linguagem de programação que fazem desta linguagem ser boa? Como os critérios para ser uma "boa linguagem de programação" podem mudar de um profissional para outro, não há uma única resposta correta para isso.

Você quer ser um programador competente? Você quer se engajar nas discussões mais recentes sobre tecnologia? São dois ótimos objetivos. Mas a meu ver, são dois objetivos diferentes que costumam andar quase que diametralmente opostos.

Se engajar nas discussões mais recentes da tecnologia muitas vezes é lidar com tecnologias tão novas que não conseguiram fechar um ciclo, que não conseguiram se provar, ou que não foram ainda responsáveis por criar um grande projeto sem depender de recursos de outras plataformas. Além disso, as novas tecnologias costumam ter um appeal superior às tecnologias mais antigas. Elas costumam se mostrar bem rápidas e cômodas no momento de realizar uma tarefa específica. Mas isso não quer dizer que elas sejam competentes para realizar essa tarefa em um contexto mais específico, com restrições em um meio já bem estabelecidos e maduro. Podem lhes faltar flexibilidade, versatilidade, e muitos programadores podem demorar muito para se dar conta disto. Especialmente aqueles que costumam desprezar as tecnologias estabelecidas há mais tempo em detrimento do que é novo. Afinal de contas, é mais legal dizer que está atualizado com tudo que é de novo que a tecnologia oferece?

Fato é que muitas tecnologias mais antigas costumam preencher uma lacuna que as tecnologias novas são conseguem preencher: estabilidade, segurança, confiabilidade e flexibilidade. Isso não só porque elas estão há muito mais tempo sendo aperfeiçoadas e aprimoradas do que as tecnologias mais novas, mas também porque muitas delas ainda (e espero que continuem assim) seguem uma filosofia de desenvolvimento em que preocupação maior é com a estabilidade e confiabilidade, e não em estar obsecado em oferecer coisas novas em um rítimo cada vez mais rápido. Se as ferramentas não tiverem um tempo para ficarem maduras, elas terão uma séria restrição quanto ao ambiente em que estão funcionando. Enquanto em uma linha de desenvolvimento procura-se aprimorar o que está com falhas, em outra linha se preocupa em fazer a substituição por uma outra coisa mais nova. A diferença é que na primeira dessas linhas, em algum momento a ferramenta que não estava funcionando bem, começa a funcionar bem. E na outra linha, a ferramenta que não funcionava bem é substituída por outra ferramenta que também não vai funcionar bem, porque não teve tempo de amadurecer. Essa é a grande diferença.

Para ofuscar mais ainda as coisas, há programadores antigos que não se atualizam em suas tecnologias e preferem estudar algum assunto mais em alta. Talvez para serem mais populares, quem sabe. Deste modo, acabam engordando o coro das pessoas que desprezam as tecnologias antigas e supervalorizam as coisas novas que ainda não tiveram tempo de mostrar serviço nas tarefas mais sérias. Veja bem: só porque uma tecnologia é antiga não quer dizer que ela não tenha se modernizado. Logo, mesmo nas tecnologias antigas podem ser encontrados recursos estremamente sofisticados que não devem em nada aos frameworks mais modernos que apareceram mais recentemente.

Não é por um acaso que as diferentes linguagens e frameworks coexistem lado a lado. Em muitos momentos, elas não são concorrentes, mas cada qual possui caracterícisticas únicas edificadas por muitos anos, cujo direcionamento foi tomado pela filosofia da comunidade desenvolvedora. E isso não é facilmente alcançável por outra linguagem.

O ideia é que se saiba quais são as características únicas de cada tecnologia para se saber como melhor aplicá-las, de modo que são poucas as ocasiões que alguém poderá se gabar por saber uma tecnologia melhor. Até porque já faz um tempo que algumas "antigas" linguagens de programação não são substituídas por nada que aparece de novo, justamente porque não possuem a mesma maturidade das tecnologias já mais bem estabelecida. Eu sempre sou muito cético na hora de ouvir alguém dizer que pode fazer uma substituição completa. Geralmente há muita teoria, mas poucos (quando nenhum) caso prático para atestar a completa substituição do velho pelo novo. Até porque, há muitas pessoas por aí no mundo da tecnologia querendo ganhar dinheiro em cima da incerteza das pessoas. É mais legal ser o guru da nova tecnologia, mesmo sem que esta tenha dado provas de que funciona.

Categoria: 

Comentar