В том-то и проблема с табами в больших проектах, что кто-то их ставит, кто-то нет. Настройки редакторов у всех разные. В результате код невозможно читать ни с какими настройками, всё расползается.
Imho, эта проблема в больших проектах не решается технически, а только административно (стилистическим руководством). При этом использование табов позволяет выравнивать и персонализировать исходник настройками визуализации (в редакторе), а пробелы можно выравнивать изменением (переформатированием) исходника.
Дело не столько в пробелах в исходниках ( хотя, скажем, в Ворде я их очень не люблю), но стилистические войны мне нравятся ещё меньше, чем пробелы, так что табы мне симпатичны как более компромиссные.
Пробелы таки нужны в случае разбиения-переноса строк: void.foo().{ +if (someshit1.&& +....someshit2).{ ++moreshit(); +} } Плюсики – табы, точечки – пробелы. Без пробелов никак. Иначе будут разъезжаться продолжения строк, вот эти вот someshit1 и someshit2. По этому логика как раз противоположная: запретить табы.
Раньше дисплеи крохотные были, старались код даже в 72 колонки впихивать. И на вложенности блоков народ не экономил. В результате даже с 4 пробелами код в экран не помещался.
Пробовал я играться с длиной строки в clang-format. Конечно, 80 символов маловато для современных дисплеев. В принципе, 120 приемлемо, но многовато. Пожалуй 100 в самый раз будет.
no subject
Date: 2020-01-16 08:14 (UTC)no subject
Date: 2020-01-16 09:08 (UTC)no subject
Date: 2020-01-16 17:27 (UTC)Но если ставить табы, то количество пробелов -- вопрос настроек редактора, так что можно легко сравнить читаемость.
А вот чего не хватает, так это фиксированного короткого таба в 4 пробела.
no subject
Date: 2020-01-16 20:47 (UTC)no subject
Date: 2020-01-16 21:33 (UTC)Дело не столько в пробелах в исходниках ( хотя, скажем, в Ворде я их очень не люблю), но стилистические войны мне нравятся ещё меньше, чем пробелы, так что табы мне симпатичны как более компромиссные.
no subject
Date: 2020-01-16 09:35 (UTC)no subject
Date: 2020-01-16 09:43 (UTC)no subject
Date: 2020-01-16 13:00 (UTC)void.foo().{
+if (someshit1.&&
+....someshit2).{
++moreshit();
+}
}
Плюсики – табы, точечки – пробелы. Без пробелов никак.
Иначе будут разъезжаться продолжения строк, вот эти вот someshit1 и someshit2.
По этому логика как раз противоположная: запретить табы.
no subject
Date: 2020-01-16 15:39 (UTC)В отдельных случаях можно и ручками подравнять
no subject
Date: 2020-01-16 20:49 (UTC)no subject
Date: 2020-01-16 18:48 (UTC)+if (someshit1
+&& someshit2) {
++moreshit();
+}
Ну, или если по смыслу подходит по-другому, то
+if (some
++shit
+) {
++moreshit();
+}
no subject
Date: 2020-01-16 12:54 (UTC)no subject
Date: 2020-01-16 16:12 (UTC)no subject
Date: 2020-01-18 06:32 (UTC)no subject
Date: 2020-01-18 09:33 (UTC)no subject
Date: 2020-01-16 16:10 (UTC)no subject
Date: 2020-01-16 20:54 (UTC):)
no subject
Date: 2020-01-16 20:32 (UTC)no subject
Date: 2020-01-16 20:52 (UTC)no subject
Date: 2020-01-17 06:36 (UTC)дабы не порождать мыслепреступление и склонение к нему нестойких умов...
no subject
Date: 2020-01-17 07:05 (UTC)Для заядлых фортранистов можно бы ещё предложить 0 пробелов.
no subject
Date: 2020-01-17 07:11 (UTC)"Да здравствует Фортран !"
no subject
Date: 2020-01-17 17:00 (UTC)no subject
Date: 2020-01-18 06:35 (UTC)no subject
Date: 2020-01-18 12:55 (UTC)no subject
Date: 2020-01-18 20:27 (UTC)