Una reflexión sobre el puzzle de la oferta de ilitia
Ante todo, mi felicitación a ilitia por lo que considero, como expresé en el post de Luis Ruiz al respecto, una excelente idea. Y el puzzle en sí mismo es, a mi modo de ver, genial.
Reflexionando un poco sobre el asunto, me he dado cuenta de que me equivoqué al afirmar allí que había que tener idea de C# 3.0 y LINQ para atacarlo. Para resolver el puzzle, en principio, bastaban los iteradores y la sentencia yield, disponibles en C# desde el año 2005:
public static class ExtensionesChuckNorris
{
public static IEnumerable<int> To(this int a, int b)
{
for (int i = a; i < b; i++) yield return i;
}
public static IEnumerable<int> DownTo(this int a, int b)
{
for (int i = a - 1; i >= b; i--) yield return i;
}
}
Esto me ha vuelto a traer a la mente una reflexión de mi buen amigo Rodrigo Corral, que me decía hace unos meses que según su experiencia mucha gente que programa hoy en VS 2005 y C# aún no conoce características introducidas en C# 2.0 como las antes mencionadas. Aquello fue lo que me dio la idea de incluir en el libro "C# 3.0 y LINQ" cuatro capítulos (métodos anónimos, genéricos, iteradores y tipos valor anulables) que explicaran esos conceptos como antesala de la presentación de las nuevas características que ahora se incorporan al lenguaje.
Desde aquí mi exhortación a los programadores de C# a que se esmeren en conocer en anchura y en profundidad el lenguaje que utilizan; no hay nada en él que resulte superfluo o inútil. De la misma manera, exhorto a los directores y jefes de proyecto a que potencien ese conocimiento en sus programadores; algo que sin dudas se revertirá en múltiples beneficios para la causa común.