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

Anteriormente comentamos las ventajas de PHP, ActionScript y JavaScript, tres de los lenguajes de programación más utilizados en desarrollo web.  A pesar de que sus aplicaciones habituales pueden ser bastante diferentes, estos tres lenguajes tienen algo en común: exponen características de la programación orientada a objetos. Pero ¿qué significa este concepto?

La orientación a objetos es uno de los muchos paradigmas de programación que existen. Un paradigma de programación es un modelo que guía la resolución de problemas computacionales, y que en muchos casos define la sintaxis de un lenguaje. Es decir, a través de la sintaxis que impone, un lenguaje de programación puede orientarse hacia algún estilo de resolución de problemas particular. Si bien la mayoría de los lenguajes combina características de varios paradigmas, el más popular en la actualidad es el orientado a objetos, uno de los cuatro principales junto con el lógico, el imperativo y el funcional.

Tradicionalmente, los programas consistían en una sucesión de tareas a ejecutarse. Pero la programación orientada a objetos propone un modelo diferente: el programa se compone de un conjunto de entidades, llamadas objetos, que se comunican y realizan pedidos entre sí a través de mensajes. Cada objeto cuenta con características propias (atributos) y es capaz de realizar ciertas acciones (métodos). Si un objeto requiere obtener el resultado de cierta operación sobre un conjunto de datos, no tiene más que pedírselo a un objeto que pueda realizar esa operación. El objeto remitente no tiene por qué conocer la forma en que el objeto receptor desempeña la acción. Los objetos actúan como un equipo de trabajo con una estricta división de tareas.

El paradigma orientado a objetos nos permite modelar un problema de una forma amena, que reproduce con mayor fidelidad los mecanismos del mundo real. Todos los elementos que componen el Universo tienen características y comportamiento propios, y se relacionan con otros elementos de múltiples formas; por lo tanto, pueden ser fácilmente representados como objetos. Crear un conjunto de objetos que refleje adecuadamente el problema real, y que sepan organizarse entre sí para resolverlo, depende en buena medida de la imaginación del programador.