- Las estructuras de datos y las funciones no deberían ir juntas:
Esto es una característica en principio ventajosa de la POO, pero puede ser una servidumbre, además de que no deja aprovechar algoritmos genéricos al estilo de C++ con la STL. No obstante hay que decir que variaciones de la programación orientada a objetos permiten el Duck typing, como en python o ruby que favorece la posibilidad de hacer algoritmos más genéricos... - Todo debe ser un objeto:
Relacionada con la anterior, todo dato debe ser un objeto y tener la parafernalia necesaria para serlo. En esto los lenguajes van mejorando, creo yo, reduciendo lo necesario para ser objeto, a veces haciéndolo implícito. - La estructura de datos está dispersa por todos lados:
Y no le falta razón. Esto es particularmente importante si las estructuras de datos van a ser usadas para hacer la interoperabilidad entre sistemas heterogéneos - Los objetos tienen un estado privado:
Esta es una crítica muy desde la perspectiva de la Programación funcional (bueno, las otras también...) pero muy interesante. La primera vez que oí eso de que en Erlang (por ejemplo) no se podía reasignar variables me resultó muy chocante, pero ver hacer las cosas de un modo diferente es muy ilustrativo a veces... Es el "truco" de estos lenguajes de no usar el estado para evitar efectos laterales, muy relevante también para programación concurrente.
Mi opinión sobre el tema ya la expresé en ¿Ha muerto la orientación a objetos?: Conceptos como encapsulamiento, interfaces, reusabilidad pueden seguir siendo útiles, pero hay que evaluar el impacto positivo, no sea que matemos moscas a cañonazos...
Y ahora una serie de enlaces sobre el mismo tema:- Object-Oriented Considered Harmful
- OOP Is Much Better in Theory Than in Practice Una crítica desde el punto de vista del programador de a pie, comentado en lambda the ultimate y The Server Side
- ¿Porque ARC no es especialmente orientado a Objetos? por Paul Graham
- Listado de críticas a la orientación a objetos en dmoz que enlaza a un muy interesante Objects Have Failed de Richard P. Gabriel
- Software Reusability: Myth Or Reality? Una de las supuestas ventajas de la OO es la reusabilidad, pero ¿es posible conseguirla?
- Y por fin algo por contrastar: Invasion Of The Dynamic Language Weenies como respuesta a los fans forofos de los lenguajes dinámicos...
"Orientación a objetos: algunas críticas" en barrapunto
No hay comentarios:
Publicar un comentario