lunes, enero 28, 2008

El "nuevo" Dixan

Leyendo el artículo "Yes, design patterns are!" de Gabriel C. (en Gabriel's software development blog: Yes, design patterns are!), no he podido evitar reirme con un curioso comentario sobre el uso de los últimos "buzzwords", o palabras de moda. Según él:
I somewhat agree that people went overboard with the patterns and need to stop overusing them and get past the 25 patterns of the book. (Every book now seems to need “patterns” in the title... and “agile” too... if I have to title a book I would name it “Agile Patterns of Refactoring Driven Design with UML”).
Aprovechando la cita, diré que espero que algún día todo este tema de términos se asiente, que finalmente dispongamos de un cierto argot en el que cada palabra represente un concepto claro, lo más separado de los demás (¿no fue Descartes el que dijo algo parecido?). Todo esto porque primeramente espero que llegue el momento en el que los que nos dedicamos a esta apasionante profesión seamos capaces de discernir cuándo una nueva palabra hace referencia a un nuevo concepto, o es el mismo concepto disfrazado con otro suntuoso traje. Los trajes suntuosos son más vendibles y te hacen sentir que estás en la punta de la lanza tecnológica. Reconócelo: siempre has usado el Dixan, pero si usas el nuevo Dixan, ¡chico, la ropa es más blanca! El diseño evolutivo se llama ahora programar con balas trazadoras, por poner un ejemplo... En fin...

Señal y ruido en el código

Less noise -> less accidental complexity -> more meaning -> less maintenance cost.
Code with less noise

lunes, enero 21, 2008

Luces antárticas

¡¡ Magnífico video !!

Puedes tener una interpretación pre-copernicana, intuitiva, de día-a-día, y verás el Sol moverse. Y también puedes tener una interpretación post-copernicana, y hacer el esfuerzo de que el Sol está quieto (y si te fijas, las estrellas), y "sentirás" que la Tierra que ves fija se mueve. ¡ Alucinante !

viernes, enero 18, 2008

¿Útil o bello?

Have nothing in your house that you do not know o be useful, or believe to be beautiful.

The title is a quote by William Morris, a man with a deep interest in design and its relationship to our place in society. I think it applies to ideas as well as artifacts, and I must warn you that the following ideas fall under “beautiful” :-)

(A mathematical discussion about the halting problem follows).

Which brings me around to the title. Computer Science is a big field. Programming is a big field. Working for a living developing software is a big field. I believe you have to pick and choose, you can’t learn everything, you can’t try to pick up every new thing that comes along.

But I believe that if you follow Morris’ dictum, you will be effective and also deeply engaged. Do not settle for mediocre ideas. Accept only those things that are useful, beautiful or both. Do not settle for just beautiful of just useful. It is surprising how often useful things help you build beauty, and likewise how often beautiful things turn out to be useful in a different context.
(tomado de Have nothing in your house that you do not know o be useful, or believe to be beautiful")

El hombre de ciencia como hombre-masa

El encanallamiento no es otra cosa que la aceptación como estado habitual y constituido de una irregularidad, de algo que mientras se acepta sigue pareciendo indebido. Como no es posible convertir en sana normalidad lo que en su esencia es criminoso y anormal, el individuo opta por adaptarse él a lo indebido, hacinéndose por completo homogéneo al crimeno irregularidad que arrastra.
(José Ortega y Gasset, "La Rebelión de las Masas", XIV, ¿Quién manda en el Mundo?, 4).
Sólo la técnica moderna de Europa tiene una raiz científica, y de esa raíz le viene su carácter específico, la posibilidad de un ilimitado progreso"
(ibid. XII, La Barbarie del "Especialismo").
¿Realmente puede ser ilimitado el progreso de la técnica científica? ¿No es limitado en ningún sentido? ¿no tiene la técnica científica una verdad de destino (en palabras de Ortega) de tener que ser y no ser cualquier cosa que le plazca? ¿No está limitado el progreso técnico por lo que no se debe hacer? ¿No hay límites físicos o químicos? ¿No hay límites económicos? ¿No hay límites éticos?
[...] resulta que el hombre de ciencia actual es el prototipo del hombre-masa. Y no por casualidad [...] sino porque la ciencia misma [...] lo convierte automáticamente en hombre-masa
(ibid., XIV).

Argumenta Ortega que tras un periodo de unificación durante el s. XVII (Newton), sucedió un periodo de especialización del hombre de ciencia, necesario para el progreso de la ciencia, y le evita un conocimiento más amplio y unificado del Universo (este amplio conocimiento del Universo piensa Ortega que no es otra cosa que Ciencia, Cultura, Civilización Europea). Luego alega que ese hombre de ciencia encuentra virtud en desentenderse conscientemente de esa otra ciencia que no entra en su especialización.

A continuación presenta varias ideas importantes para el análisis de su pensamiento. La primera es que según él, se puede hacer avanzar la ciencia estudiando sólo en una estrecha sección de ella, sin conocer el resto de la ciencia. Que dicho avance se ha realizado también por científicos mediocres, a los que la ciencia moderna da cabida, y que dicha combinación (mediocres progresando en ciencia) se da por una característica de la ciencia, a la vez positiva y negativa: su mecanización, gracias a la solidez y precisión de sus métodos.
El investigador que ha descubierto un nuevo hecho de la Naturaleza tiene que sentir por fuerza una impresión de dominio y de seguridad en su persona.
Por ello el científico no puede ser categorizado como ignorante (porque sabe su fracción de ciencia) ni como sabio (porque no conoce más allá de ella). De ahí deduce (erroneamente en mi opinión) "que se comportará en todas las cuestiones que ignora, no como un ignorante, sino con toda la petulancia de quien en su cuestión especial es un sabio".

No creo que por todos estos motivos el hombre de ciencia se haya transformado en hombre-masa, sino más bien que esos motivos han favorecido la entrada en la ciencia del hombre-masa.

Este hombre-masa ha aprendido lo mínimo imprescindible para (mecánicamente, eso sí) ganarse la vida en ciencia. Es esa cerrazón mental a algo que no sea el mismo y su conocimiento lo que evita que el hombre-masa haga caso a otras áreas de la ciencia externas a la suya. Esta entrada sí está favorecida por el mecanicismo, y no al contrario.

miércoles, enero 02, 2008

El Valor de la Consistencia

Un buen post sobre el valor de la consistencia (me sorprende que no cite el capítulo sobre integridad conceptual en "The Mythical Man-Month", de Brooks). Al final lo recomiendo en su totalidad, y no sólo la cita de mi anterior post.

behind the times: The Value of Consistency

Consistencia

Consistency is Simplicity: A consistent approach to style and solutions can make code easier to maintain. - Ken Pugh, Prefactoring, 2005
(visto en behind the times: The Value of Consistency)