ИХМО явное указание типа это рудимент. Код не надо читать на печатной бумаге - для этого есть IDE, которые раскрашивают, делают автоотступы и пр. для читаемости кода - не зря А. Ривилис, в каждом втором посте нового автора напоминает оформлять код соответствующим образом. Вывод типа давным давно успешно реализован - вот пример даже на web странице http://www.fssnip.net - (показывает тип при поднесении мыши к выражению любого примера). Явное задание типа - только разводит "типографию" и делает код менее универсальным. Да кое-где его лучше указать (например для лучшей работы интелисенса), но делать это повсеместно - это скорей результат дурного наследия C# от Си (имею в виду читаемость кода). Код должен не только описывать, но и показывать алгоритм задачи, а не "топить" Вас в типы и пр. второстепенную "мешуру" - хотя это конечно вопрос больше к синтаксису языка.
Не согласен. Несомненно,
var - более компактная форма записи, но это удобство достигается, на мой взгляд, за счёт некоторой потери удобочитаемости.
Лично мне
всегда удобней читать код, в котором тип переменной указан явно, не вынуждая меня дополнительно пробегать глазами по строчке в поисках инициализации переменной с целью выяснения, какой же тип она имеет. Не стоит забывать о том, что существуют такие ресурсы как GitHub и BitBucket, которые позволяют просматривать исходный код проектов, с подсветкой синтаксиса, в online-режиме без использования IDE - там нет "интелисенса", а обозначенные ресурсы достаточно популярны.
Порой я читаю такие исходники в браузере, а порой распечатываю и читаю, пока еду в метро делая, по мере необходимости, пометки маркером или карандашом. Не стоит забывать так же и о том, что зачастую порции кода присутствуют в документации, а так же в различных книжках. А теперь представь, что книжку в метро или документацию на планшете читает новичок, едущий в метро, или сидящий в парке на скамейке и видит в коде вызов некоторого метода, результат которого присваивается переменной типа
var. Этот человек ещё толком не знаком с API, о котором читает. У него возникает логичный вопрос:
а каков реальный тип этой переменной? Для того, чтобы понять это ему придётся открыть SDK и посмотреть сигнатуру метода (если он просматривает код не в IDE), либо сделать себе "зарубку", что нужно будет полезть в SDK позднее, когда такая возможность представится. Это очень неудобно.
Надо или не надо читать код на бумаге - это слишком категоричное заявление, подчас не учитывающее различного рода обстоятельства. Серебрянной пули не существует, однако я всегда предпочитаю удобочитаемость компактности, т.к. порой компактность может поневоле даже стать причиной возникновения ошибки (иногда даже не сразу выявляемой).
ИМХО