# data[].attributes.body
Um paradigma é um estilo de programação, um modelo, uma metodologia. Não se trata de uma linguagem, mas a forma como você soluciona problemas usando uma determinada linguagem de programação. Dentre os paradigmas, temos o Imperativo e Declarativo.

# data[].attributes.body
Este paradigma se baseia no modo de funcionamento do computador, ou seja, é influenciado pela arquitetura do computador. Isto é refletido na execução sequencial baseada em comandos e no armazenamento de dados alterável, conceitos que são baseados na maneira pela qual computadores executam os programas a nível de linguagem de máquina. Um programa desenvolvido a partir deste modelo, por exemplo nas linguagens C e Modula-2, consiste em uma sequência de modificações no armazenamento de dados na memória do computador. Dentro dos paradigmas de programação do tipo imperativo temos:

Paradigma de Lógica de Programação

O paradigma da programação com apontamento lógico não é composto de instruções. Ele é baseado em fatos e usa tudo o que sabe para criar um cenário onde todos esses fatos e cláusulas são verdadeiros e apontam para algum final.

Por exemplo, JavaScript é uma linguagem de programação, todas as linguagens de programação são importantes e, por dedução lógica, JavaScript é importante.

Linguagens com propriedades de lógica:

Absys

Ciao

Alice

É interessante usar o paradigma de programação lógica quando:

Você planeja trabalhar em projetos como prova de teoremas, sistemas de redução, sistemas de tipos entre outros.

Programação Funcional

O paradigma de programação funcional tem suas raízes na matemática e é independente da linguagem.

A base desse paradigma é a execução de uma série de funções matemáticas. Você compõe seu programa de funções curtas. Todo o código está dentro de uma função. Todas as variáveis têm escopo definido para a função.

No paradigma de programação funcional, as funções não modificam nenhum valor fora do escopo dessa função e as próprias funções não são afetadas por nenhum valor fora do escopo.

Linguagens que usam este paradigma:

Haskell
Scala
Racket
JavaScript

Ideal para usar quando:

Tem matemática envolvida diretemante na programação.

Os paradigmas de programação ajudam a reduzir a complexidade dos programas. Todo desenvolvedor deveria seguir uma abordagem de paradigma ao implementar seu código.

# data[].attributes.body
No paradigma declarativo a programação é levada a um nível mais alto de abstração, onde o programador pode concentrar-se em descrever o resultado que deve ser computado, e não necessariamente como esse resultado deve ser computado. Dessa forma, a programação declarativa define "o que" é para ser computado, mais do que "como" computar, entrando assim em contraste a programação imperativa. Dentro dos paradigmas de programação do tipo declarativo temos:

Programação Procedural

A programação procedural é excelente para programação de uso geral e consiste numa lista de instruções para informar ao computador o que fazer passo a passo.

A maioria das linguagens de programação ensinadas na faculdade são procedurais, exemplos:

C

C++

Java

Pascal

Quando é recomendado usar programação procedural:

Quando existir uma operação complexa que inclui dependências entre operações e quando há necessidade de visibilidade clara dos diferentes estados do aplicativo.

O programa é muito único e poucos elementos foram compartilhados.

O programa é estático e não se espera que mude muito ao longo do tempo.

Espera-se que nenhum ou apenas alguns recursos sejam adicionados ao projeto ao longo do tempo.

Programação Orientada ao Objeto

A programação orientada ao objeto (OOP) é o paradigma de programação mais popular devido aos seus benefícios, como a modularidade do código e a capacidade de associar diretamente problemas reais em termos de código.

Neste caso, o programa é escrito como uma coleção de classes e objetos para uma boa comunicação. A entidade menor e básica é objeto e todo tipo de cálculo é realizado apenas nos objetos.

É o paradigma mais popular e requisitado pelas empresas e as principais linguagens que o implementam são:

PHP

Java

Ruby

C#

Python

Vale a pena utilizá-la quando:

Vários programadores atuam juntos e não precisam entender tudo sobre cada componente.

Existe muito código a ser compartilhado e reutilizado.

São previstas muitas mudanças no projeto.

# data[].attributes.attachment_link.readable_text
Todos nós que somos apaixonados por programação e seus muitos paradigmas já ouvimos falar sobre programação imperativa, declarativa, reativa e tantos outros conceitos relacionados.

Em muitos eventos que eu tenho participado de desenvolvimento Web têm-se falado muito frases deste tipo:

"Uma das grandes vantagens do Angular é que ele é baseado em programação "O Javascript dá suporte a programação declarativa, imperativa e funcional". declarativa".

