1.2 Paradigmas de Programação

A palavra paradigma tem origem na palavra grega παράδειγμα, que significa “padrão” ou “exemplo”, e que, por sua vez, vem de παραδεικνύναι, que significa “demonstrar”. A partir dessa observação, Thomas S. Kuhn definiu paradigma como "toda a constelação de crenças, valores, técnicas etc., partilhadas pelos membros de uma comunidade determinada" . Assim, pode-se dizer que um paradigma expressa um padrão de pensamento de uma comunidade.

Uma vez que existem diferentes comunidades de programadores, bem como diferentes domínios de aplicação, é natural que haja diferentes paradigmas também dentro da área de programação. Esses paradigmas de programação proporcionam aos programadores formas mais naturais de expressar suas idéias e pensamentos ao computador, utilizando estruturas de dados, técnicas e abstrações que fazem mais sentido dentro de sua comunidade, tipo de negócio ou contexto.

O uso de um paradigma de programação adequado ao domínio de aplicação permite que o programador desenvolva sistemas com maior produtividade, pois os códigos podem ser escritos de uma forma mais natural, mais legível e mais fácil de se manter ao longo da vida útil do sistema.

De forma geral, um paradigma de programação fornece e determina a visão que o programador possui sobre a estruturação e execução do programa, permitindo ou proibindo a utilização de algumas técnicas de programação.

Por exemplo, alguns dos paradigmas mais conhecidos (e algumas linguagens com suporte aos mesmos) são apresentados na Tabela 1:

Paradigma Linguagem Ano de Criação
Procedimental COBOL 1959
Pascal 1970
C 1972
Orientado a Objetos Simula 1967
Smalltalk 1972
C++ 1979
Java 1995
C# 2001
Funcional LISP 1958
Erlang 1986
Haskell 1990
F# 2005
Lógico Planner 1969
Prolog 1972
Oz 1995
Declarativo SQL 1974
Prolog 1972
Mercury 1995

Tabela 1 – Principais paradigmas de programação e algumas linguagens com suporte aos mesmos

Há ainda linguagens híbridas (ou, multiparadigma), ou seja, linguagens que dão suporte total ou parcial a mais de um paradigma de programação.

A ideia de uma linguagem híbrida é motivada pelo fato de que nenhum paradigma isoladamente pode resolver todos os problemas da maneira mais elegante ou eficiente possível. Sendo assim, é necessário dar ao programador a liberdade de misturar princípios, conceitos e técnicas de diferentes paradigmas, ao resolver um problema particular.

Dessa forma, um sistema pode ser desenvolvido utilizando vários paradigmas ao mesmo tempo, com cada trecho de código obtendo apenas as vantagens do paradigma no qual foi escrito, levando assim o sistema a ter uma melhor desempenho e confiabilidade.

Alguns exemplos de linguagens híbridas são apresentados na Tabela 2.

Paradigma Linguagem Ano de Criação
Orientado a Objetos, CLOS 1958
Declarativo, Lógico Prolog 1972
Orientado a Objetos, Python 1991
Orientado a Objetos JavaScript 1995
Lógico, Oz 1995
Orientado a Objetos, Ruby 1995

Tabela 2 – Principais Linguagens híbridas e os paradigmas que suportam