LINUX.ORG.RU

Tabs vs. Spaces

 , ,


1

2

По мотивам этого треда

Tabs - только табуляция.
Spaces - пробелы или табуляция в виде 2 и более пробелов.

  1. Tabs 537 (42%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Spaces 457 (35%)

    ********************************************************************************************************************************************************************************************************************************************************************************

  3. Пофиг 297 (23%)

    ********************************************************************************************************************************************************************************

Всего голосов: 1291

Ответ на: комментарий от Aceler

Мне интересно, откуда это растёт.

замена табов пробелами? Ну некоторые считают, что табы у всех разные, а мониторы у всех 80 букв на 25 строчек... Потому и меняют табы на пробелы. Некоторые же считают, что мониторы у всех разной ширины, но пробелы и табы одинаковы, и потому меняют пробелы на табы. Тащемто всех этих упоротых можно разделить на 4 не пересекающихся группы. Тебя какая именно интересует?

emulek
()
Ответ на: комментарий от emulek

значит у тебя кривые руки, и ты что-то там накрутил в ~/.vimrc.

Так, хватит. Давай ты будешь читать, что я писал, а не гадать по звёздам.

из твоих постов я делаю вывод, что проблема у тебя, а не у меня. Я ошибаюсь?

Да, ты ошибаешься, потому что ты не читал мои посты. У меня уже нет проблем, я всё поправил три недели назад.

Aceler ★★★★★
()
Ответ на: комментарий от emulek

Тебя какая именно интересует?

Меня мнтересуют побудительные мотивы всех групп. А то вдруг я чего-то упускаю.

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

Обладатель немоноширинных шрифтов заплачут горючими слезами

пятая не пересекающияся группа упоротых из 4х выше обозначенных: программист, который пишет код немоноширным шрифтом.

emulek
()
Ответ на: комментарий от Aceler

Поедет.

kernelpanic хочет обсудить что-то такое:

#include <stdio.h>

int main()                                /********************
{                                          *------------------*
        while (1)                          *|                |*
	{                                  *|   ASCII art    |*
	        printf("Endless loop.\n"); *|                |*
		                           *------------------*
}                                          ********************/

Camel ★★★★★
()
Ответ на: комментарий от emulek

Шестая упоротая группа.

программист, который пишет код немоноширным шрифтом.

Шестая упоротая группа — программисты, которые пишут «шрифтами».

Camel ★★★★★
()
Ответ на: комментарий от emulek

да ладно, быстрее же копипастнуть и форматнуть, чем всё писать с нуля

кстати тот пример кода который ты форматнул ВИМом... именно об этом я и думал
просто я не пишу на питоне и ВИМ у меня не настроен для этого

q11q11 ★★★★★
()
Последнее исправление: q11q11 (всего исправлений: 1)
Ответ на: комментарий от emulek

Это уже GIGO

Дык... Об этом с самого начала идёт речь. Не существует редактора который может за тебя нормально в питоне отступы расставить.

Rodegast ★★★★★
()
Ответ на: комментарий от kernelpanic

а рядом с ним в комментариях ascii-артом что-то пояснительное

схема должна быть не рядом, а над блоком который она поясняет

q11q11 ★★★★★
()
Ответ на: комментарий от Aceler

Вообще-то оно ради этого и задумано

Для того, чтобы каждый раз при открытии файла перенастраивать ширину таба у себя, чтобы оно по-человечески отображалось? Остноумно...

Для каждого языка свой регексп?

Для большинства языков в том же емаксе/виме да и в большинстве IDE давно есть уже готовые. Вылазите уже из криокамеры :)

кучу проблем из-за фиксированных табов

В каком месте?

c0smonaut
()
Последнее исправление: c0smonaut (всего исправлений: 1)
Ответ на: Поедет. от Camel

Охтыжблин.

Забористая трава. Впрочем, любители визулстудии и немоноширинных шрифтов тоже в пролёте.