Mas, qual a real diferença entre estes paradigmas e por que é importante entendê-los?

A questão principal é que se você entende o paradigma ou conceitos fundamentais sob os quais uma determinada linguagem, framework ou biblioteca foram construídos, a curva de aprendizado torna-se cada vez mais rápida e a velocidade de adaptação a ele é muito maior.

Mas, sem mais delongas, vamos às características destes três conceitos.

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.

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:

Para a implementação funcionar conforme o desejado foi necessária a criação de uma função que possuísse a implementação, especificando de forma imperativa o que deveria acontecer no caso o estado do controle checkbox fosse alterado.

Caso decidíssemos utilizar Angular no nosso projeto, que possui um modo de programação declarativo, a implementação ficaria semelhante a esta:

Repararam na simplicidade? Possui exatamente o mesmo resultado da primeira implementação, mas com nenhuma linha de código adicional além do HTML. O modo de programação declarativa tem se mostrado bastante eficaz para front-end.

A programação reativa talvez não possa ser considerada um paradigma de programação como os demais citados, mas representa um conceito que tem sido amplamente utilizado nas aplicações Web modernas, onde pode haver uma complexidade extremamente alta das interações do usuário e a grande necessidade de disponibilidade das aplicações, exigindo grande performance de resposta e assincronismo. Em sistemas reativos a aplicação responde ou REAGE a eventos disparados por interações de usuário ou situações comuns em aplicações como falhas, sobrecarga de requisições, dentre outros, retornando apenas ao que foi solicitado e/ou respondendo de maneira adequada a cada situação.

Atualmente, escalabilidade é um pré-requisito cada vez mais fundamental ao se planejar a arquitetura de um sistema Web, considerando altas exigências por performance, tempo de resposta, processamento de grande quantidade de requisições simultaneamente, acesso de diversos dispositivos, dentre outras características. E aí que entra a programação reativa, juntamente com outros conceitos como microservice, computação em nuvem, etc.

E para se definir e padronizar o conceito de sistemas reativos, foi criado o Manifesto Reativo, com alguns princípios referentes a este modo de projetar as aplicações:

Basicamente, os sistemas reativos precisam atender a quatro principais características: elasticidade, resiliência, responsividade e ser orientado a mensagens. Considerando a importância destas quatro características, acho que este assunto merece um artigo exclusivo no futuro para tratarmos apenas delas.

Para dar suporte a este paradigma foram criados ou adaptados alguns frameworks e bibliotecas, como o React. js, desenvolvido e mantido pelo Facebook, e que vem sendo utilizado por grandes empresas como o Netflix.

Bom, por enquanto é só pessoal. Muito obrigado por ter lido esta postagem até o final. Espero que eu tenha contribuí

do um pouco para sua compreensão sobre estes conceitos.

Para acompanhar sobre outros conteúdos relacionados à desenvolvimento de software e eventos de tecnologia, pode me seguir nas redes sociais:

Linkedin: https://www.linkedin.com/in/alexandremalavasi

# data[].attributes.attachment_link.description
Todos nós que somos apaixonados por programação e seus muitos paradigmas já ouvimos falar sobre programação imperativa, declarativa, reativa e tantos outros conceitos relacionados. Em muitos eventos que eu tenho participado de desenvolvimento Web têm-se falado muito frases deste tipo: "Uma das grandes vantagens do Angular é que ele é baseado em programação "O Javascript dá suporte a programação declarativa, imperativa e funcional ".

# data[].attributes.attachment_link.readable_text
Os paradigmas de programação são, antes de tudo, um meio de qualificar a linguagem com base em sua funcionalidade. São atributos que expressam como uma linguagem funciona e também soluciona problemas.
Os paradigmas são classificados de acordo com as permissões sobre o que uma linguagem pode ou não fazer, mas não se preocupe, veremos isso mais abaixo.

Existem inúmeros outros paradigmas de programação, mas neste artigo vamos focar no que é mais relevante de acordo com o mercado de trabalho.
>> Melhores linguagens de programação para devs iniciantes
O que é um paradigma de programação

Um paradigma é um estilo de programação, um modelo, uma metodologia. Não se trata de uma linguagem, mas a forma como você soluciona problemas usando uma determinada linguagem de programação.

Existem muitas linguagens de programação conhecidas, mas todas elas precisam seguir algumas regras quando implementadas. E essas regras são os paradigmas.

