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

Microsoft tuvo que borrar un tuit en el que felicitaba 2022 en lenguaje C#: el código era una chapuza
20 comentarios Facebook Twitter Flipboard E-mail

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 vistazo a…
La carrera de programador en 2017 y en el futuro (con Javier Santana)

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 se establece en el ELSE—.

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 DateTime en una cadena de texto para compararla con otra fecha, cuando DateTime 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.

Una versión previa de este artículo recogía como erróneo el uso del operador "==" en el contexto del citado código: no es así, C# sí permite usarlo como método de comparación de cadenas de texto.
Comentarios cerrados
Inicio