Yo de siempre, he programado mis pequeños programas y scripts usando programación modular / esctructurada. Se que para el programador, una vez acostumbrado a escribir el código en POO, luego le es mas fácil aun reutilizar el código escrito para otros programas, pero :
¿Hay alguna ventaja real en aprender (bueno en aprender si, que puedes usar java por ejemplo), o mejor dicho, hay alguna ventaja para usar la programación orientada a objetos para el programa mismo? ¿Existe algún tipo de optimización en el programa? O bien sea programado en estructurado o POO sale el mismo código nativo, igual de eficiente, seguro y tal... (pongamos, C y C++).
Me surgió la duda, hace un año reescribí un juego que escribí originalmente en C y lo pase, medio medio (pues no me acostumbraba del todo a POO) a C++.
Llevo unos días programando en python, pero la orientación a objetos apenas la uso, uso si acaso los métodos que ya vienen de clases que ya están hechas de la librería.
No es tanto cuestión del paradigma, porque bien lo puedes adaptar a programación estructurada, sino las ventajas que acarrea la POO, para ti y para los que vayan a trabajar contigo.
La POO me ha quitado muchos dolores de cabeza:
-Puedo escribir codigo a prueba de tontos: Esta ventaja me lada el encapsulamiento porque me permite ocultar del usuario finl campos que no deberia tocar. haciendo de mis programas muy resistentes a los fallos. Por ejemplo, imaginate que tengo una estructura de datos para manejar las muchas colasde prioridad que tiene la sucursal de un banco. Asi tendria que hacerlo en c:
/*Primero tengo que crear una libreria que manipule colas especificamente para tipos de datos ficha_cliente*/
#include "Cola.h"
typedef struct
{
Cola* Cola_VIP;
Cola* Cola_Platino;
Cola* Cola_TerceraEdad;
Cola* Cola_Otros;
Ficha_cliente* SiguienteEnCola;
}ColaPrioridad;
Luego defino unafuncion que por ejemplo dada la ficha del cliente, decida a que cola agragarlo, y otra que dadas las colas, decidir quien debera ser el siguiente en ser atendido, pero eso debo hacerlo manualmente cada vez que saco a un cliente de la cola, ademas si un mal programador hace mal uso de esta estructura, podria arruinar las colas, no liberar la memoria correctamente y un sin fin de otros errores.
En cambio si creo una clase que solo muestre al usuario de esta 2 metodos: Agregar_Cliente(FichaCliente* nuevo) y SiguienteCliente(); Este solo podra usar una de esas clases y no podra challarla ni intentarechar,me la culpaa mi por crear una mala libreria