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.
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.