Procedural é fácil, Orientado a Objetos é difícil


Por que ainda temos discussões sobre a Programação Procedural ser mais fácil do que a Programação Orientada a Objetos? É claro que Programar no paradigma Procedural é mais fácil.

Imagem

Você olha para um código com 5 instâncias de Objetos, agumentos de Construtores, consumo de memória, polimorfismo e pensa:

Eu poderia fazer a mesma coisa com 10 linhas de código Procedural.

A performance — você diria — poderia ser melhor, iria consumir menos memória e, claro, é muito mais fácil codificar.

Eu concordo… em parte.

Então por que escolher a Orientação a Objetos?

Por que fazer da maneira “mais difícil”?

Por que criar um overhead “desnecessário”?

Se pensarmos apenas no overhead que traz a Orientação a Objetos, vamos então codificar nossos sistemas em apenas um único arquivo, usando GO TO e código ASSEMBLY.

Orientação a Objetos é sobre manutenabilidade no longo prazo.

É sobre não pensar como um controlador ou CPU, mas como Entidades auto-suficientes que pensam e tomam decisões por conta própria.

Não é sobre estar certo ou errado, fazer diagramas bonitos ou porque fica legal por no Currículo.

Orientação a Objetos é sobre resolver um problema de forma sustentável.

Por isso escolhemos desenvolver seguindo esse paradigma.

Em 1 hora é possível fazer muita coisa de forma Procedural, enquanto na Orientação a Objetos podemos ficar 1 hora apenas tentando identificar o melhor nome para uma Classe, quais são as Entidades que fazem parte do problema, quais os Contextos…

E se eu lhe dissesse que podemos ficar “apenas” pensando por 1 ou 2 semanas, sem escrever nenhuma linha de código?

É verdade, acontece.

Não adianta fazer um sistema rapidamente se seu código não é sustentável no longo prazo.

Softwares sempre mudam.

Orientação a Objetos é sobre organização.

Nós passamos a maior parte do tempo não codificando novas features, mas sim lendo e tentando entender o código.

De que adianta ter um código de execução mais rápida em 100 ms se daqui a um mês ninguém sabe como alterá-lo?

Orientação a Objetos não é mais difícil de codificar, é apenas é mais trabalhoso.

Mas vale a pena.

Por que no fim você irá trabalhar menos.

Talvez com um pouco mais de código, é verdade, mas terá menos bugs.

Menos debugging.

Menos problemas.

Orientação a Objetos agrega qualidade.

E qualidade, é o que mais importa.

Até logo.

Posts Relacionados

  • Memória Segura Utilizando Instâncias de Interfaces

  • Classes Mutáveis vs Objetos Imutáveis

  • Implementando Interfaces Utilizando Diferente Assinaturas de Métodos

  • Usando Paths ao invés de Diretivas de Compilação

  • Trabalhando com Exceções em Requisições HTTP

  • Tipo object Continua Vivo

  • Array de Objetos

  • Variáveis Locais Deveriam ter Nomes Curtos

  • Como Dividir e Organizar o Código em Formulários com Muitos Widgets

  • Pascal Deveria ser Modernizado?