Los lenguajes de programación orientados a objetos, como C ++, Java y Visual Basic, fueron desarrollados por científicos 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 funciones que se necesitan con frecuencia, como los botones de control, la administración de la base 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 la complejidad del software adicional y el rendimiento reducido.

Codigo de computadora. Pantalla de color verde oscuro

Mejor productividad

Las técnicas de OOP imponen reglas a un programador que, a la larga, la 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 OOP tienden a ser bloques de texto grandes y continuos, como capítulos muy largos en un libro. Cuando los programadores intervienen para cambiarlo, el texto finalmente se desorganiza y es más difícil de seguir. Por el contrario, los programadores de OOP 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; dedican más tiempo 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, permitiendo que los programadores utilicen el trabajo de los demás fácilmente y reduciendo las horas necesarias para desarrollar programas. Con una calidad de software mejorada, los desarrolladores pasan menos tiempo arreglando programas que funcionan mal, reduciendo aún más los costos de mano de obra.

Curva de aprendizaje más pronunciada

Para dominar la OOP, un principiante debe aprender conceptos nuevos y abstractos, como el polimorfismo, reutilizar objetos al agregarles nuevas características y encapsular, ocultar partes de los datos internos de un objeto para mejorar la seguridad, ninguna de las cuales se encuentra en ideas anteriores estilos de programación Estos conceptos no solo requieren tiempo para aprender, sino que también pueden ser demasiado complejos para los posibles 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 limpieza adicional que no es necesario en otros lenguajes de computadora; la computadora debe ejecutar la programación adicional, disminuyendo el tiempo de respuesta de una aplicación. Para proyectos donde la velocidad es importante, los programadores pueden optar por escribir las partes más críticas en el tiempo en lenguajes que no son OOP, como ensamblador o C, reservando el código OOP para ventanas o botones, áreas en las que los objetos tienen una clara ventaja.