Ideas + Ingeniería del Software
Los ordenadores son, esencialmente, deterministas
Marzo 22nd, 2009 - [Enlace local]
Los ordenadores, fallos hardware aparte, son autómatas deterministas: dado un estado inicial, una serie de operaciones llevan siempre al mismo resultado.
Una conclusión de esto es que no hacen "cosas raras". Puede haber cosas mal hechas, claro está, pero sus efectos son predecibles.
Un caso paradigmático de esto son las librerías. En todas hay bugs, claro, pero pocos. Si algo "no funciona" revisa antes tu código. Las librerías de código abierto son usadas por millones de desarrolladores, y revisadas por gran parte de ellos (¿aún no has asociado las fuentes a los binarios en Eclipse? ¿A qué esperas?). Sin embargo, tu código es nuevo y sólo tuyo, probablemente el problema esté ahí.
Cuando llamamos a un SAT lo primero que nos preguntan es ¿está enchufado? Sí, es irritante, pero, ¿compruebas que tu código lo está? El determinismo hace que para solucionar la mayor parte de los errores en el código no sea necesario ni pensar. Símplemente un análisis metódico desde el error nos conduce al error: vete a la línea que falla y vete "tirando del hilo". El problema aparecerá solo.
PS: ¿Ah, que estás utilizando librerías propietarias, sin el código? Mmm... ¡Buena suerte!