Blog Código Franco

quarta-feira, 24 de fevereiro de 2016

Utilizar ou não utilizar frameworks e bibliotecas prontas?

Introdução


É comum ouvirmos falar de ferramentas que facilitam o desenvolvimento de softwares, sistemas e principalmente sites.

Algumas são comuns e amplamente utilizadas, como o Bootstrap para diagramação web, o jQueryUI para interfaces controladas por javascript, o jQuery para utilização de Javascript, Code Igniter para programação back-end, Xamarin para desenvolvimento multiplataforma e o Material Design para padronização visual.


Estes conjuntos de funcionalidades normalmente facilitam muito a vida dos desenvolvedores e designers menos experientes e tornam o trabalho com tecnologia mais acessível à todos.

Porém, mesmo estas ferramentas sendo mantidas e amplamente utilizadas por grandes companhias, não é difícil encontrar profissionais que sejam contra o uso destas e outras funcionalidades prontas existentes no mercado.

Seus argumentos são muitos e variam bastante de um para outro porém, destacam-se principalmente as seguintes opiniões: A banalização do trabalho profissional, a aparência semelhante entre projetos sem vínculo e a dependência de terceiros resultando em baixa autonomia sobre o projeto.

A seguir é apresentado detalhadamente cada um destes pontos de vista juntamente com informações adicionais que permitam chegar a uma conclusão e decidir se é ou não uma boa ideia utilizar códigos de terceiros.



A Banalização do Trabalho Profissional



Alguns acreditam que o uso de ferramentas prontas banaliza e desvaloriza o trabalho do profissional que cria os próprios códigos.

Tais ferramentas prontas tornam possível, para qualquer pessoa que dedique um pouco de tempo de estudo, mesmo com pouco conhecimento de tecnologia, construir trabalhos com certa qualidade sem dificuldades. Ao se candidatarem por exemplo a vagas de emprego, estes profissionais que dominam apenas ferramentas prontas, acabam puxando para baixo o valor dos profissionais especializados.

O principal ponto negativo neste caso é que muitas vezes o projeto é executado sem conhecer ou entender os conceitos envolvidos, nem dominar as boas práticas do mercado ao qual aquele trabalho será inserido e consequentemente resulta em um trabalho de qualidade inferior ao previsto.

É um argumento comumente utilizado por web designers, visto que muitas ferramentas oferecem Templates básicos com qualidade excepcional e que normalmente tornam-se uma opção mais interessante para o cliente que terá um custo muito menor por um trabalho com um visual agradável. Mas claro, essas opções são limitadas a variações pré definidas e sem um apelo criativo impactante. Há quem diga que utilizar tais facilitadores reduz o profissionalismo a partir do momento que diminui a carga de trabalho e o empenho dedicado ao projeto.

Entretanto a maioria das principais ferramentas permite total liberdade para criar a partir da estrutura básica, o que faz com que os profissionais que já possuem experiência também usufruam de tais ferramentas e possam desenvolver a parte criativa, sem se preocupar com a estruturação básica, utilizando o que a ferramenta já oferece e a partir daí posicionando-se um passo a frente dos demais.


Aparência Semelhante entre projetos sem vínculo



Outros argumentam que utilizar tais ferramentas confere ao trabalho uma aparência padronizada, o que faz com que o publico associe a aparência comum a vários locais e crie um vínculo mental entre diversos projetos completamente distintos. Caso um deles apresente uma falha, é possível que o usuário associe a falha a todos e não apenas ao que apresentou o problema.

Como estas bibliotecas possuem pouca variação visual, normalmente limitadas a cores diferentes para cada tema (a imagem ilustra o site Bootswatch que oferece diversos Templates gratuitos baseados no Bootstrap, link disponível no final do artigo) ou contextos específicos, projetos completamente distintos que utilizam funcionalidades prontas sem modificações, possuem um visual irrefutavelmente semelhante. Isto confere um certo amadorismo ao trabalho, mas que pode ser resolvido com facilidade ao personaliza-lo.

E partindo para a personalização, há até mesmo aqueles desenvolvedores e designers que conseguem utilizar as funcionalidades principais da ferramenta e ainda tornar o vinculo com a estrutura básica completamente imperceptível.