Aceler ★★★★★
()
Ответ на: Отступы != Выравнивание. от Camel

Вы все еще не понимаете, что в программировании нет выравнивания, есть ТОЛЬКО отступы. Это вам не набор текста, это поток символов обрабатываемый кодогенератором. То что он выглядит как обычный текст - заслуга того кто спроектировал синтаксис языка. Вы, если сомневаетесь, вспомните что помимо горизонтальной есть еще вертикальная табуляция. Но мы почему-то ее не обсуждаем.

A-234 ★★★★★
()
Ответ на: комментарий от MrKooll

На самом деле, все coding rools, касающиеся оформления, должны поддаваться исправлению ident'ом. Перед коммитом исходники прогоняются через нужный фильтр и никто никого не штрафует.

A-234 ★★★★★
()
Ответ на: комментарий от c0smonaut

Для того, чтобы каждый раз при открытии файла перенастраивать ширину таба у себя, чтобы оно по-человечески отображалось?

Наоборот. ЧТобы оно сразу отображалось так, как нужно тебе, а не так, как нужно тому программисту, что это ваял.

Слишком сложно?

Для большинства языков в том же емаксе/виме да и в большинстве IDE давно есть уже готовые. Вылазите уже из криокамеры :)

Вылез. Огляделся. Люди в 2013 году тратят кучу ресурсов на имитацию табов пробелами для того, чтобы не пользоваться табами, из-за того, что они не понимают, как табами пользоваться. У вас есть другой глобус?

Впрочем, результаты опроса как бы говорят нам о том, что таких всё-таки меньше.

В каком месте?

Да легко — если у тебя программа требует пятого-шестого уровня вложенностей, то количество пробелов превысит читабельные нормы. Если у человека длина строки меньше, чем у тебя, он не сможет настроить ширину исходника. Ты не можешь отличить пробелы, используемые для отступов, от пробелов, используемых для форматирования — даже визуально, тебе приходится подкладывать костыли, анализирующие предыдущий код. Ты легко можешь промахнуться и отсчитать три пробела вместо четырёх при правке исходника, из-за чего твои отступы уедут. Размер исходного кода вырастает в несколько раз, а это бывает важно, например, в веб-программировании. Твои преобразования форматирования сбивают с толку утилиту diff. Ты не можешь создать удобную среду для разных программистов, использующих разные средства программирования.

Выдохнул.

Aceler ★★★★★
()
Ответ на: комментарий от A-234

Это вам не набор текста, это поток символов обрабатываемый кодогенератором.

Мсье на столько крут, что не знает про существование комментариев? Или он предлагает все комментарии писать с новой строчки? Встречал я и такое code style, кстати, получалось неплохо.

Aceler ★★★★★
()
Ответ на: комментарий от A-234

Выравнивание нашлось?

Вы все еще не понимаете, что в программировании нет выравнивания, есть ТОЛЬКО отступы.

O'RLY?

Или вы имеете в виду, что от выравнивания работоспособность кода не зависит, что программирование не есть искусство форматирования кода? Тогда и отступы не нужны, получается.

Camel ★★★★★
()

Табы для отступов, пробелы для выравнивания.

/thread

slovazap ★★★★★
()

Всегда был за табы, сейчас за пробел. Частенько бывает кодишь в блокнотике, а потом вставляешь куда необходимо и все разъезжается местами

ExpertOff
()

Ващета пофех, но обычно юзаю «табы»

Deleted
()
Ответ на: Выравнивание нашлось? от Camel

Да, программирование не есть искусство форматирования кода иначе любой обфускатор делал бы программу неработоспособной. Форматирование - удобство для читающего код а это значит, что код должен выглядеть одинаково для любого кто решил его почитать. Отсюда правило: никаких табуляций, только пробелы.

A-234 ★★★★★
()

Пробелы, наверное из-за того что табы меня бесят в редакторе миднайт командера

peter_t
()
Ответ на: комментарий от A-234

