Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

mig21 (7781)

mig21
  reversethis-{moc.liamg} {ta} {pb12gim}
https://twitter.com/yapw

Hola, soy Miguel. Algo que pueda ser relevante aquí... Uhmm... Me gusta escribir en mi bitácora de BP [barrapunto.com] y en su clon en blogspot: Yet Another Programming Weblog [blogspot.com]
Me gustaría que Barrapunto fuese un sitio con más discusiones técnicas y trato de hacer lo que está en mi mano. De todos modos, también me gusta leer flames ;)

No creo que te interese, pero en Lecturas aleatorias [blogspot.com] dejo registro de los libros que voy leyendo...

Esta es toda mi información de usuario :)

Down Kill Up Publicidad

Bitácora de mig21 (7781)

Martes, 10 de Abril 2007

Orientación a objetos: algunas críticas

09:53h.
Programación
Vía Reddit me he encontrado con un escrito, intencionadamente provocador diría yo, de Joe Armstrong (de nuevo): Why OO Sucks. No obstante me gustaría resaltar los argumentos, que dan que pensar y para eso estamos aquí:
  • 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:
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Buena ...

    (Puntos:2)
    por Robert h Quinn (17819) el Miércoles, 11 Abril de 2007, 11:12h (#898232)
    ( Última bitácora: Miércoles, 28 Diciembre de 2011, 00:46h )
    .,.. entrada, me ha gustado.
  • Interesante...

    (Puntos:1)
    Una de las cosas que me gusta es aprender nuevos lenguajes. En cuanto descubrí otros paradigmas, me di cuenta de que la POO no es ni mucho menos la panacea.

    Para mí la mayor ventaja es que limpia el "namespace", permitiendo que múltiples clases utilicen los mismos nombres para los métodos. Lo demás, sí, está bien, pero desde que descubrí Haskell cada día prefiero un poco más la programación funcional ;)

    En cuanto a los lenguajes dinámicos, desde que intenté escribir un programa multihilo en Python dejaron de gustarme. Están bien para hacer cosillas rapidamente, pero prefiero que los errores sean descubiertos en tiempo de compilación, a que de repente un hilo pete porque ha desaparecido un método, y no me avise...
    --

    Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!