Microsoft tuvo que borrar un tuit en el que felicitaba 2022 en lenguaje C#: el código era una chapuza

La cuenta tuitera oficial del Windows Dev Center de Microsoft, el sitio web que aúna noticias y recursos para programadores, decidió dar la bienvenida al nuevo año 2022 con un simpático tuit que mostraba el código de un breve programa que se encargaría de felicitarnos el nuevo año desde la consola una vez que el PC que lo ejecuta detectara el cambio de año.

Podríamos pensar que fue sólo uno más de los miles de tuits que, desde cuentas corporativas, buscaban destacar lanzando un tuit ingenioso a su público. Pero el tuit adolecía de un problema: que el código era una chapuza, a todos los niveles.


Windows Developer Mistake

El tuit de marras, ya desaparecido.

Y claro, eso no es algo que debería verse en una cuenta de Microsoft dirigida a desarrolladores de software y menos a la hora de manejar código en #C, un lenguaje creado y desarrollado por la propia Microsoft. De modo que el responsable de la cuenta optó por borrar el tuit cuando empezaron a llegar las primeras respuestas de los usuarios.

Un código con más errores que líneas

Decimos que es una chapuza, en primer lugar, porque tal y como está planteado, mostraría la felicitación por el nuevo año durante el primer segundo del año —bien—, pero a partir del segundo siguiente —cuando dejara de cumplirse la condición establecida en el IF— empezaría a mostrar de nuevo un mensaje indicando que todavía estamos en 2021 —según establece el ELSE del bucle—.

En segundo lugar, el uso del método ToString(), aunque funcional en este caso, desde luego no es el óptimo a la hora de comparar fechas entre sí: ¿por qué convertir el tipo de dato DateType en una cadena de texto para compararla con otra fecha, cuando DateType es perfectamente usable en este contexto?).

Además, el propio formato de la fecha de referencia (la del primer segundo de 2022) está mal expresado: al convertir el DateType a String, el lenguaje C# no inserta un ‘0’ antes de los números de una sola cifra, lo cual hace que el 01/01/2022 jamás pudiera existir —sí lo haría el 1/1/2022—, de modo que el código del tuit jamás detectaría el cambio de año.

Lo explica Scott Hanselman, él mismo desarrollador del Web Platform Team de Microsoft, en un vídeo colgado hace unas horas en su canal de YouTube:

Fecha

De cualquier modo, este error indica una tendencia: como ha desvelado también en estos días el desastre del ‘Efecto 2022’ de Microsoft Exchange, los desarrolladores de Microsoft parecen tener la costumbre de gestionar los formatos de fecha de formas ‘creativas’ y potencialmente catastróficas.

Pero ahí no acababa la lista de errores del código: la comprobación de igualdad entre ambas fechas se lleva a cabo utilizando el operador “==”, que sólo es utilizable con operandos (es decir, con números, nunca cadenas de texto ni fechas) y que devuelve ‘true’ o ‘false’, por lo que el código elegido no tiene ningún sentido: lo correcto hubiera sido hacer uso del método ‘String.Equals‘.


La noticia

Microsoft tuvo que borrar un tuit en el que felicitaba 2022 en lenguaje C#: el código era una chapuza

fue publicada originalmente en

Genbeta

por
Marcos Merino

.

By

Leave a Reply

Your email address will not be published. Required fields are marked *