Curso POO. ¿Por qué surge la POO? Vídeo 2
Introducción al Curso de Programación Orientada a Objetos
Mensaje para los Aprendices de Programación
- El curso es un complemento para quienes están iniciando en la programación, ofreciendo apoyo adicional.
- Se observa que muchos estudiantes sienten desesperación al no entender conceptos o resolver ejercicios, lo que puede llevar a la frustración.
- La búsqueda de soluciones rápidas y fáciles es común entre los alumnos, similar a la idea de encontrar una "panacea" para aprender programación sin esfuerzo.
- Se menciona la película "Matrix" como una metáfora sobre el deseo de aprender rápidamente, haciendo referencia a cómo Neo aprende kung fu instantáneamente.
- El instructor aclara que no existe una solución mágica para aprender a programar; se requiere trabajo duro y dedicación.
La Realidad del Aprendizaje en Programación
- Para superar las dificultades iniciales en programación, es necesario investigar, leer y practicar constantemente.
- Comparte una analogía entre aprender a programar y aprender a conducir: ambos requieren práctica real detrás del volante o teclado.
- La experiencia práctica es crucial; solo se puede afirmar que uno sabe programar después de muchas horas de codificación y resolución de problemas.
Evolución hacia la Programación Orientada a Objetos
Contexto Histórico
- En las décadas de 1950 y 1960 predominaba la programación estructurada, un enfoque que tenía limitaciones significativas.
- Se presenta un ejemplo del lenguaje BASIC, utilizado por el autor en sus inicios con computadoras antiguas como el Spectrum.
Problemas con la Programación Estructurada
- La programación estructurada ejecuta instrucciones secuencialmente, lo cual puede ser problemático en aplicaciones más complejas.
- A medida que los programas crecían en tamaño y complejidad, surgieron serios inconvenientes debido a bloques largos de código sin modularización adecuada.
¿Cuáles son los problemas de la programación estructurada?
Problemas con el código espagueti
- En la programación de aquella época, era común que los programadores cobraran por línea de código, lo que resultaba en aplicaciones con 15.000 a 16.000 líneas, complicando la localización de errores.
- Los bloques largos de código generaban el conocido "código espagueti", donde seguir el flujo lógico del programa se volvía complicado debido a múltiples anidamientos.
- La analogía del plato de espaguetis ilustra cómo un solo hilo puede entrelazarse con otros, dificultando la comprensión y depuración del código.
- Las instrucciones como "go to" complicaban aún más el seguimiento del flujo del programa, haciendo que localizar fallos fuera tedioso y frustrante.
- Un error en las primeras líneas podía hacer que toda la aplicación fallara, lo que representaba un gran desafío para mantener y escalar las aplicaciones.
Dificultades en mantenimiento y escalabilidad
- La programación estructurada presentaba dificultades significativas para mantener y depurar aplicaciones complejas debido a su estructura rígida.
- Agregar nuevas funciones a programas antiguos se convertía en una tarea monumental, especialmente si no era el mismo programador quien había creado originalmente la aplicación.
- A medida que las tecnologías evolucionaban, los problemas asociados con la programación estructurada se volvían más evidentes y difíciles de manejar.
La necesidad de un cambio: Programación orientada a objetos
- Ante estos desafíos, surgió un nuevo paradigma: la programación orientada a objetos (POO), buscando reinventar tanto la forma como el pensamiento detrás de la programación.
- La POO propone trasladar conceptos del mundo real al ámbito digital para facilitar una mejor comprensión y manejo del código por parte de los programadores.
- Se busca representar objetos cotidianos (como sillas o coches) dentro del código para hacerlo más intuitivo y accesible para quienes desarrollan software.
Conceptos clave en POO
- Cada objeto tiene propiedades (características descriptivas) y métodos (comportamientos), permitiendo una representación más clara y organizada dentro del código.
Introducción a la Programación Orientada a Objetos
Conceptos Básicos
- La programación orientada a objetos se basa en objetos, que tienen propiedades como color, temperatura, ancho y alto. Estas propiedades describen las características del objeto.
- Los métodos son acciones que un objeto puede realizar. Por ejemplo, un coche puede acelerar, frenar o girar; cada una de estas acciones es un método.
- Las clases son fábricas de objetos. Usando el ejemplo del coche, la clase sería la fábrica donde se produce el coche, mientras que el objeto es el coche específico con sus propiedades y métodos.
Pilares de la Programación Orientada a Objetos
- Existen cuatro pilares fundamentales en la programación orientada a objetos: herencia, abstracción, encapsulamiento y polimorfismo. Estos conceptos son esenciales para entender cómo funcionan los objetos en programación.
- Aunque términos como polimorfismo y encapsulamiento pueden parecer complejos al principio, representan ideas sencillas que también podemos observar en nuestra vida diaria.
Aplicaciones Prácticas
- La programación orientada a objetos busca replicar lo que observamos en el mundo real dentro del código. Esto implica crear clases, objetos, propiedades y métodos que reflejen esas realidades.
- A medida que se crean múltiples objetos y clases, se pueden aplicar los conceptos de herencia y abstracción para gestionar mejor las propiedades y comportamientos de esos objetos.
Conclusión
- Se ha introducido una visión general sobre la programación orientada a objetos. En futuros vídeos se profundizará más en estos conceptos fundamentales para su comprensión completa.