пятница, августа 28, 2009

WTF

Скажите, что должен чувствовать программист, когда вот для примерно такого кода:


float speed = Float.NaN;
if (speed == Float.NaN)
Dialog.alert("Not a number");
else
Dialog.alert("Shit happens...");



он видит на экране "Shit happens..."?
Ага, такое дерьмо приключилось вчера со мной, когда я ковырялся в реализации J2ME от одного вполне уважаемого вендора. Убив на проблему около часа, я совсем было отчаялся, решил что я уже слишком стар для таких приколов, и пора мне завязывать с программированием. Однако, неожиданно, замена (speed == Float.NaN) на (Float.isNaN(speed)) решила проблему. Дерьмо исчезло.
Но запах остался...
Продолжаю программировать.