Re: Hablar Todavía Es Gratis: Ni Idea Sobre La POO
Hola Fabian.
Por cierto.Hace tiempo que no paso por tu blog.Me he quedado con las ganas de ver algún ejemplo de como mejora
la POO a la PP. O que habrá cosas que se harán mejor con un Paradigma que con otro.
Es que estuve reflexionando sobre cual sería un buen enfoque para comunicar las ventajas de la POO y cómo sacarle provecho (a un nivel de principiante/intermedio), teniendo en mente lo que yo percibo que es el perfil del usuario promedio de
gambas, y obtuve como conclusión que debía revisar el abordaje y plantear diferentes alternativas que arrojen un poco más de luz sobre cual sería un abordaje aceptable.
Así que me plantee diferentes enfoques que sintetizan las ideas de diferentes abordajes y el resultado inicial fue:
Gambas mediante juegos.
Revisé seriamente cual sería el abordaje pedagógico-didáctico adecuado y comprendí que debería ser:
- Motivante para la mayoría de los posibles lectores: por lo que acudí al aspecto lúdico como el medio principal (pero no el único) para motivar al
lector.
- Basado en proyectos (PBL): para que el lector encuentre que el abordaje le resulta desafiante y entretenido, pero no tan desafiante como para producir el efecto contrario.
- Basado en metáforas: existen experiencias previas importantes que indican que la enseñanda basada en metáforas es muy beneficiosa en la enseñanza de la informática y de la programación. De hecho, en nuestro ámbito las metáforas están por todas partes y gente como Kent Beck propone en la metodología XP que gran parte de la arquitectura de un sistema emerge a partir de la metáfora con la que se aborda el desarrollo. Por otra parte varios de los referentes mundiales de la tecnología de objetos están de acuerdo que usar determinadas metáforas para comunicar fielmente las ideas, filosofía y cultura de la programación orientada a objetos constituye una gran ventaja, especialmente si se considera que los abordajes propuestos anteriormente han creado una enorme confusión (diseño data-céntrico, RAD, UML, visión de la POO como técnicas de implementación, etc).
Así que en ello es en lo que estoy trabajando ahora. El problema más importante que tengo por delante es que comunicar fielmente las ideas sobre proceso de desarrollo, análisis, diseño e implementación que propone la programación orientada a objetos requeriría varios volúmenes, varios expertos y probablemente
gambas no sería la mejor herramienta para ello.
De modo que debo seleccionar qué comunicar considerando mis capacidades y limitaciones, nuestra comunidad, nuestra herramienta, la imposibilidad e inconveniencia de extenderme demadiado, entre otras cosas.
Si algo hace la POO es contribuir a mejorar la PP.
Sí, pero no sólo al nivel de la implementación, no sólo al nivel del lenguaje, sino abarcando también todo el proceso de desarrollo: la comunicación con el usuario, la captura de requerimientos, el análisis, el diseño, la implementación, la puesta en producción y el mantenimiento.
(Creo que con ejemplos es la mejor manera de ver las cosas). Es lo que le haría falta a ellos.
Diría que es mejor para todos.
Hace un tiempo, el ultimo tema que estuve leyendo en un libro de metodología fue la recursividad
,tema que también parece haber sido criticado en el mundo de la programación. De ser recursivo a iterativo.
Lo mejor es saber cuando y donde utilizar algo.Mas que criticarlo.Puedes tener una forma de hacer un programa,
pero eso no quita que puedas mejorarlo aprendiendo otras formas.
Respecto de la recursión tal vez el aspecto que más se criticó siempre es que "afecta al rendimiento" del programa. Pero que afecte al rendimiento del programa es una cuestión más bien de implementación, no de análisis y diseño.
Los lenguajes funcionales fomentan el uso de la recursividad mucho más que los lenguajes imperativos y resulta que existen muy buenos compiladores que reducen enormemente esos problemas de rendimiento, incluso reemplazando la implementación recursiva que escribe el programador por su equivalente iterativa, cuando ello es posible. Así el programador puede beneficiarse de la elegancia y concisión de una solución recursiva sin ver afectado el rendimiento.
De todos modos, como bien dices la recursión a veces no es la mejor solución, a veces una solución iterativa puede ser más clara, más fácil de comprender o más conveniente por otros motivos, pero generalmente es la excepción, no la regla.
Pero ello no se puede extrapolar a otros cuestionamientos, en el caso de la POO puede que un programador no encuentre justificado aprender POO si sólo realiza programas pequeños, para los que conoce ampliamente sus herramientas y proceso de desarrollo, cuenta con bibliotecas muy ricas y ampliamente probadas. Pero ello no significa que la POO no sea más adecuada que la PP incluso para desarrollar programas pequeños o con ciertas características o dominio (programas de sistemas, utilitarios, financieros, juegos, etc), sino que puede no ser adecuada para ese programador en su situación actual.
No obstante, sí que hay casos en los que un paradigma se ajusta mejor al problema a desarrollar, pero muchas veces se confunde esto con las características de un lenguaje determinado y otras circunstancias no directamente relacionadas.
Saludos.