Me pone un debugger con patatas, por favor

He leído este post donde un desarrollador que ha asistido a una charla de Jim Weirich (creador de rake) habla sobre los debugger en general y sobre el poco soporte de un debugger en ruby en particular. Parece ser que algunos piensan que no tener soporte para un debugger es una feature:

Asking why Ruby has weak debugger support is like asking why a dolphin doesn’t have gills. Ruby has weak debugger support because Ruby programmers shouldn’t be using a debugger. Ruby supports TDD and BDD better than any other language except possibly Smalltalk. Debugger support is for languages that you can’t run tests against gracefully.

WTF? ¿Un debugger es para lenguajes en los que no se pueden ejecutar tests fácilmente? Una leche. Un debugger es una herramienta para el desarrollo, punto. Si tu lenguaje favorito resulta que no tiene (aunque ruby tiene), no te inventes teorías o intentes convencer al resto de programadores de otros lenguajes (que si tienen debuggers) que tienes razón. En definitiva, no me llores. Lógicamente ha habido muchas respuestas frente a argumentos tan inconsistentes y frágiles, como la estupenda respuesta cuando tus herramientas apestan….

La ausencia de un debugger no es una característica, es una importante y significativa carencia en tus herramientas

También hay que reconocer que usando TDD, o simplemente pruebas, deberíamos anticiparnos y detectar bugs, y un debugger debería de ser innecesario. Pero prefiero tener la opción de poder usar uno cuando quiera, que su carencia. El ansia que es muy mala, cuanto más, mejor, ¿no?.

Actualización Abril 2008: Meses después se podría considerar que hay herramientas más que suficientes como para debuggear aplicaciones ruby con bastante facilidad. No tan bien como lenguajes como C o Java, pero si decéntemente.

4 Thoughts on “Me pone un debugger con patatas, por favor

  1. Hola:

    Estoy de acuerdo contigo. Errar es humano y para eso tenemos debuggers.

    Tenía un compañero de la otra escuela. Decía que deberían quitarnos el debugger, porque así nos obligaban a ser más cuidadosos en la programación, simplemente por miedo a tener que depurar luego los errores sin debugger. Siguiendo la misma teoría, supongo que también deberíamos evitar que probaramos nuestros programas. Deberían entregarse, sin haberlos ejecutado ni una sola vez, al cliente. Y ya puestos, ¿para qué compilarlos?. Ni una sola compilación hasta el momento de entregar. ¡¡ Así seguro que somos muy, muy, muy cuidadosos por miedo a que se nos caiga el pelo luego !!!.

    Se bueno.

  2. El depurador (si, lo digo en español!) es una herramienta indispensable, pero usarlo en exceso puede que traiga malas consecuencias. Por ejemplo en mi trabajo pusimos una herramienta en producción y como no hay depurador pues nos volvimos locos. La mejor combinación es usar depurador + logs 😀

  3. No, la mejor combinación es usar tests, los logs son para saber qué hace la aplicación en producción, no deberían de tener ninguna relevancia en tiempo de producción. El debugger cuanto menos se use mejor, pues trae muy malas costumbres, pero de eso a no tener la posibilidad de no usarlo hay un trecho.

  4. Eddie on 25 October, 2007 at 3:45 said:

    Lo puse en mi RSS a tu blog, muy bueno. Continua con el!, me gustaria si podrias comentar como se esta pinchando un poco la burbuja de Ruby y Ruby on Rails. Soy fanatico de PHP (CGI, CLI, y GTK) y Python , aparte de ganarme la vida como Cobolero…..:(

Post Navigation