O que são paradigmas de programação? 

Os paradigmas de programação são padrões usados para escrever e estruturar códigos. Eles representam diferentes abordagens para resolver problemas de programação. Cada paradigma oferece uma maneira única de pensar sobre o desenvolvimento de software e influencia diretamente a maneira de projetar, implementar e manter softwares. 

Neste artigo, vamos conhecer um pouco mais sobre os principais paradigmas de programação e suas características únicas. E vamos começar pelo básico: 

1. O que é um paradigma de programação? 

Para entendermos o conceito de paradigma de programação, devemos entender primeiro o significado da palavra paradigma.  Conforme o dicionário Priberam, essa palavra pode ser definida da seguinte forma: “Algo que serve de exemplo geral ou de modelo.” 

Uma definição bastante simples, mas que demonstra que um paradigma nada mais é que um padrão a ser seguido. Em se tratando de desenvolvimento de software, paradigmas de programação são padrões usados para classificar as linguagens de programação com base nas suas funcionalidades e na sua estrutura.  

Linguagens de programação podem adotar um único paradigma, como por exemplo, a linguagem Haskell, que usa apenas o paradigma funcional. Ou ainda podem adotar vários paradigmas, como por exemplo, a linguagem JavaScript, que apresenta conceitos tanto de programação funcional como orientação a objetos.  

2. Os paradigmas de programação 

Existem vários paradigmas de programação, cada um com suas características e funcionalidades próprias. Um paradigma de programação fornece aos desenvolvedores a estrutura e forma de execução de um software.

Pense, por exemplo, na programação orientada a objetos: esse paradigma possibilita que um software seja abstraído como uma coleção de objetos que interagem entre si, enquanto a programação funcional permite que um software seja abstraído como uma sequência de funções executadas em pilhas. 

Abaixo, serão detalhados os principais paradigmas de programação existentes, bem como as relações e diferenças entre cada um deles. 

Quadro comparativo programação imperativa e programação declarativa.
Fonte: o autor

2.1 Programação imperativa 

A programação imperativa determina que cada instrução deve ser passada ao computador de forma sequencial, sendo, portanto, um passo a passo das ações a serem executadas. A programação imperativa determina que cada instrução do código deve especificar aquilo que deve ser feito.  

A programação imperativa pode ser usada em diversas linguagens, como por exemplo: PHP, Python, Java,  C++ e JavaScript. 

2.2 Programação declarativa 

A programa declarativa é conhecida como o oposto da imperativa. Nesse paradigma, o foco está em o que deve ser resolvido e não em como deve ser resolvido. Assim, as instruções passadas ao computador determinam a sequência lógica e o resultado que se espera alcançar, sem determinar o fluxo de controle. 

Portanto, na programação declarativa, as instruções são mais generalistas, e não dizem exatamente o que precisa ser feito. Um bom exemplo é a instrução SELECT do SQL, que indica que uma informação precisar ser selecionada, mas não especifica, explicitamente, como essa seleção será feita.

Alguns exemplos de linguagens que usam programação declarativa são:  SQL, HTML, CSS, XML. 

2.3 Programação estruturada 

A programação estruturada deriva da programação imperativa e está fundamentada sob o uso de estruturas básicas de controle (sequências, condições e repetições) e na modularização do software.  

A programação estruturada parte do princípio que um problema a ser resolvido com o desenvolvimento de software, deve ser quebrado em partes menores (subprogramas ou módulos), sendo cada uma delas responsável por resolver uma determinada parte do problema. Esse é o conceito de modularização, onde um programa é composto por um conjunto de programas menores interconectados, chamados de módulos ou subprogramas. 

Os softwares construídos com esse paradigma usam: 

– Sequências: as instruções são escritas na sequência em que serão executadas.  

– Condições: blocos de códigos são executados somente quando determinadas condições são cumpridas. Usa-se estruturas como IF – ELSE e SWITCH – CASE. 

– Repetições: blocos de códigos são executados várias vezes até que uma condição seja cumprida. Usa-se estruturas como FOR, WHILE e Recursividade. 

O paradigma estruturado pode ser usado em diversas linguagens como C++, C#, Java, PHP, Python, entre outras. 

2.4 Programação procedural 

O paradigma procedural, que muitas vezes é conhecido como sinônimo do paradigma imperativo, deriva deste paradigma, porém têm suas diferenças. O paradigma procedural permite que as instruções sejam agrupadas em procedimentos, os quais também são chamados de rotinas, sub-rotinas, funções ou métodos. 

Estes procedimentos devem ser acionados, sequencialmente, durante a execução do software. Isso possibilita a modularização e reutilização de código em diferentes momentos da execução. 

O paradigma procedural pode ser usado em diversas linguagens como Python, PHP, Java, C, C++, PHP, entre outras. 

2.5 Programação orientada a objetos 

A programação orientada a objetos deriva da programação imperativa. É o paradigma mais difundido e usado entre todos e está baseado na ideia de replicar o mundo real através de códigos que usam classes e objetos para representar tudo aquilo que existe. 

Na programação orientada a objetos, implementa-se um conjunto de classes que instanciam objetos. Cada classe determina o comportamento (definido nos métodos) e estados possíveis (definidos nos atributos) de seus objetos, e as relações entre eles. 

Quando executado o software, cada objeto ficará responsável por uma parte do processamento e conforme seus relacionamentos com outros objetos é possível alcançar o resultado esperado.  

O paradigma orientado a objetos é usado por linguagens como Java, C#, C++, Python, PHP, entre outras. 

2.6 Programação funcional 

A programação funcional é um paradigma que deriva da programação declarativa e usa o conceito das funções matemáticas para resolver problemas através de softwares. 

O paradigma funcional permite desenvolver softwares compostos por várias funções curtas que possuem os códigos necessários para processar as informações. A execução dessas funções na ordem correta leva ao resultado esperado. Os códigos são baseados no uso de funções puras e variáveis imutáveis, bem como se evita o compartilhamento de estados e os efeitos colaterais.  

O paradigma funcional é usado por linguagens como Haskell, JavaScript, Python, PHP, entre outras.  

3. Qual paradigma é melhor? 

Depois de ler este artigo, talvez, você esteja se perguntando qual o melhor paradigma de programação? E a resposta para essa pergunta é: depende. 

Depende de qual problema você precisa resolver, de qual padrão de programação é adotado pela organização que você trabalha, de qual linguagem ou paradigma você tem mais conhecimento, de qual linguagem ou paradigma você tem mais afinidade, entre tantos outros fatores envolvidos. 

Na prática, cada profissional de desenvolvimento, participa de diferentes projetos e organizações ao longo da sua carreira, e cada projeto e organização têm características únicas. A escolha de qual paradigma usar e, até mesmo, de qual linguagem de programação usar, depende diretamente dessas características. É válido lembrar também que, muitas linguagens de programação são multiparadigma e, assim, muitas vezes se trabalha com mais de um paradigma no mesmo projeto de desenvolvimento.  

Cabe ao profissional de desenvolvimento, entender os conceitos básicos de cada paradigma e linguagem de programação e usá-los de acordo com as suas necessidades.   

4. Conclusão 

Neste artigo conhecemos um pouco mais sobre os paradigmas de programação e entendemos sua importância para o desenvolvimento de softwares. 

Espero que o conteúdo aqui apresentado seja útil de alguma forma para você. Em caso de dúvidas, sugestões ou reclamações fique à vontade para entrar em contato. 

Referências usadas na construção deste artigo:     

https://blog.geekhunter.com.br/quais-sao-os-paradigmas-de-programacao/
https://dicionario.priberam.org/paradigma
https://giovannamoeller.medium.com/paradigmas-de-programa%C3%A7%C3%A3o-a3c048fd8201
https://guia.dev/pt/pillars/languages-and-tools/programming-paradigms.html
https://pt.wikipedia.org/wiki/Paradigma_de_programa%C3%A7%C3%A3o
https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_procedural
https://www.alura.com.br/artigos/programacao-funcional-o-que-e
https://www.devmedia.com.br/introducao-a-programacao-estruturada/24951
https://www.treinaweb.com.br/blog/linguagens-e-paradigmas-de-programacao

Fontes consultadas entre os dias 15/03/2024 e 17/03/2024 

2 comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *