gravatar

Introducción a la POO - Parte 5


La cercanía de los lenguajes imperativos con el modelo de máquina subyacente permite por un lado obtener programas cuyo rendimiento puede ser muy alto (que en general es bastante mayor que el rendimiento de los programas desarrollados con lenguajes declarativos), pero por el otro, el costo a pagar por ese mayor rendimiento es que los elementos del lenguaje provean un nivel de abstracción menor. Una consecuencia de esto es que los lenguajes imperativos suelen ser más fáciles de aprender, pero la resolución de problemas es más trabajosa y el código fuente resultante más largo.

En la actualidad los lenguajes imperativos más populares parecen seguir la tendencia de añadir algunas características de lenguajes funcionales que le permiten elevar su nivel de abstracción. En el otro extremo, los lenguajes declarativos incorporan nuevas características en sus compiladores o intérpretes que les permiten obtener código ejecutable de mayor rendimiento. Así, parece ser que poco a poco los lenguajes imperativos se parecerán un poco a los lenguajes declarativos en cuanto a su nivel de abstracción, mientras que los lenguajes declarativos se parecerán un poco más a los imperativos en cuanto su rendimiento.

Como se mencionó antes, la introducción de soporte para el paradigma de programación orientada a objetos por parte de los lenguajes imperativos más populares, significó un cambio importante en el nivel de abstracción con el que fue posible pensar acerca de los problemas a resolver.

Sin embargo, la programación orientada a objetos es parte del paradigma imperativo y por ello al escribir un programa sigue siendo necesario expresar de manera precisa cómo se resuelven los problemas (a diferencia de los lenguajes declarativos).

Además, ciertas características de la máquina subyacente siguen presentes de forma más o menos directa, como el estado de los objetos que se expresan mediante variables (que no son otra cosa más que una representación de la memoria de la computadora) y sus comportamientos, que se expresan como instrucciones de alto nivel (que no dejan de ser una representación más abstracta de las instrucciones de bajo nivel de la máquina).

No obstante, la posibilidad de pensar los problemas y sus soluciones en términos de objetos y sus interacciones, es lo que permite escribir programas mediante la utilización de algunos de los procesos cognitivos que todas las personas usamos para comprender nuestro entorno e interactuar con otras personas.

Esto hace que, al menos en principio, pensar en términos de objetos sea más fácil para el común de la gente. Efectivamente, las posibles dificultades de comprensión yacen en el cambio del paradigma de la programación modular y estructurado al de la POO, y no tanto en el paradigma de programación orientada a objetos en sí mismo.

Estos procesos cognitivos antes mencionados son las abstracciones, es decir, los procesos mediante los que las personas representamos la realidad en nuestra mente.

Los comentarios están habilitados para que los lectores puedan participar en la corrección del libro, realizar preguntas puntuales o sugerencias. Todo comentario fuera de estos objetivos será eliminado. Por favor, tenga en cuenta lo siguiente:

- Cumpla las normas de etiqueta.

- Realice críticas constructivas.

- No sea redundante.