Paradigmas de programação

e a necessidade de compreensão das coisas

Vinícius Andrade
3 min readDec 9, 2015

Sou desenvolvedor javascript. Dentro do universo de comunidades relacionadas a programação, a de javascript talvez seja a mais “orientada a moda” de todas. Temos diversos influenciadores ditando tendências, que são seguidas por uma massa de desenvolvedores sem muitos questionamentos.

Minha hipótese para esse comportamento é a de que a comunidade javascript talvez seja a que apresenta maior proporção de desenvolvedores sem formação acadêmica na área (me incluo nesses), o que acaba reduzindo a capacidade crítica geral, pela deficiência de uma base teórica que nos capacite a sustentar uma argumentação crítica consistente acerca de diversos assuntos.

Não ter essa base de sustentação teórica também nos impede de acompanhar uma série de artigos e discussões mais técnicas e densas, o que faz com que não consigamos evoluir tecnicamente.

Um aspecto notório desse cenário é que nos tornamos desenvolvedores muito capazes de reproduzir técnicas, das mais básicas até as mais avançadas, mas não demonstramos grande capacidade criativa para desenvolver soluções próprias, nos tornando reféns do conhecimento alheio. Isso não é exatamente ruim. É puramente a descrição de uma etapa na nossa evolução como programadores, mas é um degrau que deve ser superado.

Dessa forma, um dos principais aspectos para a evolução de desenvolvedores que se encaixam nesse perfil é a busca por um conhecimento teórico mais aprofundado. Invariavelmente, os membros da comunidade que se destacam o fazem justamente por trazer consigo esse saber mais denso.

Posto isso, vamos ao que interessa.

Uma das mais recentes tendências em javascript é a programação funcional. Impulsionado principalmente pelo crescimento de frameworks como o React a ideia de que adotar o paradigma funcional é uma boa vem se espalhando rapidamente.

Então, para compreendermos a tendência, para analisarmos se ela é relevante para nosso cotidiano, para conseguir acompanhar os artigos mais densos relacionados, e para conseguirmos nos desenvolver de forma criativa dentro desse universo, precisamos buscar algumas compreensões bastante básicas que nos sustentem teoricamente.

Pelo que vem sendo discutido, sabemos que programação funcional é um de diversos paradigmas de programação. Dessa forma, podemos começar nossa busca respondendo:

O que é um paradigma de programação?

Pra entender o que é um paradigma de programação, antes precisamos saber o que é um paradigma. Uma consulta ao dicionário nos dá a seguinte definição:

“Modelo; exemplo usado como padrão a ser seguido.”

Como não queremos ser superficiais na nossa empreitada, busquemos uma definição mais profunda. No dicionário acadêmico Merriam-Webster’s temos a seguinte definição, traduzida livremente:

“Um conjunto teórico e filosófico de determinada escola científica dentro da qual teorias, leis e generalizações e os experimentos que as suportam são formulados.”

Assim, podemos assumir então que:

Paradigma de programação: é um padrão que nos serve como linha de pensamento guia para programar computadores.

Aqui cabe fazermos outras definições que nos surgem relacionadas ao tema:

Técnica de programação: está relacionada aos algoritmos para solução de uma determinada classe de problemas.

Estilo de programação: é a forma como nos expressamos na escrita de um programa. Está relacionado à elegância do código.

Cultura de programação: é a soma de um paradigma de programação, um estilo e as técnicas frutos desses.

Com isso, podemos iniciar nossa análise crítica do paradigma de programação funcional. Ora, mas se o objetivo desta é perceber a relevância desse padrão de programação, precisamos compreender quais seriam as alternativas a ele, e de que forma elas se colocam.

Paralelos ao funcional, podemos colocar outros três paradigmas como os de mais relevância, sabendo haverem diversos mais. São estes os paradigmas:

  1. Imperativo.
  2. Lógico.
  3. Orientado a objetos.

Do que foi posto, podemos compreender que existem algumas escolas de programação, que se dispõem a descrever um conjunto de técnicas, a serem executadas com determinado estilo seguindo um padrão de pensamento que forma uma cultura específica dentro do universo dos programas de computadores.

O objetivo dessas escolas é nos guiar para soluções elegantes para problemas ligados a softwares de computadores, sendo que essa elegância não é meramente estilística, estando relacionada à qualidade do software escrito.

Dessa forma, a tendência que vem se desenvolvendo em cima da programação funcional assume que, ao seguirmos o paradigma funcional, adotaremos estilos e técnicas que nos permitirão escrever programas de forma mais elegante, e que esses programas terão mais qualidade do que se fossem escritos seguindo outros paradigmas.

Nos próximos artigos abordarei cada um dos outros paradigmas colocados, para construirmos uma base sólida de comparação com o padrão funcional e assim nos prepararmos para usufruir de forma efetiva dos conjuntos teóricos compreendidos por esses paradigmas.

--

--