Dependência de terceiros e baixa autonomia sobre o projeto



Há também os que não utilizam códigos prontos e preferem criar os seus próprios códigos pois, alegam que o produto disponível não é suficientemente customizável, não atualiza na frequência necessária, é muito limitada ou que a ferramenta é desnecessariamente complexa para o projeto que está sendo realizado e que prefere criar a própria solução pois possuirá mais autonomia de customização, controle de correção bem como um código mais enxuto.

De fato, várias ferramentas oferecem muito mais do que é necessário para um único projeto, porém o objetivo delas é oferecer uma base genérica padronizada e bem definida a fim de otimizar o trabalho e reduzindo a realização de processos repetidos. Você não é obrigado a utilizar todas a funcionalidades em seu projeto, porém é interessante saber que elas existem, afinal, não substituímos o Word por um bloco de notas por ser muito complexo para algumas situações.

Além disso, a maioria das bibliotecas disponíveis são licenciadas como OpenSource o que confere total liberdade de customização e pleno controle sobre o código utilizado, o que por si só já leva por terra a ideia de dependência.

E por fim costumam oferecer opções de customização de compilação o que permite que o desenvolvedor escolha apenas as funcionalidades necessárias para o seu projeto e gere uma compilação adequada aos seus interesses.


Conclusão


Mesmo com diversos argumentos contra seu uso, é necessário antes de tudo, refletir qual o real objetivo de tais ferramentas. Seria oferecer apenas subsídios para quem não tem experiência ou elas também são úteis para os profissionais mais capacitados?


Estas ferramentas vem com o principal intuito de ajudar o desenvolvedor a trabalhar de forma mais ágil e eficiente num cenário onde há constante mudança e é comum que um código desenvolvido, quando pronto já esteja obsoleto.

Não é viável, para ninguém, ter o luxo de "reinventar a roda" toda vez que surgir uma nova necessidade para a qual já exista uma solução bem definida no mercado.

Se há um projeto que pode ser beneficiado por ferramentas consolidadas, por que não haveríamos de utiliza-las? Uma grande ideia é composta de várias ideias menores. Estas ferramentas não apenas agregam maior agilidade ao processo de desenvolvimento mas também descentralizam a manutenção, pois mesmo sendo possível corrigir pontualmente falhas na ferramenta, já existe uma equipe especializados nela e uma comunidade atenta, prontos para oferecer o devido suporte e trabalhar nas correções necessárias.

Além disso, dado o tamanho das respectivas comunidades, quaisquer inconformidades da ferramenta são rapidamente localizadas e suprimidas antes que causem algum impacto significativo.

Enquanto o uso exagerado de tais ferramentas pode ofuscar a originalidade de um projeto, seu uso consciente, permite que projetos obsoletos ressurjam muito mais convidativos e que novos projetos sejam elaborados em um curto período de tempo, liberando recurso para ser utilizado nas partes de real importância do projeto.

Sendo assim, desenvolvedores amadores devem utilizar estas ferramentas como base para aprender, estando sempre cientes que o seu produto final não será equivalente ao de um profissional, enquanto isso desenvolvedores profissionais devem aproveitar seu conhecimento e utilizar a ferramenta de modo a usufruir de seus benefícios, ao mesmo tempo que aplica suas habilidades e transforma aquele conteúdo padrão em algo único e com seu toque pessoal.

Muitas ferramentas são livres e estão disponíveis para todos, profissionais ou amadores e a qualidade do trabalho depende do conhecimento e do perfil pessoal do profissional que realiza o trabalho, sendo assim não há certo nem errado em utilizar tais ferramentas, contanto que estejam claros todos os pontos positivos e negativos envolvidos.

Cabe a cada desenvolvedor ou equipe escolher qual linha seguir.




Se você gostou deste artigo veja alguns outros que podem interessar:



Links neste artigo:




Frameworks e Bibliotecas Mencionados



Se você gostou do nosso conteúdo você pode nos ajudar. Qualquer valor é bem vindo e ajuda a manter nossos editores e nossa hospedagem.



Nenhum comentário:

Postar um comentário