4.2

Форматирование - удобство для читающего код

Истина.

код должен выглядеть одинаково для любого кто решил его почитать.

4.2

Camel ★★★★★
()

Tabs only :)

Любители Tab-ов уже хорошо всё сказали. Приятно удивлён, что использующих Tab-ы большинство. Всё таки по умоланию emacs предлагает такой стиль для C, от которого судорога и facepalm. Ну не должна позиция аргументов зависить от длины названия функций. А если её глобально переименовать, то всё выравнивание аргументов пробелами пойдёт насмарку? Да и выравнивать комментарии правее кода на строках разного уровня это жесть... От такого тяп-ляпного стиля и пошла от безвыходности мода на spaces-only indentation.

Лично я предпочитаю стройный стиль, где каждая строка начинается на таб-стопе. Небольшое исключение может составлять многострочные комментарии C, там разрешается один пробел перед звездой. И если предыдущая строка была на уровне N, то следующая непустая строка будет либо на уровне N - 1, либо N, либо N + 1. В редких случаях N - 2 (обычно после разбитой длинной строки, или, например, после блока if из одного выражения, да и этот случай можно превратить в N - 1, добавив фигурные скобки в блок). В языках как Python или YAML допускается откат на любой предыдущий уровень, то есть N - M.

В таком стиле используются лишь Tab-ы для начальных отступов (и нигде более), а выравнивание пробелами (за что ратует Camel) не требуется за неимением, хотя и позволяется в особо крайних случаях. Конечно же, вертикальное выравнивание пробелами в середине строк на строках одного уровня разрешается. Обычно в моих проектах всех устраивает такой стройный стиль.

mihalych ★★★
()

И ежу понятно, что правильно отформатировать код, чтобы он одинаково смотрелся в любом редакторе с любыми настройками, можно только пробелами.

Хотя вот эти 42% с табами меня печалят.

yoghurt ★★★★★
()

Пофиг. Перед коммитом нужно прогонять что-то вроде astyle с нужными параметрами, а там уже все равно что было до этого.

Kosyak ★★★★
()
Ответ на: комментарий от Aceler

Да, ты ошибаешься, потому что ты не читал мои посты. У меня уже нет проблем, я всё поправил три недели назад.

ну так-бы сразу и написал.

Так, хватит. Давай ты будешь читать, что я писал, а не гадать по звёздам.

Да, с питоном я имел длительные половые перверсии из-за того, что vim мне по умолчанию заменял пробелы на табы втихаря. Так и живём.

Дык ты «так и живёшь», или наконец «всё исправил три недели назад»?

И да, питонопрограммы работают и с пробелами, и с табом. Секс ты имел потому, что не осилил определится, какой именно стиль ТЕБЕ выбрать. Vim ничего ЗА ТЕБЯ не решает. Это просто программа.

emulek
()
Ответ на: комментарий от q11q11

кстати тот пример кода который ты форматнул ВИМом... именно об этом я и думал просто я не пишу на питоне и ВИМ у меня не настроен для этого

я тоже. Это дефолт.

emulek
()
Ответ на: комментарий от Rodegast

Дык... Об этом с самого начала идёт речь. Не существует редактора который может за тебя нормально в питоне отступы расставить.

потому-что у питона говносинтаксис. Вот тебе «фи» и сказали.

emulek
()
Ответ на: комментарий от q11q11

схема должна быть не рядом, а над блоком который она поясняет

схема над блоком не доказывает 80й уровень задроства с нотепадом «программиста», который пишет «не шрифтами».

emulek
()
Ответ на: комментарий от A-234

Вы все еще не понимаете, что в программировании нет выравнивания, есть ТОЛЬКО отступы.

а что такое «выравнивание»?

emulek
()
Ответ на: комментарий от A-234

Перед коммитом исходники прогоняются через нужный фильтр и никто никого не штрафует.

это должно быть сделано на локалхосте аффтора коммита.

