¿Es necesario aprender programación orientada a objetos para empezar a programar?

GitHub avatar of Ivan Montilla
December 3, 2022
Post licensed under CC BY 4.0

Hace unos días, me crucé con el siguiente tweet que preguntaba “¿Crees que sea necesario aprender POO (Programación Orientada a Objetos) para empezar a programar?”, a lo que respondí que no. En esta entrada quiero extender esta respuesta.

Para reflexionar sobre ello, primero necesitamos definir qué es programar y qué es la programación orientada a objetos.

¿Qué es programar?

Programar se puede definir como escribir programas que ejecutará una computadora.

La base de un programa de computadora es secuencia, selección y repetición. Todo programa durante la ejecución se reduce a ello y, aquellos diseñados con un lenguaje orientado a objetos, no son una excepción.

¿Qué es la programación orientada a objetos?

La programación orientada a objetos es un paradigma de programación que impone cierta disciplina sobre la organización del código y la transferencia del control, pero es sólo eso, una disciplina organizativa. Al final, se ejecutan los métodos, no las clases ni los objetos.

Aprender a programar

Hechas les definiciones, toca reflexionar sobre ello cuando se está empezando a aprender a programar.

Cuando una persona quiere aprender a programar, es mucho más importante que aprenda primero los fundamentos más básicos y, luego ya, podrá pasar (o no) a aprender sobre el paradigma de programación orientada a objetos.

Sobre estos fundamentos, me gustaría hacer especial mención a la encapsulación y al polimorfismo por su estrecha relación con la programación orientada a objetos.

Los lenguajes orientados a objetos como Java o C# facilitan muchísimo la implementación de encapsulamiento y polimorfismo y, aunque son conceptos fundamentales e importantes, no es necesario aprender POO para entenderlos ni para aplicarlos. Ya en el lenguaje C, que no es orientado a objetos, se podía hacer encapsulamiento y polimorfismo, aunque no fuese algo tan trivial y cómodo de hacer como en Java o C#.

Comments

Loading comments...

Write a comment on GitHub!