Jump to content

Пробелы vs. Табы


novicheG
 Share

  

18 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

Собственно сабж. Хотелось бы не только ответов но и ваших аргументированных мнений по этой теме.

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

к примеру, если ты отбиваешь табом код, потом вставишь куда-нить на форум, в аську, в блокнот, или еще куда, то отображение будет примерно таким же, то есть эквивалентно, но если отбиваешь пробелом, то есть вероятность что в разных местах будет по разному отображаться лесенка структуры.

Link to comment
Share on other sites

Презираю тех кто юзает пробелы. На такой код больно смотреть, его неудобно читать, он весь корявый... В любой человеческой IDE можно настроить ширину табуляции если кому-то не нравится что таб слишком широкий.

Благо в моем Notepad++ есть автозамена, и я всегда заменяю 4 пробела на \t. Но печалит, что приходится приводить в божеский вид код других людей и что они не хотят переучиваться.

  • Like 1
Link to comment
Share on other sites

Пробелы - это зло. Ребята всё уже высказали в принципе, и я с ними согласен. Когда-то я помню не понимал этого и всегда юзал пробелы, пока грамотные люди не навели меня на правильный путь и не дали в зубы табуляцию, которую я так же, как и Great Rash настраиваю под себя. Т.е. 4 пробела - 1 таб. Редактор Dreamveaver.

Link to comment
Share on other sites

Использую пробелы. И пока менять обратно на табы не собираюсь. То есть, разумеется, для увеличения отступа использую клавишу таб, но вставляет она 4 пробела.

Презираю тех кто юзает пробелы. На такой код больно смотреть, его неудобно читать, он весь корявый...

Веская, аргументированная точка зрения.

Хочу, чтобы мне было легко читать мой код где угодно, хоть в блокноте, хоть при просмотре исходника страницы. Даже там, где ширина табуляции не настроена или настроена не так.

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

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

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

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

А точно не наоборот? ;)

Link to comment
Share on other sites

Ладно ок. Рассмотрим ситуацию. Вася привык ставить в коде 3 пробела, а Петя привык ставить 4 пробела, а Сережа привык вообще без пробелов.

Потом они сливают свой код по SVN в один репозиторий и он превращается в один большой кусок гумна... И это при условии что у них вообще получится смерджиться.

Не нафиг, я за стандартизацию кода - таб тут наилучший выход. Да в блокноте табы огромны, но я не знаю людей которые кодят в блокноте (разве что в совсем экстренных ситуациях).

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

Согласен, наоборот.

Link to comment
Share on other sites

rash

Для меня намного удобнее 1 раз нажать на tab, чем 4 раза на пробел, а если вложенность намного больше, то нажатие на пробел возрастает в разы. Зачем лишние телодвижения и трата времени?

Link to comment
Share on other sites

Ладно ок. Рассмотрим ситуацию. Вася привык ставить в коде 3 пробела, а Петя привык ставить 4 пробела, а Сережа привык вообще без пробелов.

Потом они сливают свой код по SVN в один репозиторий и он превращается в один большой кусок гумна... И это при условии что у них вообще получится смерджиться.

Не нафиг, я за стандартизацию кода - таб тут наилучший выход. Да в блокноте табы огромны, но я не знаю людей которые кодят в блокноте (разве что в совсем экстренных ситуациях).

Если работа ведется в SVN, то тут спасает корпоративный/командный стайлгайд, ну и/или бьютифаер кода, который запускается при коммите. Собственно, я за стандартизацию, тут спорить не собираюсь, но в таком случае тем более все равно, что использовать, если все должны использовать одно и то же в обязательном порядке. И тут я (субъективно) склоняюсь к пробелу, уже хотя бы потому, что «пробел — он и в Африке пробел».

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

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

P.S.: да что ж я за холиварщик-то такой…

rash

Для меня намного удобнее 1 раз нажать на tab, чем 4 раза на пробел, а если вложенность намного больше, то нажатие на пробел возрастает в разы. Зачем лишние телодвижения и трата времени?

Процитирую сам себя:

То есть, разумеется, для увеличения отступа использую клавишу таб, но вставляет она 4 пробела.

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

Link to comment
Share on other sites

rash

Для меня намного удобнее 1 раз нажать на tab, чем 4 раза на пробел, а если вложенность намного больше, то нажатие на пробел возрастает в разы. Зачем лишние телодвижения и трата времени?

Процитирую сам себя:

То есть, разумеется, для увеличения отступа использую клавишу таб, но вставляет она 4 пробела.

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

Ага, там нажал пробел, тут таб, в итоге где-то ошибся на один шаг и вся видимость вложенности уже не соответствует своему названию. Настроить табуляцию в редакторе можно один раз и забыть.

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

Link to comment
Share on other sites

Ага, там нажал пробел, тут таб, в итоге где-то ошибся на один шаг и вся видимость вложенности уже не соответствует своему названию. Настроить табуляцию в редакторе можно один раз и забыть.

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

