A Linguagem de Programação – Para quem nunca programou – Os Paradigmas

Pelo que percebemos até agora, a linguagem de programação não deixa de ser uma forma diferente de nos comunicar, a relação que ela tem com a Linguagem Falada é muito estreita, são tantas coisas em comum que se pararmos para pensar, já aprendemos a programar desde quando estávamos no colégio.

Hoje quero abordar um dos temas que mais confunde os profissionais desta área, os Paradigmas de Programação, uma teoria que deixa muitas pessoas confusas dando brechas para erros gravíssimos ao falar sobre o assunto.

Para ilustrar este universo, que muitas vezes é obscuro, vou me apoiar novamente em nossa língua. Quando estávamos na escola, havia uma disciplina que se chamava “Interpretação de Textos” nesta disciplina aprendemos que existem vários Tipos Textuais, ou seja, várias formas de se escrever um texto, ou ainda, as várias formas que um texto se apresenta, para lembrarmo-nos disso vou citá-los: “Texto Narrativo”, “Texto Descritivo”, “Texto Dissertativo”, “Texto Argumentativo” e “Texto injuntivo/instrucional”, não irei explicar a fundo cada qual, pois este não é nosso foco, o que eu quero demonstrar é que quando escrevemos um texto, podemos escolher um destes tipos textuais para desenvolvê-lo.

Cada Tipo Textual tem sua forma de apresentação, sua sintaxe e sua formatação, podemos sem problema algum, escrever a mesma coisa de formas diferentes, ou seja, de forma narrativa, dissertativa, descritivo e assim consecutivamente, sem que deixemos de apresentar a ideia principal do texto, em alguns casos podemos ser mais detalhistas e cômicos, em outros menos detalhistas e utilizando seriedade e assim por diante.

1. Paradigmas de Programação

Agora podemos fazer uma analogia entre aquilo que aprendemos lá no colégio com o que vamos discutir aqui nesta matéria, da mesma forma que existem os Tipos Textuais para textos da língua portuguesa, existem também os Paradigmas de Programação que nada mais é do que a forma como é escrito um determinado programa. Independente da linguagem utilizada a escolha é determinada pelo desenvolvedor, embora, existam linguagens de programação que são criadas dentro de um paradigma especifico, ficando um pouco difícil de escapar dele.

Dentre vários Paradigmas de Programação, os mais utilizados atualmente são: “A Programação Estruturada” (PE) e a “Programação Orientada à Objetos” (POO), teoricamente uma substituindo a outra respectivamente. Mas além destas temos outras pouco conhecidas, porém muito utilizadas em outras áreas da programação dos quais seguem: “Programação de passagem de mensagens”, “Programação procedural”, “Programação orientada a fluxos”, “Programação escalar”, “Programação restritiva”, “Programação orientada a aspecto”, “Programação orientada a regras”, “Programação orientada a tabelas”, “Programação orientada a fluxo de dados”, “Programação orientada a políticas”, “Programação orientada a testes”, “Programação multiparadigma”, Programação Imperativo, entre outras aqui não citadas.

Ao navegarmos pela internet, é fato que encontremos vários textos dizendo que hoje em dia quem não programa em (POO) não é um bom programador, só que as pessoas que escrevem estes textos não se atentam que “Programação Orientada à Objetos” é um Paradigma, uma forma específica de escrever o código e não uma linguagem em si, um exemplo bem bacana sobre isso são as linguagens “PHP”, “COBOL” e “PERL” que podem ser escritas utilizando vários Paradigmas de Programação, seja ela Estruturada, Orientada à Objetos e Procedural, dando flexibilidade ao desenvolvedor escolher em qual paradigma ele deseja desenvolver.

Dependendo da linguagem, é teoricamente impossível aplicar outros paradigmas além daquele proposto, por exemplo, o “Java” e o “Rubi and Rails”, são duas linguagens que nasceram baseadas no Paradigma de Orientação à Objetos, para desenvolver em outro paradigma é muito mais complicado do que aprender POO e desenvolver neste paradigma, outro exemplo típico é a linguagem “C”, que nasceu, cresceu e vive até hoje utilizando praticamente o Paradigma de Linguagem Estruturada, é praticamente impossível aplicar conceitos de POO nesta linguagem, pois o seu compilador não suporta as especificações do desenvolvimento POO.

Não existe, em hipótese alguma, dizer que um paradigma é melhor do que o outro, o que podemos dizer é que a Programação Orientada à Objetos é mais robusta, de fácil manutenção e mais elegante do que a Programação Estruturada, mas dependendo da situação e muitas vezes da linguagem escolhida, POO não se aplica, tornando assim inviável e fazendo com que a Programação Estruturada ou a Programação Imperativa seja escolhida e aplicada.

Um ponto bem interessante é que, um programador pode escrever seus programas com conceitos de POO, porém no meio de sua codificação ele acabe escorregando e não aplicando totalmente este paradigma, podemos dizer que este programador, mesmo que tenha aplicado alguns conceitos de POO não escreveu seu código de forma elegante e entendível, ele deixou os padrões estabelecidos pelo POO de lado, em comparação, um desenvolvedor “C” por exemplo, poderá escrever todo o seu código Estruturado, porém com organização e separação das funções, tornando a escrita tão elegante e entendível quanto aquele que desenvolveu em POO.

Da mesma forma que podemos escrever uma história ou um texto utilizando vários Tipos Textuais, é possível também escrever o mesmo programa utilizando paradigmas diferentes, da mesma forma que teremos algumas dificuldades em escrever aquele texto em um Tipo Textual específico, poderemos também ter dificuldades em escrever o mesmo aplicativo em outros paradigmas, mas isso é totalmente possível, principalmente quando se utiliza Linguagens com conceito multiparadigma como, por exemplo, as linguagens PHP, COBOL e PERL.

Entre os dois paradigmas acima citados, a Programação Orientada à Objetos é atualmente a mais utilizada, mesmo sabendo que o desenvolvimento nesta estrutura é mais demorado e em algumas aplicações um pouco mais lenta, ela ainda ganha nos quesitos manutenção, divisão de equipes, código limpo, organização, facilidade de aplicar Designer Patterns entre outros quesitos que você pode ver por ai. Mas em contrapartida, se o desenvolvedor utilizar do paradigma Estruturado, ele pode, sem dúvidas, aplicar as mesmas regras, tais como: Código limpo, organização e quebra de códigos utilizando funções ou procedimentos, tornando assim o código de fácil manutenção e muito elegante.

Podemos concluir que escrever programas para máquinas não é tão complicado ou tão simples assim, além de conhecer bem a linguagem que está escrevendo, é necessário conhecer arquiteturas estruturais e lógicas, para que a sua escrita não seja tão complicada a ponto de não ser possível efetuar manutenções dentro dela. Conhecer bem os tipos de paradigmas será um grande diferencial para você, pois esta será a base para conhecer em seguida os Design Patterns que é, na linguagem de programação, uma dos quesitos que lhe tornará um grande profissional.

Isso tudo foi apenas um start, para colocar uma sementinha de curiosidade em você, se você se interessou em tudo isso, lhe aconselho a aprofundar seus conhecimentos nestas teorias, e em complemento, continue nos visitando, assim sempre poderei lhe mostrar uma nova luz dentro deste imenso túnel que está prestes a entrar.

Deixe uma resposta