Dev (Back & Front)ARTIGO

Pensamentos sobre frameworks

Desde os primeiros meses no curso de computação passei a conviver com a palavra
abstração. Praticamente em todas as áreas do conhecimento é importante saber
abstrair algumas coisas, pois se não for assim você não consegue evoluir. Você
precisa estar sobre os ombros de gigantes.

Cada vez mais o desenvolvedor precisa entender menos detalhes de baixo nível para construir o que deseja. Não é
necessário entender o funcionamento elétrico do computador, nem como o hardware
se comunica com o SO para desenvolver a maioria das aplicações. Entretanto, nem
sempre foi assim, as camadas de abstração foram surgindo com o tempo para
facilitar o desenvolvimento e para tornar possível construir softwares cada vez
mais complexos, já que não era mais necessário se preocupar com partes básicas
do desenvolvimento.

Frameworks abstraem muita coisa

São camadas e mais camadas, em cima de outras já existentes,
que tornam possível desenvolver a grande variedade de aplicações que temos
hoje. Frameworks são ótimos, vieram para ajudar, mas claramente temos uma
sobrecarga do número de tecnologias que temos que aprender e usar. Existem
frameworks demais e eles surgem mais rapidamente do que conseguimos dominá-los.

Quando cursei a disciplina de orientação a objetos na universidade, a linguagem
ensinada era C++. Java era a moda, e ainda é por lá e em muitos outros lugares,
então eu e mais uns dois colegas perguntamos a um professor se aprender C++ ao
invés de Java não era ruim. Recebemos a seguinte resposta: “Vocês estão
aprendendo a aprender, esse conhecimento de OO servirá para qualquer outra
linguagem OO”.

E ele estava certo, OO é OO em qualquer lugar. Talvez tenha sido até melhor não
aprender usando Java, pois há quem acredite que Java implementa OO
perfeitamente, e que qualquer outra linguagem que não siga exatamente o que
Java faz não é OO.

Não existe a necessidade nem a possibilidade humana de aprender todos os
frameworks. Desista agora!

É melhor praticar muito um conjunto de frameworks e buscar
fluência. Assim como se busca fluência numa língua estrangeira, busque fluência
em frameworks e linguagens de programação. Frameworks parecidos seguem
conceitos parecidos, você conseguirá transportar grande parte da experiência
que tem numa tecnologia para outra. Você não está jogando conhecimento fora.

Falta de conhecimento causa procrastinação? 

Recomendo
a leitura do texto linkado acima para complementar o que escrevi acima sobre fluência.

É necessário manter um equilíbrio

Nada adianta saber muita teoria e um pouco do uso de vários
frameworks se não conseguir criar algo concreto com eles. E também não é muito
bom se fechar apenas numa tecnologia e não conseguir sair dela se for
necessário. A tecnologia é uma ferramenta, a função dela é facilitar a vida das
pessoas, inclusive a vida dos desenvolvedores. Use a ferramenta que mais se
adequar ao seu trabalho, e que facilitar a construção de sua ideia. Só assim
podemos alcançar da maneira mais eficaz o nosso objetivo como desenvolvedor, ou
seja, criar.

é professor e pesquisador da Universidade Federal da Paraíba (UFPB). Realiza pesquisas na área de inteligência artificial, com foco em web of data, ontologias e aprendizagem de máquina.

Ver perfil