Comecei a fuçar em computadores em 1993 e consegui meu primeiro emprego como desenvolvedor em meados de 1997. Fui contratado para reimplementar vários sistemas de controle industrial feitos em Clipper, rodando sob DOS, para o Windows (então uma novidade), usando Delphi. A Internet já existia, mais como uma curiosidade, e o acesso a ela ainda era caro, lento e difícil.
Naquela época, obter informações sobre ferramentas e tecnologias era bem mais complicado que hoje em dia. O principal (senão único) recurso eram os livros (tive o livro de Clipper 5 do Ramalho e a Bíblia do Delphi do Marco Cantù, entre outros). Talvez você conhecesse alguém que trabalhasse com a mesma coisa que você, e pudesse compartilhar algumas ideias e códigos. No mais, você estava por sua própria conta.
A gênese do dev egoísta
Um efeito colateral desses tempos era que cada dev acabasse criando um estilo próprio de codificação e, na prática, sequer soubesse mexer num código que não fosse “do seu jeito”. Alguns, de pensamento mais mesquinho, buscavam dificultar ao máximo a compreensão daquilo que escrevera por parte de outros, visando tornarem-se “insubstituíveis” e, assim, preservar seus empregos.
A Internet evoluiu depressa e tornou-se amplamente disponível. Passamos a ter acesso a fóruns especializados, frequentados por gente do mundo todo, cheios de snippets de códigos prontos para acudir a necessidade da hora. E, lembro bem, muita gente tinha “medo” de usá-los porque simplesmente não tinham a capacidade de entender código escrito por outrem. Mais aterrorizante ainda seria lidar e dar suporte a esse código “alienígena”.
Código alheio (e melhor)
Mais adiante, o conceito open source se difundiu e, com ele, vieram bibliotecas e frameworks a rodo. Dispúnhamos de código de alta qualidade, gerado e gerido pela inteligência coletiva de desenvolvedores quase sempre preocupados com a aderência às melhores práticas. Não era mais necessário reinventar rodas, mas sim descer do pedestal.
Adotar um framework estabelecido é, sobretudo, um exercício de humildade. É reconhecer que existem devs melhores e com mais conhecimento que você. O framework lhe oferece um trato: dará a você as ferramentas de que você precisa, prontas e testadas, e em troca, exigirá de você seguir o fluxo de trabalho imposto por ele. Com isso, você dificilmente poderá fazer as coisas “do seu jeito”. Quem já teve contato com o Angular, por exemplo, sabe do que eu estou falando. Como resultado, você não mais escreverá código para si mesmo, mas, principalmente, o fará para quem vier depois.
Nem tudo são frameworks, todavia. Existem ferramentas que ainda permitem uma liberdade de movimentos, com sua incorporação gradual a projetos, conforme surge a necessidade. São as bibliotecas, tais como o React se denomina. Elas recomendam um ou mais fluxos de trabalho, deixando a seu cargo a escolha entre um (ou nenhum deles).
Sem bala de prata
Como não poderia deixar de ser, o uso de frameworks e bibliotecas deve feito com ponderação, tendo em vista os objetivos e as características do projeto que está sendo desenvolvido. Dependendo da experiência do time envolvido e do know-how de seus integrantes, pode até surgir um novo framework ou uma nova biblioteca. No entanto, é improvável que alguém leve a cabo sozinho uma tarefa de tal monta.
O fato é que a época do dev egoísta passou. Com a complexidade atual das aplicações, é quase impossível construir alguma coisa sem o concurso de um framework ou biblioteca. Ser capaz de lidar com código escrito por outras pessoas é, portanto, uma skill fundamental para o profissional de hoje.
Happy coding!
Créditos da imagem em destaque: Freepik
Ótimo artigo! Como dev que iniciou a carreira na era da informação, onde a maioria dos fluxos de trabalhos estavam estabelecidos, acho interessante olhar para trás e ver como era, pois assim sei quando eu ou meus colegas de trabalho estão caminhando por um caminho que já foi provado errado no passado.
Pois é, Alan, às vezes tenho a impressão de que comecei na área na Idade da Pedra. Perdi o bonde de muita coisa que veio depois, mas tento me manter atualizado tanto quanto possível.