Programación orientada a objetos frente a programación procedimental
La Programación Orientada a Objetos (POO) y la Programación por Procedimientos son dos paradigmas de programación. Un paradigma de programación es un estilo fundamental de programación de computadoras, y difieren en la forma en que se representan los diferentes elementos del programa y cómo se definen los pasos para resolver problemas. Como sugiere el nombre, OOP se enfoca en representar problemas utilizando objetos del mundo real y su comportamiento, mientras que la Programación de procedimientos se ocupa de representar soluciones a problemas utilizando procedimientos, que son colecciones de código que se ejecutan en un orden específico. Hay lenguajes de programación que soportan aspectos clave de OOP (llamados lenguajes OOP), de procedimiento (llamados lenguajes de procedimiento) y ambos. Pero una cosa importante a tener en cuenta es que OOP y Procedural son dos formas de representar los problemas a resolver, y no importa qué lenguaje se use. En otras palabras, los lenguajes de programación orientada a objetos se pueden usar para la programación de procedimientos, mientras que los lenguajes de procedimientos a veces se pueden usar para la programación orientada a objetos, con algo de esfuerzo.
La programación procedimental es una forma de programar mediante la identificación del conjunto de pasos para resolver un determinado problema y el orden exacto en que deben ejecutarse para alcanzar el resultado o estado deseado. Por ejemplo, si desea calcular el saldo de cierre de fin de mes para una cuenta bancaria, los pasos requeridos serían los siguientes. Primero, adquiere el saldo inicial de la cuenta y luego reduce todos los montos de débito ocurridos durante el mes. Después de eso, agrega todos los montos de crédito ocurridos durante el mes. Al final del proceso, obtendrá el saldo de cierre de mes de la cuenta. Uno de los principales conceptos de la Programación por Procedimientos es la llamada a Procedimiento. Un procedimiento también conocido como subrutina, método o función contiene una lista ordenada de instrucciones a realizar. Un procedimiento puede ser llamado en cualquier momento durante la ejecución por cualquier otro procedimiento o por sí mismo. Ejemplos de lenguajes de programación de procedimientos son C y Pascal.
En OOP, la atención se centra en pensar en el problema a resolver en términos de elementos del mundo real y representar el problema en términos de objetos y su comportamiento. El objeto es una estructura de datos que se parece mucho a algún objeto del mundo real. Los objetos contienen campos de datos y métodos que representan atributos y comportamiento de objetos del mundo real. Hay varios conceptos importantes de programación orientada a objetos, como la abstracción de datos, la encapsulación, el polimorfismo, la mensajería, la modularidad y la herencia. Algunos lenguajes OOP populares son Java y C. Sin embargo, también se pueden usar para realizar Programación por procedimientos.
La diferencia clave entre OOP y la Programación por procedimientos es que el enfoque de la Programación por procedimientos es dividir la tarea de programación en una colección de variables y subrutinas, mientras que el enfoque de OOP es dividir la tarea de programación en objetos, que encapsulan datos y métodos. La diferencia más notable podría ser que, mientras que la Programación por procedimientos usa procedimientos para operar directamente en las estructuras de datos, OOP agrupará los datos y los métodos para que un objeto opere con sus propios datos. Cuando se trata de la nomenclatura, el procedimiento, el módulo, la llamada a procedimiento y la variable en la Programación procedimental a menudo se denominan método, objeto, mensaje y atributo en OOP, respectivamente.