Здравствуйте, kov_serg, Вы писали:
A>>Сразу оговорюсь, что вопрос больше не про философию программирования, а про психологию программистов.
_>if (a===true)
Надо было уточнить, что речь про ЯП без === (я так понимаю, === имеет смысл только для нестрого-динамической типизации).
A>>Когда я давным-давно впервые увидел в коде сабж, то решил, что автор издевается (особенно без йода-сравнений). Но так действительно пишут, и нередко. В настоящий момент я думаю, что это глупый способ взять худшее из обоих миров.
_>тогда лучше писать
_>if (a!=false)
Это хуже йодинга: смысл перестановка меняет незначительно лишь, а инверсия страшная тут.
_>А кто сказал что а имеет тип bool ?
Если тип не bool, они в таких случаях пишут каст плюс == true.
A>>Так вот, у меня появилась гипотеза, что те, кто пишет if (service.IsStarted == true), просто слышали звон. Останавливаются на половине, пытаются изображать строгость, при этом не расписывая состояния для каждого кейса.
_>А если service.IsStarted это функция или перечисление. А так компилятор уматерит если что. А вообще это просто шаблонное поведение если в переменной такое значение то делаем то-то. А оптимизировать это дополнительное действие — лень. Более того тот кто писал вообще может быть с булевой алгеброй не знаком, и это ему совершенно не мешает.
Боюсь, не совсем понимаю. service.IsStarted это почти наверняка функция (аксессор). И?
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.