Back-End

14 jun, 2013

Desenvolvimento com frameworks: bom ou mau?

Publicidade

Conclusão

Não, você não está ficando maluco e sim, estou começando o texto pelo fim. Por um lado, começar pelo fim é bom, pois evita desentendimentos sobre aquilo que quero dizer. Por outro lado é mau, pois como posso concluir um texto, se nem comecei a escrevê-lo?

Pode parecer estranho, concordo, mas é assim que tenho visto muita gente fazendo em relação ao desenvolvimento de software. Começam a estudar um framework, antes de compreender o funcionamento de determinada linguagem. Utilizar frameworks é bom? É óbvio que é, mas apenas quando se conhece, antes, a linguagem que vai ser utilizada.

Que tipo de desenvolvedor é você?

Você é um desenvolvedor Rails, ou um desenvolvedor Ruby que também conhece um framework? Você é um desenvolvedor jQuery, ou um desenvolvedor Javascript que também conhece um framework? Um desenvolvedor Laravel, ou um desenvolvedor PHP que também conhece um framework?

A diferença é bastante simples: o desenvolvedor que conhece a linguagem, antes de conhecer um framework, saberá como trabalhar com o framework X, Y ou Z, mas também saberá quando o framework não resolve seu problema. Saberá escolher um framework adequado para seu caso de uso e, principalmente, saberá identificar as limitações do framework e lidar com essas limitações. Seja estendendo-o, através da adição de novos recursos, ou utilizando compartimentos, que encapsulam o problema que precisa ser resolvido, utilizando essa abstração com a interface do framework.

Quando o desenvolvedor conhece apenas o framework, ele não é capaz de fazer isso. Pelo contrário, ele vai tentar adaptar a ferramenta ao problema. Seria como se tivéssemos um parafuso e o profissional soubesse apenas como utilizar um martelo. Em vez de procurar a ferramenta adequada, ele vai martelar o parafuso até descobrir que não vai dar certo, ou causar um problema maior que o inicial.

martelo

É indiscutível que os frameworks facilitam as coisas. Não há argumentos que possam comprovar o contrário. Porém, essas mesmas facilidades trazidas pelos frameworks, estão limitando os desenvolvedores mais jovens.

Tenho visto pessoas perguntando como fazer operações aritméticas simples, como uma soma, utilizando jQuery. Ainda, tenho visto pessoas perguntando sobre como fazer X ou Y em Java, deixando claro que estão utilizando jQuery – Sim, a pessoa não compreendeu sequer que Java e Javascript são duas coisas distintas, pois, segundo seu ponto de vista, está programando em jQuery.

Os casos desse tipo tem se tornado cada vez mais comuns e, na grande maioria das vezes, o desenvolvedor domina tanto um framework, que as limitações do framework se tornaram as limitações do próprio desenvolvedor.

Muitas vezes as pessoas alegam que o mercado é o responsável por isso. Dizem que, por causa do sistema de competição, da necessidade de inovação rápida, não há tempo hábil para se começar a estudar a linguagem antes do framework.

Muitas empresas, ditas “startups”, têm incentivado aos desenvolvedores mais novos para que comecem logo a estudar um framework, para que possam produzir rapidamente e, assim, entregar os produtos na velocidade que a startup precisa para sobreviver no mercado. Esse movimento de incentivo ao uso de frameworks de forma precipitada, tem formado máquinas reutilizáveis, mas incapazes de pensar em soluções. Esse movimento está estragando os desenvolvedores mais novos.

Sinceramente, acredito que o tema framework deveria ser matéria proibida para os desenvolvedores mais novos. De fato, acredito que, se o desenvolvedor for incapaz de desenvolver alguma coisa sem utilizar um framework, então ele não deve utilizar um framework. Obviamente, esse desenvolvedor não deveria sequer ser responsável pelo projeto, mas ai já é outra história.

Enfim, vou deixar uma citação que gosto muito. É de Albert Einstein:

Não basta ensinar ao homem uma especialidade, Porque ele se tornará assim uma máquina utilizável, mas não uma personalidade. É necessário que ele adquira um sentimento, um senso prático daquilo que vale a pena ser empreendido, daquilo que é belo, do que é moralmente correto. A não ser assim, ele se assemelhará, com seus conhecimentos profissionais, mais a um cão ensinado do que a uma criatura harmoniosamente desenvolvida. Deve aprender a compreender as motivações dos homens, suas quimeras e suas angústias para determinar com exatidão seu lugar exato em relação a seus próximos e à comunidade.

Essas reflexões essenciais, comunicadas à jovem geração graças aos contatos vivos com os professores, de forma alguma se encontram escritas nos manuais. É assim que se expressa e se forma de início toda a cultura. Quando aconselho com ardor ‘as humanidades’, quero recomendar esta cultura viva, e não um saber fossilizado, sobretudo em história e filosofia.

Os excessos do sistema de competição e especialização prematura, sob o falacioso pretexto de eficácia, assassinaram o espírito, impossibilitaram qualquer vida cultural e chegam a suprimir os progressos nas ciências do futuro. É preciso, enfim, tendo em vista a realização de uma educação perfeita, desenvolver o espírito crítico na inteligência do jovem. Ora, a sobrecarga do espírito pelo sistema de notas entrava e necessariamente transforma a pesquisa em superficialidade e falta de cultura. O ensino deveria ser assim: quem o recebe o recolha como dom inestimável, mas nunca como uma obrigação penosa.