Так это и есть настройка табуляции. Нажатие на таб физически вставляет в файл 4 пробела. Если я отбиваю отступ вручную пробелами — я тоже вставлю 4 пробела. Никакой путаницы. Может, конечно, меня избаловал мой редактор, но это кажется такой базовой функциональностью, что аналогичные настройки должны быть везде.

Я никого не призываю переходить на пробелы и пересматривать свои взгляды, если вам нравится то, что используете сейчас. Просто мне нравится возможность читать свой код где угодно, в частности — в блокноте и браузерном просмотрщике, и то, что при этом его не разрывают длиннющие отступы табуляцией. Если это не имеет значения, то никаких иных объективных преимуществ я не вижу.

Link to comment
Share on other sites

Все циклично в этом мире. Сначала отучивали ставить пробелы, теперь отучивают ставить табы. Как только появятся плагины, которые умеют ставить разную длину смещения таба, так сразу начнут отказываться от пробелов в сторону табов. Потом появится еще пять причин, по которой табы станут "злом" и все по новой.А не пофиг ли? Главное - единство стиля в одном проекте, все остальное - до лампочки.

  • Like 1
Link to comment
Share on other sites

Мне подсказывает простая логика, что пробел нужен для разделения слов, а таб для отбивки. Они были придуманы для этого и так их и следует использовать — по назначению.

Link to comment
Share on other sites

Мне подсказывает простая логика, что пробел нужен для разделения слов, а таб для отбивки. Они были придуманы для этого и так их и следует использовать — по назначению.

Вообще-то таб был предназначен не для отбивки, а для разделения полей в табличных данных в тексте. Это не совсем то же самое, что просто отбивка.

Так что если подходить так уж формально, оба эти символа не подходят. Кого-то это останавливает?

Link to comment
Share on other sites

В про writer? Да, не люблю тех, кто делает отступы текста пробеами, не пользуясь для этого линейкой. А тех, кто форматирует текст пробелами вместо выравнивания по середине в правой части страницы, вообще презираю.

А если вы про программирование, то я использую табы. Когда-то давно были пробелы, но их долго удалять, долго добавлять, да и редакторы, которые умеют делать автоотступы, все в основном ставят табы. И моё любимое shift+tab, понижающее уровень вложенности, тоже работает с табами.

Link to comment
Share on other sites

Любопытно, чем обосновано требование к коду в PEAR

Ну вот именно. Собственно ради этого и создавал тему, разобраться почему именно в последнее время часто встречаются рекомендации не использовать табы.(http://phpforum.ru/index.php?showtopic=20919 также почему то за пробелы). Сам привык к табам.. 1) меньше символов и удобнее добавлять/удалять табы как по одному так и выделяя блоки строк 2) не намного но меньше вес файла 3) имхо код аккуратней.4) как сказал Veseloff, все же для отступов имхо - ближе предназначение именно табов.

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

эмм.. собственно только в этом собака и зарыта? в "неизменяемой" и везде разной длине таба?

Edited by novicheG
Link to comment
Share on other sites

Короче неважно кто что юзает. Важно то, что табы победили с большим перевесом в голосовании. Поэтому теперь все кто юзает пробелы должны пасть ниц, покаяться и начать пользовать православные табы ;)

  • Like 1
Link to comment
Share on other sites

На хабре куча холиваров на эту тему.

Для себя вывел штуку: лучше юзать табы.

Но пробелы нужно юзать, когда пишешь такую вещь:


$var_name = 10;
$var_name2 = 20;
// ..
$var_name30 = 150;

Edited by alanvanduke
Link to comment
Share on other sites

Тоже не соглашусь. Т.е. это конечно красиво смотрится, но лично мне геморно вот так вот выравнивать код.

И присвоение (да и вообще разные операции) мне не нравится когда без пробелов пишут. Такой код трудно читать. Сравните:


var_name=other_var>=third_var?other_var+some_var:third_var+some_var;

и


var_name = other_var >= third_var ? other_var + some_var : third_var + some_var;

Ну ведь понятней же...

  • Like 1
Link to comment
Share on other sites

Конечно, второй вариант понятнее.

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

Вы же не считаете минимизированный код (с вырезанными пробелами, вытянутый в одну строку) более читаемым?

Link to comment
Share on other sites

Не не, минимизация и обфускация - это совсем другое. У всего этого есть совершенно определенная цель. Я говорю про случаи когда люди пишут код так потому что привыкли. И совсем не заботятся о том, что их код, может быть, будет читать кто-то другой. Как пример:


if(x>10)someFunc();

Я сторонник того, чтобы написать так:


if (x > 10) {
someFunc();
}

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

Link to comment
Share on other sites

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

Случайно не "JavaScript. Шаблоны" Стояна Стефанова? ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy