Ventajas y desventajas de la programación orientada a objetos

Por carlos mano
Ventajas y desventajas de la programación orientada a objetos
Hemera Technologies/Photos.com/Getty Images

La programación orientada a objetos es un concepto que se extendió a través de los departamentos de ciencias informáticas universitarias en los años 80 y de la comunidad de producción de aplicaciones en los años 90. Al igual que la "programación modular" antes y la "programación en Internet" después, POO generó cierto debate. Ahora bien, los conceptos de programación modular están aceptados universalmente, y muchos de los conceptos de la programación orientada a objetos también lo están, aunque quedan aún algunas objeciones al paradigma de programación orientada a objetos.

La idea básica de POO

En POO, los programas de ordenador tienen interacción de "objetos". Un objeto tiene "variables de instancia" y "métodos". Las variables de instancia registran valores asociados con el objeto. Los métodos son funciones que involucran algún aspecto del objeto. En un programa de juego, puede haber un objeto llamado "nave espacial", que tiene variables de instancia como la cantidad de combustible. Un método podría ser "torpedo contra incendios". Las naves espaciales podrían pertenecer a una "clase" de objetos llamados "objetos en movimiento." Los asteroides también pertenecen a esta clase. La ejecución del programa se compone de los objetos que envían "mensajes" entre sí.

Las ventajas de POO

La primera ventaja del concepto de objetos es que todo el código que tiene algo que ver con las naves espaciales se encuentra en un solo lugar. Otra ventaja es que los objetos pueden poseer atributos inherentes de la clase a la que pertenecen, por ejemplo, naves espaciales y asteroides podrían tener ambos una posición XY porque todos los objetos que pertenecen a la clase de los objetos en movimiento tiene una posición XY. Escribir códigos es más fácil porque se pueden conceptualizar como algo que le sucede a un objeto. Otra ventaja es que POO hace que los programas grandes sean más manejables. Si todas las ventanas pertenecen a una jerarquía de clases de ventanas y todo el código que se refiere a una ventana particular está dentro de esa ventana, todas las manipulaciones de ventana se pueden escribir como una sencilla transferencia de mensajes.

Las desventajas de POO

No todos los programas pueden ser modelados con exactitud por el modelo de objetos. Si lo que deseas es leer algunos datos, hacerles algo simple y escribir de nuevo, no tienes necesidad de definir clases y objetos. Sin embargo, en algunos lenguajes de POO, puede que tengas que realizar este paso extra. Otra desventaja es que si se fuerza el lenguaje en el concepto de programación orientada a objetos, se pierden algunas de las características de lenguajes útiles, como los "lenguajes funcionales". Otra desventaja el que concepto que un programador tiene de lo que constituye un objeto abstracto puede no coincidir con la visión de otro programador. Los objetos a menudo requieren una extensa documentación.

El futuro de POO

El futuro de la programación orientada a objetos probablemente se encuentra con lenguajes como Ruby y Lua, en el que se construye el concepto de objeto en el lenguaje y no siempre es explícitamente controlado por el programador. Ruby, por ejemplo, trata todo como un objeto, incluidas cadenas, números, tu programa y los contenidos del directorio en el que estás actualmente. Casi nunca tendrás que declarar algo como un objeto. Eres libre de utilizar el lenguaje como quieras: como programación orientada a objetos, como un lenguaje funcional, como lenguaje de procedimiento o incluso en formas que mezclan las modalidades.