domingo, enero 22, 2006

La ley de Dollo y los sistemas informáticos

Estaba yo leyendo un libro de ensayitos relacionados con la ciencia, "El filantrópico doctor Gullotin y otros ensayos sobre la ciencia y la vida" de Harold J. Morowitz cuando me he encontrado con una ley de la evolución que no conocía y con su aplicación a la evolución de programas y sistemas. Se trata de la ley de Dollo y el enunciado según el libro sería
"La evidencia indica que los principales pasos evolutivos, una vez dados, nunca se desandan"
Como casi todas las leyes de la evolución tiene excepciones que pueden ser las que confirman la regla. Además en el propio ensayo se hace una mención a su validez en evolución de sistemas informáticos:
"La longitud de los programas(*) y sus peculiaridades crean estructuras que no pueden revertirse sin que el programa(*) quede destruido y haya que empezar de cero"

(*)Creo que decir "programas y sistemas" en lugar de "programas" da una mejor visión de como funcionan estos mecanismos en la realidad...

Y claro, leyéndolo se me hay ocurrido ejemplos de su aplicación en la tecnología. El triunfo de sistemas edificados sobre el triunfo de otros sistemas: C++ encima de C, servicios web y AJAX sobre HTTP...

Es curioso como esto tembién se puede extrapolar (con menor potencia) a sistemas más pequeños, a los sistemas que vamos contruyendo cada día. En general unos se edifican sobre los anteriores, los nuevos sobre los que se usan. Yo lo resumiría en una frase: "serás esclavo de tus éxitos" (y tendrás que mantenerlos) :)

La misma entrada en BP

jueves, enero 12, 2006

Cierra Tío Petros

Leo a través de pjorge que Tío Petros, un fantástico blog sobre matemáticas, cierra sus puertas. Alguna vez le he referenciado en mi bitácora de BP (en Ordenadores, paradojas y fundamentos de las matemáticas) y además me impulso a leer un muy buen libro "El tío Petros y la conjetura de Goldbach"

Se le va a echar de menos :(

martes, enero 03, 2006

"Un vistazo a C++0x" por Bjarne Stroustrup

Bjarne Stroustrup ha publicado un articulito para explicar como va a ser la siguiente versión de C++ (C++0x, porque no se sabe en que año saldrá, quizás en el 09) Se titula "A Brief Look at C++0x" y explica los principios de diseño que lo van a guiar y las características nuevas que va a tener tanto el lenguaje como la librería estándar (la mayor parte ya están disponibles con boost).
A mi me gusta particularmente lo de poder inicializar contenedores con una lista y el uso de auto para que el compilador deduzca el tipo.
Según el artículo C++0x tendría esta pinta:


template<class T> using Vec = vector<T,My_alloc<T>>;
Vec<double> v = { 2.3, 1.2, 6.7, 4.5 };
sort(v);
for(auto p = v.begin(); p!=v.end(); ++p)
cout << *p << endl;


Para más iformación, por ejemplo "C++0X: The New Face of Standard C++" de Danny Kalev

Actualización: Más información: en la portada de BP Un vistazo a C++0x, por Bjarne Stroustrup, Slashdot y OSNews

La misma entrada en BP