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

  • Observando Objetos

  • Eventos e Objetos

  • Organização de Projetos

  • James e Testes de Unidade

  • James Package

  • Objetos Puros

  • Pacotes e Versões no Lazarus

  • Identificador Único Universal

  • Stored Procedures na Orientação a Objetos

  • Como Utilizar Herança Apropriadamente