emulek
()
Ответ на: комментарий от Aceler

Размер исходного кода вырастает в несколько раз, а это бывает важно, например, в веб-программировании.

не важно. Читай про zlib

Твои преобразования форматирования сбивают с толку утилиту diff.

не сбивают. Читай man diff

Ты не можешь создать удобную среду для разных программистов, использующих разные средства программирования.

vim уже есть.

emulek
()
Ответ на: комментарий от emulek

И да, питонопрограммы работают

О, ты уже прочитал, что я редактировал питоноисходник. Прогресс! Ещё две страницы назад ты об этом не подозревал.

Секс ты имел потому, что не осилил определится, какой именно стиль ТЕБЕ выбрать.

Если читать тред не по диагонали, то можно найти ещё немного моих сообщений и прочитать их.

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

О, ты уже прочитал, что я редактировал питоноисходник. Прогресс! Ещё две страницы назад ты об этом не подозревал.

а есть разница? Мне так без разницы, какую хрень ты там редактируешь.

Если читать тред не по диагонали, то можно найти ещё немного моих сообщений и прочитать их.

может ты осилишь собрать свои обрывки мыслей в один пост? Или это должен я делать?

emulek
()
Ответ на: комментарий от yoghurt

Каша.

И ежу понятно, что правильно отформатировать код, чтобы он одинаково смотрелся в любом редакторе с любыми настройками, можно только пробелами.

Вы путаете «правильно отформатировать код» и «одинаково смотрелся в любом редакторе с любыми настройками». Вы считаете эти понятия тождественными, что является грубой ошибкой.

Camel ★★★★★
()

Ааа, промазал! Проголосовал за табы, хотя везде использую пробелы. Сплю на ходу.

fractaler ★★★★★
()
Ответ на: комментарий от emulek

не важно. Читай про zlib

В highload не работал. Админ локалхоста?

не сбивают. Читай man diff

Ну это из той же области про стоя и в гамаке.

vim уже есть.

использующих разные средства программирования.

Читать ты так и не научился.

По остальным пунктам возражений нет? Ну и славненько.

Теперь хотелось бы послушать любителей пробелов, которые пока используют только один аргумент вида «у всех всё форматирование будет одинаково», который а) неверен, б) не нужен.

Aceler ★★★★★
()
Ответ на: комментарий от emulek

может ты осилишь собрать свои обрывки мыслей в один пост? Или это должен я делать?

Вообще-то это ты хотел меня подколоть, а не я помощи просил, так что да — ты и собирай :))

Ну да я сегодня добрый. Ситуация: заказчик просит подправить питоновский скрипт. Сервер я вижу первый и последний раз в жизни. CentOS 5.3. Открываем вимом исходник (настраивать vim под себя, ессно, некогда, всё по умолчанию), находим нужное место, нажимаем enter и добавляем пару строк. И вот незадача — весь исходник имеет отступы в два пробела, а вим воткнул мне в новых строчках табуляцию в четыре пробела. Из-за чего питоновский компилятор обругался и я потратил полчасика на то, чтобы разобраться.

История, в общем-то, яйца Гидо не стоит, но твой либастрал надо пересобирать с новыми флагами.

Aceler ★★★★★
()
Ответ на: комментарий от yoghurt

И ежу понятно, что правильно отформатировать код, чтобы он одинаково смотрелся в любом редакторе с любыми настройками, можно только пробелами.

а) это неверно. Если у кого-то в редакторе меньшая (большая) длина строки? А если есть любители визуалстудии с немоноширинными шрифтами?

б) это не нужно. Пусть читающий твои креативы самостоятельно решает, как ему удобнее.

Aceler ★★★★★
()
Ответ на: комментарий от emulek

схема над блоком не доказывает 80й уровень задроства с нотепадом «программиста», который пишет «не шрифтами».

что ты этим хотел сказать? что будешь троллить во что бы то ни стало?

