Escolhendo uma linguagem de programação: Bibliotecas e Frameworks

·

3 min read

Já analisamos duas variáveis para ajudar na escolha de uma linguagem de programação para um novo projeto: desempenho, aprendizado e mercado. Essa é a penúltima variável que vamos analisar para escolher uma linguagem de programação para um projeto. Já comentei um pouco sobre a importância das bibliotecas e frameworks no artigo sobre o aprendizado e neste aqui vou analisar com mais detalhes o porquê da disponibilidade de bibliotecas e frameworks ser algo tão importante para levar em conta antes o início de um projeto.

Reinventar a roda

Como eu informei no artigo sobre aprendizado: documentação, comunidade e ferramentas são alguns dos fatores chave para o aprendizado mais rápido da linguagem. E bibliotecas e frameworks de qualidade e renome possuem tudo isso pronto, dando o respaldo para o aprendizado rápido de funcionalidades avançadas da linguagem.

Tudo bem se no momento do aprendizado o estudante implementar manualmente uma lista encadeada ou uma tabela hash, mas no dia a dia isso é contraproducente, pois a maioria das linguagens de programação já oferece as principais estruturas de dados prontas para uso. Mas se a linguagem de programação possui um bom mercado, provavelmente alguém ou alguma fundação ou empresa já criaram uma biblioteca ou um framework que resolve um conjunto de problemas comum para muitos desenvolvedores.

Qualidade

A utilização de bibliotecas e frameworks influencia diretamente na qualidade do software por dois motivos. Primeiro, a documentação provida junto com a biblioteca ou framework garante que você está seguindo passos seguros e bem estabelecidos por outros desenvolvedores, diminuindo a probabilidade de erros. Segundo, alguém tão bom ou melhor que você fez aquele código, então você pode se concentrar nas suas regras de negócio específicas e confiar as funcionalidades triviais para a biblioteca ou framework.

Compre na planta

Essa característica é uma das melhores partes dos frameworks. A aplicação já possui um arquitetura definida e pronta para uso, basta incluir o seu código específico. Além disso você conta com toda a infraestrutura do framework. Imagine aplicações Web em PHP feitas da forma como os livros para iniciantes ensinam. Elas estão sujeitas a vários tipos de ataques, como SQL Injection, XSS, dentre outros. Mas se você usa um framework com suporte a filtros que previnem a possibilidade desse tipo de ataque e ele cuida disso de forma transparente, então não é necessário se preocupar tanto.

Licença

Eis uma das questões por trás do uso de bibliotecas e frameworks que é muito esquecida da maioria das empresas e desenvolvedores. Por um lado, empresas antiquadas não adotam um framework e preferem fazer tudo na própria empresa para não ter problemas com licença. Por outro lado, elas deixam de ganhar produtividade e qualidade, pois reinventam a roda, muitas vezes de forma ruim, apenas para satisfazer o ego de algum gerente ou sócio. As licenças de software devem ser respeitadas, por isso use bibliotecas e frameworks de acordo com o tipo de software que você produz. Assim pode se beneficiar de tecnologias de ponta, sem problemas jurídicos.

Conclusão

A utilização de frameworks e bibliotecas de terceiros no desenvolvimento de software é prática comum tanto na academia, quanto na indústria de software. É muito difícil encontrar um desenvolvedor que não utilize os benefícios de códigos já feitos pela comunidade da linguagem ou instituições devidamente respaldadas por outros desenvolvedores externos. Mas nem tudo são maravilhas, o licenciamento de software, sendo proprietário ou não, deve ser respeitado no momento do uso de bibliotecas e frameworks. Além disso os mercados da linguagem de programação e do framework ou biblioteca devem ser analisados para evitar problemas futuros como a descontinuidade de projetos só porque uma biblioteca essencial deixou de receber atualizações de segurança contra novas ameaças de vírus, por exemplo.

No próximo artigo tratarei da última variável da série: a decisão de negócio.