Alguns Paradigmas de programação! Você conhece todos?
Hoje quero mostrar algun tipo de Paradigmas de programação. Incluindo os bem conhecidos!
Imperativo : Programação com uma sequência explícita de comandos que atualizam o estado.
Declarativo : Programação especificando o resultado que você deseja, não como obtê-lo.
Estruturado: Programação com estruturas de controle aninhadas limpas, goto-free.
Processual : Programação imperativa com chamadas de procedimento.
Funcional (Aplicativo): Programação com chamadas de funções que evitam qualquer estado global.
Nível de Função (Combinator): Programação sem nenhuma variável.
Orientado a Objetos : Programação definindo objetos que enviam mensagens uns aos outros. Os objetos têm seu próprio estado interno (encapsulado) e interfaces públicas. A orientação a objetos pode ser:
- Baseado em classe : os objetos obtêm estado e comportamento com base na participação em uma classe.
- Baseado em protótipo : os objetos obtêm o comportamento de um objeto de protótipo.
Orientado a Eventos : Programação com emissores e ouvintes de ações assíncronas.
Flow-Driven : Processos de programação que se comunicam uns com os outros através de canais predefinidos.
Lógica (baseada em regras): Programação especificando um conjunto de fatos e regras. Um mecanismo infere as respostas às perguntas.
Restrição: Programação especificando um conjunto de restrições. Um mecanismo encontra os valores que atendem às restrições.
Aspect-Oriented : Preocupações transversais de programação aplicadas de forma transparente.
Reflexivo: Programação manipulando os próprios elementos do programa.
Array : Programação com poderosos operadores de array que geralmente tornam os loops desnecessários.
Os paradigmas não devem ser mutuamente exclusivos; um único programa pode apresentar vários paradigmas!
Poucas linguagens implementam um paradigma 100%. Quando o fazem, são puros. É incrivelmente raro ter uma linguagem “OOP pura” ou uma linguagem “funcional pura”. Muitos idiomas têm alguns escapes; por exemplo, no OCaml, você programará com funções 90% ou mais do tempo, mas se precisar de estado, poderá obtê-lo. Outro exemplo: pouquíssimas linguagens implementam OOP da maneira que Alan Kay imaginou.
Muitas linguagens facilitarão a programação em um ou mais paradigmas. No Scala, você pode fazer programação imperativa, orientada a objetos e funcional com bastante facilidade. Se uma linguagem é propositadamente projetada para permitir a programação em muitos paradigmas, ela é chamada de linguagem multiparadigma. Se uma linguagem suporta apenas acidentalmente vários paradigmas, não temos uma palavra especial para isso.