Desta forma, quando uma nova linguagem de programação é desenvolvida, conforme suas pecualiaridades, ela tende a se enquadrar em um paradigma ou até mesmo multiparadigma, como o JavaScript, por exemplo.

Conseguiu entender bem até aqui? Pode parecer um pouco complicado para quem está no começo da jornada como desenvolvedor e se este for o seu caso, recomendo assistir ao vídeo a seguir antes de continuar:

Por que é importante aprender sobre paradigmas de programação?

O primeiro ponto é que isso transforma você num desenvolvedor melhor, entendendo melhor sobre este tipo de teoria faz você pensar diretamente no design de código, você consegue ser capaz de entender melhor as linguagens, lendo nas entrelinhas dós códigos.

Outro ponto relevante é que adiciona uma vantagem competitiva para o seu perfil numa seletiva de emprego. Quando recrutadores ouvem que você domina o assunto, isso agrega ainda mais valor ao seu nome durante o processo gerando mais confiança na sua contratação.
>> Dicas de carreira: como criar seu perfil profissional com foco na área tech
Quais são os tipos de paradigmas?

Os principais paradigmas de programação basicamente pertencem a dois grupos, imperativos ou declarativos.
Imperativo

Paradigmas de Programação Imperativos

O programador instrui a máquina sobre como devem ser computados os processos. Dentro dos paradigmas de programação do tipo imperativo temos:

Programação Procedural

A programação procedural é excelente para programação de uso geral e consiste numa lista de instruções para informar ao computador o que fazer passo a passo.

A maioria das linguagens de programação ensinadas na faculdade são procedurais, exemplos:

Quando é recomendado usar programação procedural:

Quando existir uma operação complexa que inclui dependências entre operações e quando há necessidade de visibilidade clara dos diferentes estados do aplicativo.

O programa é muito único e poucos elementos foram compartilhados.

O programa é estático e não se espera que mude muito ao longo do tempo.

Espera-se que nenhum ou apenas alguns recursos sejam adicionados ao projeto ao longo do tempo.

Recomendo a fonte original de onde eu tirei essa informação sobre as recomendações de quando usar programação procedural, incluindo as desvantagens deste paradigma.

Programação Orientada ao Objeto

A programação orientada ao objeto (OOP) é o paradigma de programação mais popular devido aos seus benefícios, como a modularidade do código e a capacidade de associar diretamente problemas reais em termos de código.

Neste caso, o programa é escrito como uma coleção de classes e objetos para uma boa comunicação. A entidade menor e básica é objeto e todo tipo de cálculo é realizado apenas nos objetos.

É o paradigma mais popular e requisitado pelas empresas e as principais linguagens que o implementam são:

Vale a pena utilizá-la quando:

Vários programadores atuam juntos e não precisam entender tudo sobre cada componente.

Existe muito código a ser compartilhado e reutilizado.

São previstas muitas mudanças no projeto.

Computação Paralela

O paradigma de computação paralela consiste nas instruções sendo divididas entre vários processadores.

Um sistema de computação paralela permite que muitos processadores executem um programa em menos tempo, dividindo-os.

Linguagens que suportam a abordagem de processamento paralelo:

A abordagem de computação paralela geralmente é recomendada quando:

Você tem um sistema que possui mais de uma CPU ou processadores multinúcleo.

É preciso resolver problemas computacionais que podem levar até dias para serem resolvidos.

Se trabalha com simulação computacional, inteligência artificial ou modelagem que exija muitos cálculos dinâmicos.

Declarativo

Paradigmas de Programação Declarativos

É quando o programador apenas declara as propriedades do resultado desejado, mas não informa a máquina sobre como devem ser feitos os cálculos relacionados. No grupo dos paradigmas de programação declarativos estão:

Paradigma de Lógica de Programação

O paradigma da programação com apontamento lógico não é composto de instruções. Ele é baseado em fatos e usa tudo o que sabe para criar um cenário onde todos esses fatos e cláusulas são verdadeiros e apontam para algum final.

Por exemplo, JavaScript é uma linguagem de programação, todas as linguagens de programação são importantes e, por dedução lógica, JavaScript é importante.
>> Linguagem JavaScript: Um guia para iniciantes
Linguagens com propriedades de lógica:

É interessante usar o paradigma de programação lógica quando:

Você planeja trabalhar em projetos como prova de teoremas, sistemas de redução, sistemas de tipos entre outros.

Programação Funcional

O paradigma de programação funcional tem suas raízes na matemática e é independente da linguagem.

