Confesiones de un autor con prisas

“My mama said you can’t hurry love
No, you’ll just have to wait
She said love don’t come easy
But it’s a game of give and take”
(“Can’t hurry love”, Phil Collins, 1982)

Las prisas por salir al mercado tienen, sin lugar a dudas, algunos riesgos asociados. Esos riesgos los sufrí en carne propia al publicar “C# 3.0 y LINQ“, que ya estaba en la calle incluso antes de la salida definitiva de Visual Studio 2008. Para lograr eso, por supuesto, hubo que probar todo el código del libro con la Beta 2 de .NET 3.5 y C# 3.0, que se suponía no cambiarían hasta la salida de sus versiones finales. Según se demostró, eso era mucho suponer…

En la edición original del libro, que yo sepa, salieron dos cosas que luego no compilaban en la versión definitiva de Visual Studio:

a) El primer “bug” era el uso de los métodos Add y Remove de DataContext (“LINQ to SQL”, p. 280). Después de la Beta 2, el equipo de producto decidió renombrarlos como InsertOnSubmit y DeleteOnSubmit, dejándome colgado :-). Yo todavía no estoy 100% convencido de que el cambio de nombres haya sido positivo.

b) En el capitulo “Iteradores” (p. 44), se dice que .NET 3.5 incluye una clase System.Numeric.BigInteger para la implementación de enteros muy grandes. Esto realmente iba a ser así, pero a última hora se decidió que la clase no estaba lista para el prime time y se la eliminó. Esta clase sí va a formar parte (parece 🙂 de .NET 4.0, así que es bastante probable que si alguien lee el libro en 2010 esté recibiendo información 100% correcta.

De la primera de estas dos “erratas” me di cuenta enseguida, la anuncié inmediatamente en donde quiera que pude, y fue subsanada en la segunda edición del libro. La segunda aún sigue ahí, yo mismo me di cuenta solo al cabo de cierto tiempo, y nunca nadie me la mencionado, lo cual me ha llevado a pensar que o bien la gente no se ha dado cuenta porque no necesita los métodos numéricos en su trabajo diario, o bien nadie se ha leido en profundidad el capítulo (o el libro :-). Claro, también está la opción “optimista” de que la gente sí se ha dado cuenta, pero son condescendientes porque comprenden que uno no se puede haber sacado el truco de la manga, sino que eso debió funcionar antes.

I think now, looking back (esta frase me recuerda la excelente película de Oliver Stone, “Platoon“), que la cantidad de problemas de este tipo en el libro ha sido mínima, y que valió la pena sacarlo rápidamente para que así cumpliera con su objetivo principal: permitir a los programadores de habla hispana ponerse rápidamente on track en las nuevas características que .NET 3.5 y C# 3.0 ponían a su disposición. Espero que usted, amigo lector, esté de acuerdo.


Pop/rock tip: Phil Collins ha disfrutado de una larga carrera, en la que ha sido favorito de varias generaciones. Después de varios años como baterista y cantante de Genesis (mi etapa preferida, claro), decidió independizarse y dar a su carrera un rumbo más comercial, lo que indudablemente se ha reflejado muy positivamente en sus bolsillos. Durante esta segunda etapa ha tenido múltiples números uno, entre los que cabe destacar “Against All Odds“, “Sussudio“, “Easy lover” (con Phillip Bailey, de Earth, Wind & Fire) o “Another Day in Paradise“. Personalmente, de su producción en solitario me quedo con la banda sonora de la película de Disney “Tarzán“, que habré visto más de 20 veces con mi hija… Por cierto, esa banda sonora la grabó no solo en inglés, sino también en un más que correcto españolcastellano y otros seis idiomas más.

 

Octavio Hernandez

Desarrollador y consultor en tecnologías .NET. Microsoft C# MVP entre 2004 y 2010.

8 comentarios en “Confesiones de un autor con prisas

  1. La verdad es que el .NET está saliendo de la niñez a pasos agigantados, máxime cuando desde algún parche han arreglado en unos casos, mejorado en otros, lo que yo una vez llamé bugs y tú “desafortunadas decisiones de diseño”, ¿recuerdas?

    A ver si se espabilan y sale en sincronía con los Windows y los SP y no nos hacen instalar runtimes de cientos de megas…

    Respecto a lo de los métodos numéricos… déjame ser RFOG al más puro estilo… ¿Pero tu te has creído que hay gente haciendo añalisis numérico en C# teniendo C++ y todas esas bibliotecas numéricas que hay y que tienen un rendimiento cercano al máximo. 😛

  2. Rafa,

    Efectivamente, lo suyo sería que la plataforma de desarrollo saliera junto con las versiones del OS y su SDK… Todo parece indicar que mi deseo para Reyes (http://geeks.ms/blogs/ohernandez/archive/2009/01/15/windows-7-sdk-beta-y-mi-deseo-para-reyes-2010.aspx) esta vez no se va a cumplir, pero esperemos que para la próxima…

    Sobre lo de los métodos numéricos, coincido contigo en que los “pro” y los que tratan con volúmenes de datos muy grandes utilicen las liberías nativas disponibles, pero, no obstante, incorporando clases de este estilo (BigInteger, Complex) posiblemente se abran puertas para algunos…

    Abrazo – Octavio

  3. Yo acabo de comprar tus 2 libros, estoy esperando desesperado que lleguen… gracias por la información que cambió en la versión final.

    En los 80 tal vez hubiera tenido un inconveniente sacar el libro muy anticipadamente, pero ahora donde uno puedo entrar a la página del autor e informarse de primera mano sobre cualquier cambio o consideración a tener, me parece correcto que seas un “autor con prisa”… total, si no tienes mucha prisa el libro termina saliendo cuando ya esta en beta la siguiente versión… todo va muy rápido, por suerte.

    saludos

    pd: lulu tiene un delivery muy caro, casi como comprar 3 libros

  4. Arturo,

    Ante todo, muchas gracias por comprar los libros, espero sinceramente que te sean útiles.

    Efectivamente, tienes razón en lo que dices sobre lo rápido que van las cosas.

    El problema de los portes a Latinoamérica trajo de cabeza a la editorial durante bastante tiempo. No sé si Lulu.com es la mejor solución, pero sí sé que consideraron bastantes opciones…

    Saludos – Octavio

  5. Hola Octavio,

    Yo sí reparé en los fallos, pero no le dí una importancia especial.

    Me llamó mucho la atención uno de los fallos que mencionas, (en concreto al tema relativo a BigInteger), pero soy de los condescendientes que sé que ese fallo se debió a que preparaste el libro en un momento determinado como lo hice yo también tal y como explico abajo.

    Los que sabemos por experiencia propia, escribir libros nos lleva a veces a encontrarnos con estos fallos no deseados que no son de vital importancia a la hora de extraer de un libro el jugo correspondiente, pero que dan rabia indudablemente.

    En mi caso, tu libro lo sigo como punto de apoyo ante un problema o impedimento que me encuentre y no como un dogma, de ahí que tampoco le de una importancia más o menos alta a las posibles erratas que encuentre. :-))

    Aún y así, que levante la mano quien habiendo escrito un libro, no se encuentre algún tema relativo a lo que comentas.

    Como hay que sincerarse, comentaré que en mi caso, el último libro que he escrito el año pasado, “Programación con Visual Basic 2008” de Anaya, tiene un capítulo arriesgado que es el de LINQ y Entity Framework, cuando éste estaba en versión Beta. Aunque en el libro indico que ese capítulo está escrito con una versión Beta y que puede cambiar, las cosas que mencionaba no tenían porqué cambiar… pero cambiaron… no muchas pero sí algunas… así que no te preocupes, que esas cosas… lamentamente pasan,… aunque no es nuestro deseo indudablemente. :-/

    Abrazotes fenómeno.

  6. Como he leído ya los dos libros, y no tengo nada que objetar, solo te diré que “Tarzan” también me ha tocado disfrutarla más de 20 veces con mi hija y si mañana quiere volveremos a verla.
    Abrazo,
    Carlos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *