Ventajas y desventajas de la programación orientada a objetos

Los lenguajes de programación orientada a objetos como C++, Java y Visual Basic fueron desarrollados por informáticos para acelerar la programación y mejorar la calidad del software. Las técnicas de software OOP dividen los programas en bloques funcionales llamados objetos, lo que hace que las características que se necesitan con frecuencia, como los botones de control, la administración de bases de datos y las matemáticas, sean más fáciles de usar y compartir entre los programadores. Sin embargo, las ventajas vienen con compensaciones, como una mayor complejidad del software y un rendimiento reducido.

Mejor Productividad

Las técnicas de programación orientada a objetos imponen reglas a un programador que, a la larga, lo ayudan a realizar más trabajo; los programas terminados funcionan mejor, tienen más funciones y son más fáciles de leer y mantener. Los programas que no usan programación orientada a objetos tienden a ser grandes bloques de texto continuos, como capítulos muy largos de un libro. Cuando los programadores intervienen para cambiarlo, el texto eventualmente se vuelve desorganizado y más difícil de seguir. Por el contrario, los programadores de programación orientada a objetos toman objetos de software nuevos y existentes y los "unen" para crear nuevos programas. Debido a que las bibliotecas de objetos contienen muchas funciones útiles, los desarrolladores de software no tienen que reinventar la rueda con tanta frecuencia; más de su tiempo se dedica a hacer el nuevo programa.

Costos de programación más bajos

Especialmente para proyectos más grandes, OOP ayuda a reducir el costo de la mano de obra de programación. El personal que trabaja en un proyecto puede desarrollar su propia biblioteca de objetos de software, lo que permite a los programadores usar el trabajo de los demás fácilmente y reducir las horas necesarias para desarrollar programas. Con una calidad de software mejorada, los desarrolladores dedican menos tiempo a reparar programas que no funcionan correctamente, lo que reduce aún más los costos de mano de obra.

Curva de aprendizaje más pronunciada

Para dominar la POO, un principiante debe aprender conceptos nuevos y abstractos como polimorfismo -- reutilizar objetos mientras se les agregan nuevas características -- y encapsulación -- ocultar partes de los datos internos de un objeto para mejorar la seguridad -- ninguna de las cuales ideas se encuentran en estilos de programación más antiguos. No solo toma tiempo aprender estos conceptos, sino que pueden ser demasiado complejos para los aspirantes a programadores más jóvenes o para aquellos que programan solo ocasionalmente.

Software más lento

El software orientado a objetos puede implicar un código de mantenimiento adicional que no es necesario en otros lenguajes informáticos; la computadora debe ejecutar la programación adicional, lo que ralentiza el tiempo de respuesta de una aplicación. Para proyectos en los que la velocidad es importante, los programadores pueden optar por escribir las partes más críticas en cuanto al tiempo en lenguajes no OOP como ensamblador o C, reservando el código OOP para ventanas o botones, áreas en las que los objetos tienen una clara ventaja.