A base desse paradigma é a execução de uma série de funções matemáticas. Você compõe seu programa de funções curtas. Todo o código está dentro de uma função. Todas as variáveis têm escopo definido para a função.

No paradigma de programação funcional, as funções não modificam nenhum valor fora do escopo dessa função e as próprias funções não são afetadas por nenhum valor fora do escopo.

Falamos bastante do paradigma de programação funcional nesta GeekStream, inclusive é uma das coisas que o Gabriel Schade, da AWS, gostaria de ter aprendido no começo de sua carreira.

Linguagens que usam este paradigma:

Ideal para usar quando:

Tem matemática envolvida diratemante na programação.

Os paradigmas de programação ajudam a reduzir a complexidade dos programas. Todo desenvolvedor deveria seguir uma abordagem de paradigma ao implementar seu código.

Vale pegar seus prós e contras, colocar numa balança e verificar qual é o ideal para o seu projeto.

Você sentiu falta de algum paradigma importante que não foi citado no texto? Deixe sua opinião e nos diga quais você tem utilizado.

# data[].attributes.attachment_link.title
O que é e quais são os paradigmas de programação? | GeekHunter Blog

# data[].attributes.attachment_link.description
Os paradigmas de programação são, antes de tudo, um meio de qualificar a linguagem com base em sua funcionalidade. São atributos que expressam como uma linguagem funciona e também soluciona problemas. Os paradigmas são classificados de acordo com as permissões sobre o que uma linguagem pode ou não fazer, mas não se preocupe, veremos isso mais abaixo.

# data[].attributes.attachment_link.readable_text
Conforme vamos nos munindo de conhecimento ao longo de nossa longa caminhada nos deparamos com diversas linguagens de programação mas muito mais empolgante do que aprender uma nova linguagem de programação é aprender um novo paradigma de programação.

A parte mais interessante é perceber como o paradigma funciona. Isso acontece de modo intuitivo, muito parecido com como quando se aprende um novo idioma: nada faz sentido no começo, tudo é muito mecânico e de repente um estalo e tudo faz sentido!

Há muitos paradigmas de programação, mas a maioria são variações dos mesmos tipos básicos: imperativo, funcional e declarativo. Nesse post irei abordar somente os paradigmas imperativo e declarativo com exemplos em Javascript.

A Programação Imperativa se baseia em especificar os passos que um programa deve seguir para alcançar um estado desejado. Pelo fato de permitir o uso de procedimentos como estruturação, também é conhecido como Procedural.

Os Procedimentos também são conhecidos como métodos, subrotinas, rotinas ou funções que muitas vezes são confundidas com funções matemáticas que são similares àquelas usadas na Programação Declarativa. Um dado procedimento pode ser chamado em qualquer momento durante a execução de um programa, inclusive por outros procedimentos ou por si mesmo. Um programa é considerado imperativo quando você diz para ele como fazer alguma coisa. Segue exemplo:
Vantagens

Eficiência

Modelagem natural dos problemas do mundo real

Consolidado e com dominância de mercado

Desvantagens

Foca no "COMO" e não o "QUE" precisa ser feito

Difícil legilibilidade

Já a Programação declarativa é um paradigma de programação baseado em programação funcional, programação lógica ou programação restritiva. Um programa se diz declarativo quando descreve o que ele faz e não como seus procedimentos funcionam. Na programação declarativa, não há a ideia de estado do programa, como ocorre na programação imperativa. Segue exemplo:
Vantagens

Reduzir efeito colaterais

Minimizar mutabilidade

Mais legilibilidade e menos bugs

Desvantagens
Não oferece alocação explícita de memória ou declaração explícita de variáveis, necessários para a resolução de muitos problemas reais.

Dica do dia: Nunca se prenda a somente um paradigma ou um conceito, existem várias outras formas de abordar o mesmo problema. Nunca coloque um limite para si mesmo!

Na Computação não existe verdade absoluta, tudo é relativo!

Acredito que a cada conceito novo que nos munimos é como uma nova forma de se expressar, que pode ou não facilitar a comunicação e resolução de problemas. Então tome cuidado com suas escolhas e seja feliz.

Bom por hoje é só pessoal, bons estudos, deixem seus comentários e até a próxima!!!

# data[].attributes.attachment_link.description
Conforme vamos nos munindo de conhecimento ao longo de nossa longa caminhada nos deparamos com diversas linguagens de programação mas muito mais empolgante do que aprender uma nova linguagem de programação é aprender um novo paradigma de programação. A parte mais interessante é perceber como o paradigma funciona.