Здравствуйте, Alekzander, Вы писали:
A>Сразу оговорюсь, что вопрос больше не про философию программирования, а про психологию программистов.
if (a===true)
A>Когда я давным-давно впервые увидел в коде сабж, то решил, что автор издевается (особенно без йода-сравнений). Но так действительно пишут, и нередко. В настоящий момент я думаю, что это глупый способ взять худшее из обоих миров.
тогда лучше писать
if (a!=false)
A>О каких мирах речь? Есть такая практика — стараться использовать тип bool с большим разбором.
А кто сказал что а имеет тип bool ?
A>Так вот, у меня появилась гипотеза, что те, кто пишет if (service.IsStarted == true), просто слышали звон. Останавливаются на половине, пытаются изображать строгость, при этом не расписывая состояния для каждого кейса.
А если service.IsStarted это функция или перечисление. А так компилятор уматерит если что. А вообще это просто шаблонное поведение если в переменной такое значение то делаем то-то. А оптимизировать это дополнительное действие — лень. Более того тот кто писал вообще может быть с булевой алгеброй не знаком, и это ему совершенно не мешает.