Tag Archives: Languages

Lenguajes, estadísticas y tonterías

Hay muchas maneras de conocer la popularidad de un lenguaje de programación, o una tecnología en particular. Me encantan este tipo de historias a pesar de su dudosa fiabilidad, al menos cuando se toman sus valores absolutos, sin una interpretación detrás. Me entretengo más que un tonto con un lápiz con servicios de este tipo. Hay unos cuantos, comentaré los que conozco y más útiles pueden resultar:

  • El abusurdo índice Tiobe (que cada vez me lo creo menos).
  • Google Trends, el cual puede ser usado para cualquier cosa en general, aunque es difícil de usar pues muchas veces términos de lenguajes o tecnologías significan algo más en el mundo real (Java es una isla y un tipo de café, ruby es una piedra preciosa, python es una serpiente o una referencia a los Monty Python, etc…).
  • Indeed.com sitio web estadounidense de búsqueda de empleo que ofrece un servicio de tendencias en los trabajos, tanto por valores absolutos como relativos. El más simple y potente de usar.

Jugando un poco, me he encontrado con gráficos bastante curiosos. Nadie duda que en estos momentos Java es lo más usado, pero creo que tampoco nadie dudará en que estamos ante un auge de los lenguajes dinámicos. Veamos datos absolutos:
Java, perl, php, python, ruby chart absolutes values
La primera posición de Java no sorprende, la segunda de perl, a mi al menos, tampoco; luego tenemos php por encima de python y ruby. Los datos son bastante usuales. Recordemos que estamos antes tendencias de ofertas de trabajo, es decir el uso de lenguajes en el mundo empresarial. Pero ahora veamos sus valores relativos (es decir, su crecimiento y tendencia).

Por la gráfica anterior, podemos deducir que los valores de Java y Perl son prácticamente iguales en el tiempo, sinónimo de su madurez, pero ¿qué pasa con php, python y ruby?:
Java, perl, php, python, ruby chart relatives values
¿De quién es esa línea que va por el 550%? Ruby. Curiosa situación, quizá el apoyo de Sun tenga algo que ver en todo esto. Quizá…

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.