bem...
pra quem não entende do assunto Paradigmas de Programação
aqui vai um conceito simples, adaptado do texto de Artur Miguel Dias:
Um paradigma de programação consiste numa conceptualização da computação.
Computação = processamento mecânico de informação
Cada paradigma de programação é caracterizado por um conjunto particular de conceitos de base.
Exemplos de paradigmas de programação e respectivos conceitos de base
- Paradigma imperativo
- Conceitos: estado, atribuição, sequenciação
- Linguagens: Basic, Pascal, C, Assembler.
- Paradigma funcional
- Conceitos: função, aplicação, avaliação
- Linguagens: Lisp, ML, OCaml, Haskell.
- Paradigma lógico
- Conceitos: relação, dedução
- Linguagens: Prolog.
- Paradigma orientado pelos objetos
- Conceitos: objeto, mensagem
- Linguagens: C++, Java, Eiffel.
- Paradigma concorrente
- Conceitos: processo, comunicação (síncrona ou assíncrona)
- Linguagens: Occam, Ada, Java.
Aspectos práticos
- Cada paradigma de programação determina uma forma particular de abordar os problemas e de formular as respectivas soluções. De fato, diferentes paradigmas de programação representam muitas vezes visões irreconciliáveis do processo de resolução de problemas.
- O grau de sucesso dum programador depende em parte da coleção de paradigmas que domina e da sua arte em escolher o modelo conceptual (paradigma) mais indicado para analisar e resolver cada problema.
Uma linguagem de programação pode combinar mais do que um paradigma
- C++ --- Paradigma imperativo + paradigma orientado pelos objetos.
- Java --- Paradigma imperativo + paradigma orientado pelos objetos + paradigma concorrente.
- Ocaml --- Paradigma funcional + paradigma orientado pelos objetos.
- Ada --- Paradigma imperativo + paradigma concorrente.
Nota: Alguns autores separam o conceito de paradigma de computação (referindo-se ao modelo básico de computação) do conceito de paradigma de programação (referindo-se às construções e metodologias concretas colocadas à disposição do programador). Para simplificar, a nossa ideia de paradigma de programação incorpora as duas facetas.