lunes, enero 23, 2006

La reutilización está sobrevaluada

Me encontré esta gema en el sitio de David Heinemeier Hansson (creador de Ruby on Rails): La reutilización está sobrevaluada. Dice él:
Reuse only works well when the particular instances are so similar that you're willing to trade the small differences for the increased productivity
¡Bravo! Demasiadas veces he visto sistemas casi triviales con decenas de módulos de configuración, seguridad, conexión remota, lectura y conversión de XML, etc, sólo porque los programadores han decidido reutilizar todo lo posible. A esto, David agrega:
When you try too hard to reuse, you'll often end up with a frankenstein of slightly different approaches and philosophies that creates rough, unpolished surfaces that simply can't make you happy because it can't be beautiful.
En nombre de la reutilización se han cometido ya demasiados crímenes. Yo creo que para diseñar módulos realmente reutilizables hacen falta dos cosas: una gran mente, capaz de abstraer y diseñar una interfase que no tenga ni más ni menos que lo suficiente, y mucha práctica escribiendo sistemas.
El extremo opuesto tampoco es bueno; de hecho es mucho peor. La delgada línea que divide
la reutilización del copy-paste debería estar marcada, como nos dice David, por el aumento en productividad.
Donde ya me pierdo es en la aseveración de que en lenguajes dinámicos como Ruby se hace mucho menos atractiva la reutilización porque el costo de producir código nuevo es demasiado pequeño. Quizás esto aplique para pequeños sistemas. No lo sé. Aún no conozco Ruby tanto como para dar una opinión. Pero he aquí una lectura interesante al respecto, y la respuesta es bastante prometedora.