при чём тут нотпад? речь о нормальности
что толку с ASCII понтов если при редактировании вся схема поедет?
ну и как бы doxygen не задроты нотпада придумали, что само по себе намекает

q11q11 ★★★★★
()
Ответ на: комментарий от Aceler

Пусть читающий твои креативы самостоятельно решает, как ему удобнее

Ну да, читающий откроет какой-нибудь mcedit и ему будет очень удобно читать код, расползшийся за пределы экрана из-за 8-знаковых табов. А если табы мешали с пробелами (в расчете на 4 знака), будет ещё удобней. (В этом месте фанаты табов отправляют читателя настраивать редактор, вьюер, принтер, а также либастрал для вычисления ширины таба у писателя).

nikodymus
()
Ответ на: комментарий от Feonis

Зачем нажимать пробел, если нужное число пробелов поставит кнопка TAB?

Смешно, что это чуть ли не главный аргумент за табы. Набиратели кода в ворде не иначе голосуют.

nikodymus
()
Ответ на: комментарий от Aceler

В highload не работал. Админ локалхоста?

типа того. Я вот не понимаю, почему highload сервер будет дольше отдавать Over9000 файлов по 5К, чем Over9000 файлов по 15K в секунду? Насколько я знаю, бутылочное горло там совсем не в zlib.

Hint: если страничка статичная, её сжать надо один раз. А если динамичная, и зависит скажем от СУБД, то тормозить будет эта твоя СУБД, а совсем НЕ сжатие HTML.

Ну это из той же области про стоя и в гамаке.

пойми: ты упорот не потому-что «стоя в гамаке», а потому-что ТОЛЬКО (не)стоя, и ТОЛЬКО в (не)гамаке. А ВСЕ, кто делают НЕ ТАК КАК ТЫ — по твоему идиоты.

vim уже есть.

использующих разные средства программирования.

Читать ты так и не научился.

не. Понимать тебя не научился: какие ещё есть «средства программирования», кроме написания текста в редакторе? я просто не в курсе.

По остальным пунктам возражений нет? Ну и славненько.

на некоторый твой бред мне просто нечего сказать. Как нечего сказать на (не)нужность деления на ноль.

emulek
()
Ответ на: комментарий от Aceler

Вообще-то это ты хотел меня подколоть

нет ты. Со своим «см. рис 1».

Открываем вимом исходник (настраивать vim под себя, ессно, некогда, всё по умолчанию), находим нужное место, нажимаем enter и добавляем пару строк. И вот незадача — весь исходник имеет отступы в два пробела, а вим воткнул мне в новых строчках табуляцию в четыре пробела.

вот ты опять делишь на ноль: ты-то кто? Дилетант? Нет? А, ну да, ты у нас профи, так? Хайлоад и всё такое. А почему у такого опытного профи как ты, инструмент в заводской упаковке, только-что из магазина? Не, инструмент годный, хороший, у меня такой-же. Но я свой лет пять до ума довожу. А у тебя — дефолт. Нестыковочка...

Из-за чего питоновский компилятор обругался и я потратил полчасика на то, чтобы разобраться.

странно, как такой маститый профи как ты, полчаса разбирался с тривиальной ошибкой в синтаксисе? Я конечно не так крут, но ИМХО это как дворник, который полчаса думает, почему метла не метёт. Потом понимает — какая-то сволочь её не той стороной поставила, а «дворник» так и схватил...

История, в общем-то, яйца Гидо не стоит, но твой либастрал надо пересобирать с новыми флагами.

даже в моём libastral'е операция деления на ноль не реализована.

emulek
()
Ответ на: комментарий от Aceler

А если есть любители визуалстудии с немоноширинными шрифтами?

а что, вправду там немоноширные? Лет 10 назад в MSVC были нормальные...

emulek
()
Ответ на: комментарий от emulek

а что, вправду там немоноширные? Лет 10 назад в MSVC были нормальные...

и щас тоже моноширинные.

waker ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.