Почему программисты боятся табуляции? (Замена на пробелы... зачем?)

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Почему программисты боятся табуляции?

Сообщение kamre »

Gugloed писал(а):
06.11.2009 11:54
это-то понятно, если в проекте уже есть несколько тысяч файлов, то наверняка ужь решено, что использовать, пробелы или табы.

Встречал в исходниках JDK и Qt4 пробелы с табами вперемешку, хотя там несколько тысяч файлов.


watashiwa_daredeska писал(а):
06.11.2009 11:27
проблемы с системами контроля версий

Это точно. Когда делаешь annotate для исходника, и там показываются комментарии из коммита, в котором просто отформатировали кусок кода смысла получается мало.
watashiwa_daredeska писал(а):
06.11.2009 11:27
Так что, :retab и/или indent можно сделать один раз, чтобы больше с табуляциями не мучаться.

+1, один раз убрать все табы и не мучаться больше с ними.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Почему программисты боятся табуляции?

Сообщение watashiwa_daredeska »

Gugloed писал(а):
06.11.2009 11:54
если в проекте уже есть несколько тысяч файлов, то наверняка ужь решено
Проблема в том, что проект-то может быть и не один. 28 библиотек, каждая — отдельный проект.
Спасибо сказали:
Аватара пользователя
xorader
Сообщения: 1030
Статус: собирающий миры
ОС: Debian

Re: Почему программисты боятся табуляции?

Сообщение xorader »

kamre писал(а):
06.11.2009 11:00
Как с помощью tab отформатировать код со следующим стилем:

Код: Выделить всё

void some_class_name::some_function_name(int first_param,
                                         int second_param,
                                         int third_param);

double value = (.....)
             + (.....)*(.....)
             - (.....)/(.....);

?



Код: Выделить всё

void some_class_name::some_function_name(    <TAB>int first_param,
<TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB>int second_param,
<TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB>int third_param);

double value   <TAB>= (.....)
<TAB><TAB><TAB><TAB>+ (.....)*(.....)

<TAB><TAB><TAB><TAB>- (.....)/(.....);


P.S. и ещё я заметил, что у тех кто TAB'ы использует как правило коды и тексты отформатированы нормально/понятно/красиво. У тех, кто использует только пробелы - часто вкривь и вкось :crazy: .
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Почему программисты боятся табуляции?

Сообщение KiWi »

xorader писал(а):
09.11.2009 15:26
kamre писал(а):
06.11.2009 11:00
Как с помощью tab отформатировать код со следующим стилем:

Код: Выделить всё

void some_class_name::some_function_name(int first_param,
                                         int second_param,
                                         int third_param);

double value = (.....)
             + (.....)*(.....)
             - (.....)/(.....);

?



Код: Выделить всё

void some_class_name::some_function_name(    <TAB>int first_param,
<TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB>int second_param,
<TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB>int third_param);

double value   <TAB>= (.....)
<TAB><TAB><TAB><TAB>+ (.....)*(.....)

<TAB><TAB><TAB><TAB>- (.....)/(.....);


P.S. и ещё я заметил, что у тех кто TAB'ы использует как правило коды и тексты отформатированы нормально/понятно/красиво. У тех, кто использует только пробелы - часто вкривь и вкось :crazy: .

Ну... табы в разных редакторах в ширину разные, так что такое форматирование запросто может съехать.

P.S.: использую табы для отступов внутри функций, а для форматирования нескольких строк(и внутри строк) -- пробелы.

Код: Выделить всё

<TAB>var<SPACE>=<SPACE>10;
<TAB>a<SPACE><SPACE><SPACE>=<SPACE>5;
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Почему программисты боятся табуляции?

Сообщение kamre »

xorader писал(а):
09.11.2009 15:26

Код: Выделить всё

void some_class_name::some_function_name(    <TAB>int first_param,
<TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB>int second_param,
<TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB>int third_param);

double value   <TAB>= (.....)
<TAB><TAB><TAB><TAB>+ (.....)*(.....)

<TAB><TAB><TAB><TAB>- (.....)/(.....);


Фигня какая-то получается:

Код: Выделить всё

void some_class_name::some_function_name(    <TAAB>int first_param,
<TAAB><TAAB><TAAB><TAAB><TAAB><TAAB><TAAB><TAAB><TAAB><TAAB>int second_param,
<TAAB><TAAB><TAAB><TAAB><TAAB><TAAB><TAAB><TAAB><TAAB><TAAB>int third_param);

double value   <TAAB>= (.....)
<TAAB><TAAB><TAAB><TAAB>+ (.....)*(.....)

<TAAB><TAAB><TAAB><TAAB>- (.....)/(.....);

И к чему лишние пробелы не вначале строк?

xorader писал(а):
09.11.2009 15:26
P.S. и ещё я заметил, что у тех кто TAB'ы использует как правило коды и тексты отформатированы нормально/понятно/красиво. У тех, кто использует только пробелы - часто вкривь и вкось :crazy: .

Только TAB-ы ограничивают возможность форматирования, смешивание в начале строки табов и пробелов - просто кошмар. Так что или подбирать соответстующий стиль кода под табы или использовать только пробелы для отступов.
Спасибо сказали:
MakkyWelly
Сообщения: 97
ОС: по обстоятельствам :)

Re: Почему программисты боятся табуляции?

Сообщение MakkyWelly »

· в случае использования табуляции каждый может настроить в своем редакторе желаемый отступ;


Т.е. предполагается, что их всё таки будут заменять :) Я вот к пробелам уже привык, но это конечно дело вкуса.
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill next sacrifice, each sacrifice
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Почему программисты боятся табуляции?

Сообщение drBatty »

MakkyWelly писал(а):
21.11.2009 02:10
Т.е. предполагается, что их всё таки будут заменять

вовсе нет. просто размер таба можно выставить на свой вкус/монитор, а вот размер пробела - нельзя.
вы-то привыкли к пробелам, но зачем заставлять меня привыкать к вашим? ;)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
MakkyWelly
Сообщения: 97
ОС: по обстоятельствам :)

Re: Почему программисты боятся табуляции?

Сообщение MakkyWelly »

Ага, видел в некоторых (очень немногочисленных правда) исходниках такой коммент - "# рекомндуемый размер таба - 4 пробела" :)
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill next sacrifice, each sacrifice
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Почему программисты боятся табуляции?

Сообщение drBatty »

MakkyWelly писал(а):
21.11.2009 05:57
Ага, видел в некоторых (очень немногочисленных правда)

да я тоже видел... однако не видел таких, которым надо 27 пробелов... ну вместа таба.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
juvf
Сообщения: 43

Re: Почему программисты боятся табуляции?

Сообщение juvf »

нормальные IDE заменяют \t на указанное число пробелов (4)

Поработал я в такой "нормальной" ИДЭ. Вообще - отстой. Привык размечать табами. По умолчанию редактор заменял tab на 4 пробела. В принципе со стороны код выглядит идентично. Зато при редактировании .... чтоб отступить на уровень, достаточно нажать таб и - на тебе 4 пробела, кайф! А вот вернутся на уровень :angry: нужно удалить (или переместится) 4 пробела, т.е. нажать 4 раза забой или стрелку. а бывает нужно вернуться на 3 уровня, это уже 12 раз забой жать. Неееееее...... такие фичи к терапевту!
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Почему программисты боятся табуляции?

Сообщение NickLion »

Нормальные IDE и backspace наделяют магической силой удалять сразу 4 пробела ;)
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Почему программисты боятся табуляции?

Сообщение Portnov »

:set smarttab ? ;)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
juvf
Сообщения: 43

Re: Почему программисты боятся табуляции?

Сообщение juvf »

ps
Нормальные IDE и backspace наделяют магической силой удалять сразу 4 пробела

отключил я эту замену таба пробелами, но вопрос скорее для развития кругозора: речь идет о QtCreator. Или может QtCreator не является "нормальным"? Или мне надо какие-то опции выставить? Как QtCreator распознает что это 4 пробела вставлены вместо таба, а не специально программистом введены? Например у меня есть 9 пробелов (нужно так) и требуется удалить 2. в "нормальной" идэ удалится 4? а стрелки курсора тоже будут скакать на 4 пробела?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Почему программисты боятся табуляции?

Сообщение NickLion »

juvf писал(а):
23.12.2009 11:32
отключил я эту замену таба пробелами, но вопрос скорее для развития кругозора: речь идет о QtCreator. Или может QtCreator не является "нормальным"? Или мне надо какие-то опции выставить? Как QtCreator распознает что это 4 пробела вставлены вместо таба, а не специально программистом введены? Например у меня есть 9 пробелов (нужно так) и требуется удалить 2. в "нормальной" идэ удалится 4? а стрелки курсора тоже будут скакать на 4 пробела?

QtCreator - нормальный. Опция (извиняюсь, что винда):

Распознавание - с начала строки. Т.е. в середине строки - это пробелы и не управляются.
Только удаление будет происходить не по 4. А по отступам. Т.е. нажатие бекспейса уменьшит до предыдущего уровня. А это может быть и 1 и 10 пробелов. Стрелки ходят по пробелам. А зачем по табам? В начало строки - Home - начало текста, а если уже в начале текста, то в начало строки. Ctrl+<влево/вправо> - по словам.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
juvf
Сообщения: 43

Re: Почему программисты боятся табуляции?

Сообщение juvf »

NickLion писал(а):
23.12.2009 11:53
QtCreator - нормальный. Опция (извиняюсь, что винда):


да, действительно backspace умный, но кнопка del остается "не умной". В прицепе наверно можно обойтись и без del, но это еще одно ограничение на свободу программиста. Иногда легче код форматировать с помощью del. Попробую поработать без del-а
Спасибо сказали: