Este artículo se centra en discutir las diferencias entre la programación orientada a objetos y la orientada a procedimientos.
Programación procedimental
La programación procedimental se puede definir como un modelo de programación que se deriva de la programación estructurada, basada en el concepto de procedimiento de llamada. Los procedimientos, también conocidos como rutinas, subrutinas o funciones, consisten simplemente en una serie de pasos computacionales a realizar. Durante la ejecución de un programa, cualquier procedimiento dado puede ser llamado en cualquier momento, incluso por otros procedimientos o por sí mismo.
Lenguajes utilizados en la programación procedimental:
FORTRAN, ALGOL, COBOL,
BASIC, Pascal y C.
Programación orientada a objetos
La programación orientada a objetos se puede definir como un modelo de programación que se basa en el concepto de objetos. Los objetos contienen datos en forma de atributos y código en forma de métodos. En la programación orientada a objetos, los programas de computadora se diseñan utilizando el concepto de objetos que interactúan con el mundo real. Los lenguajes de programación orientados a objetos son varios, pero los más populares están basados en clases, lo que significa que los objetos son instancias de clases, que también determinan sus tipos.
Lenguajes utilizados en la Programación Orientada a Objetos:
Java, C++, C#, Python,
PHP, JavaScript, Ruby, Perl,
Objective-C, Dart, Swift, Scala.
Programación procedimental frente a programación orientada a objetos
A continuación, se muestran algunas de las diferencias entre la programación de procedimientos y la orientada a objetos:
Programación orientada a procedimientos | Programación orientada a objetos |
---|---|
En la programación procedimental, el programa se divide en pequeñas partes llamadas funciones . | En la programación orientada a objetos, el programa se divide en pequeñas partes llamadas objetos . |
La programación procedimental sigue un enfoque de arriba hacia abajo . | La programación orientada a objetos sigue un enfoque ascendente . |
No hay especificador de acceso en la programación procedimental. | La programación orientada a objetos tiene especificadores de acceso como privado, público, protegido, etc. |
Agregar nuevos datos y funciones no es fácil. | Agregar nuevos datos y funciones es fácil. |
La programación procedimental no tiene ninguna forma adecuada de ocultar datos, por lo que es menos segura . | La programación orientada a objetos proporciona ocultación de datos para que sea más segura . |
En la programación procedimental, la sobrecarga no es posible. | La sobrecarga es posible en la programación orientada a objetos. |
En la programación de procedimientos, no existe el concepto de ocultación y herencia de datos. | En la programación orientada a objetos, se utiliza el concepto de ocultación y herencia de datos. |
En la programación procedimental, la función es más importante que los datos. | En la programación orientada a objetos, los datos son más importantes que la función. |
La programación procedimental se basa en el mundo irreal . | La programación orientada a objetos se basa en el mundo real . |
La programación procedimental se utiliza para diseñar programas de tamaño mediano. | La programación orientada a objetos se utiliza para diseñar programas grandes y complejos. |
La programación de procedimientos utiliza el concepto de abstracción de procedimientos. | La programación orientada a objetos utiliza el concepto de abstracción de datos. |
Código de reutilización ausente en la programación de procedimientos, | Reutilización de código presente en la programación orientada a objetos. |
Ejemplos: C, FORTRAN, Pascal, Basic, etc. | Ejemplos: C++, Java, Python, C#, etc. |