# data[].attributes.body
Um paradigma é o que determina o ponto de vista da realidade e como se atua sobre ela, os quais são classificados quanto ao seu conceito de base, podendo ser: Imperativo, funcional, lógico, orientado a objetos e estruturado. Cada qual determina uma forma particular de abordar os problemas e de formular respectivas soluções. Além disso, uma linguagem de programação pode combinar dois ou mais paradigmas para potencializar as análises e soluções. Deste modo, cabe ao programador escolher o paradigma mais adequado para analisar e resolver cada problema.

Referência

# data[].attributes.headline
Diferença entre paradigma Declarativo e imperativo

# data[].attributes.subject
Diferença entre paradigma Declarativo e imperativo

# data[].attributes.body
Paradigma imperativo se preocupa com os detalhes do funcionamento do algoritmo e o declarativo apenas com a semântica correta do que se quer alcançar. Fica claro que é muito difícil programar de forma apenas declarativa. O declarativo deverá ter algum suporte de outros paradigmas, como o imperativo, mesmo que de forma bastante transparente.

Referência

# data[].attributes.body
Para se entender o que é programação imperativa, vamos primeiramente voltar ao significado original deste termo na nossa amada, querida e difícil língua portuguesa:

Imperativo: que acentua o caráter de mando, de autoridade, ou que exprime uma ordem; autoritário.

Então, imperatividade dá a ideia de dar ordens ou se dizer com todas as letras o que se deve fazer a alguém. E pode-se dizer que programação imperativa possui ideia semelhante.

Baseado em instruções e comandos, o programador diz como e o quê exatamente um programa ou rotina deve realizar. É neste paradigma que surgiram os famosos laços de repetição, estruturas condicionais, atribuição de valor à variáveis e controle de estado. A maioria de nós programadores utilizamos este paradigma de programação no nosso dia a dia sem, muitas vezes, nos darmos conta disto.

Instruções como if, while, switch e for são típicas de linguagens de programação imperativas.

Aqui vemos que temos que especificar exatamente o que deve ser feito!

function double (arr) {
  let results = []
  for (let i = 0; i < arr.length; i++){
    results.push(arr[i] * 2)
  }
  return results
}

LINKS/Referências

# data[].attributes.body
Uma das principais características do paradigma declarativo é que não há preocupação na maneira ou método de execução de uma determinada rotina. Em outras palavras, o foco não está no “como” e sim no “que”.

Por mais incrível que possa parecer, um dos principais exemplos de utilização de programação declarativa na nossa rotina de programador é a utilização da linguagem SQL. Quando especificamos uma simples instrução SELECT, simplesmente declaramos ao banco de dados o que queremos, sem necessidade de nos importarmos com os procedimentos que o gerenciador de banco de dados adotará para fazer funcionar corretamente a instrução. Esta característica torna o modo de programação declarativo muito mais simples e legível em comparação à programação imperativa.

Um dos principais exemplos atuais e consenso em relação aos benefícios da utilização de programação declarativa está preconizado no Angular, framework javascript que possui implementações declarativas.

Como exemplo, suponhamos que temos que implementar em uma página Web uma funcionalidade que, caso o usuário marque a opção de seleção em um controle do tipo checkbox, uma mensagem deve ser exibida, caso contrário, a mensagem deve ser ocultada.

Utilizando JQuery e o modo de programação imperativo, a implementação ficaria semelhante a isto:

LINKS/Referências