DROPS - Ferramentas, elas te limitam ou te potencializam?
"Você precisa aprender React para ser um profissional competente! NodeJS paga bons salários você precisa aprender ele agora! Javascript é a única linguagem que vale a pena aprender."
Essas frases são só alguns exemplos de como as ferramentas podem influenciar decisões e isso nem sempre é bom, frameworks passam por momentos e nem sempre quando estamos iniciando conseguimos ver isso.
Um dos melhores professores que tive na vida, ao discordar do termo computação gráfica (ele acreditava que o correto seria traduzir para gráficos de computadores) também acrescentou que usar o mesmo pincel que Picasso não fará novos Picassos. Em essencia o ferramental pouco importa e é disso que esquecemos quando vemos o mercado e os frameworks da moda.
Um exemplo pessoal, foi algo que aconteceu comigo há uns 9 anos atrás ao gastar tempo aprendendo Javascript e linguagens para web como PHP Orientado a objetos, muitos colegas de trabalho me falavam que eram linguagens de brinquedo ou que não valia a pena, que eu deveria aprender Java, afinal aquilo me garantiria uma boa carreira e também um bom futuro. Foi interessante quando encontrei um desses colegas postando perguntas nos forums de NodeJS.
Outro exemplo é quando se olha o tanto de gente falando para aprender ActionScript 3, afinal ele traria tipagem para o JS, seria realmente orientado a objetos e resolveria o caos que era o JS. E que navegação por browser iria morrer, que HTML não valia a pena porque não tinha animação.
Coisas como o comentário abaixo era bem comum também.
https://forum.imasters.com.br/topic/408515-actionscript-2-ou-3/
Isso traz de volta ao que realmente importa, linguagens de programação são ferramentas para fazermos máquinas funcionarem. Você usa essa ferramenta para te potencializar ou é o motivo que te limita.
Em 2010 era claro para mim que JS e PHP eram muito poderosos, por quê? A Google estava com o beta do seu Google Docs e Google Spreadsheet e o Facebook tinha milhões de acessos. Um entregava quase um pacote office através do browser, sem plugin do flash, sem a necessidade de rodar um plugin do Java e isso com HTML, CSS e JS. O Facebook entregava para milhões de usuário um feed de fotos e status com chat usando PHP. E a aplicação que usavamos para a gestão de projetos feita em Java não funcionava com 20 acessos.
Essas comparações me fizeram sempre questionar as essencias de algumas coisas e também a ideia de que frameworks são como tenis de corrida, não adianta usar eles se você não sabe nem andar.
O problema que vejo hoje e não é tão recente, é esse foco em ferramentas ao invés do foco em ser bom e usar a ferramenta para te potencializar. Se muito bom em usar uma ferramenta te transforma em que quando a ferramenta deixar de existir?
É fácil ser bom em ferramentas, ser o melhor com React é fácil, ser o melhor em ActionScript é fácil, ser o melhor em Node é fácil. Agora ser bom em Javascript? Também é fácil.
Dá para entregar software até no excel, basta criatividade, essa criatividade é o difícil.
Se você se limita pela ferramenta, vai ter vários motivos para deixar de aprender, como por exemplo Javascript não vale a pena porque a linguagem é lenta, ou não vou aprender Java porque é verboso e lento, os motivos sempre surgirão eles estão sempre lá.
Isso de se concentrar só em ferramentas acaba gerando o problema da ferramenta ser deus ou a bala de prata para todos os problemas. "Node é o mais rápido que tem", mas resolve realmente seu problema? "Typescript finalmente resolve o problema de tipos em JS!" será que tipos em Javascript é realmente um problema, e os seus mais mais de 20 anos de existencia sem a necessidade de tipo? "React é o melhor para criar componentes na web!" será mesmo, como lidar com o projeto conforme ele cresce e também com times não tão experientes em React?
Falando por mim React e Typescript hoje me lembram muito o movimento gerado em torno de AS3 e também do Flash, várias de suas características estão lá, a comunidade acreditando em bala de prata, empresas falando que finalmente resolvem problemas que não são tão problemas assim e muitos que não querem estudar e se aprofundar reclamando de uma linguagem que é uma das bases da web nos últimos 20 anos.
A pergunta que deixo é o titulo do artigo, você se limita pela ferramenta ou ela te potencializa? Ela te ajuda a levar a sua criatividade para outro nível?
PS: Após algumas conversas é importante deixar claro que não existe problemas inciar por algumas ferramentas, mas o importante é você entender o objetivo do que está fazendo e aprender a aplicar a melhor ferramenta para cada situação. Questionar os hypes e promessas fáceis de linguagens e frameworks.