Вкладки проти пробілів - який правильний символ відступу для всього, у будь-якій ситуації коли-небудь? [зачинено]


84

Стандарти кодування для коду, розміщеного на drupal.org, пропонують використовувати два пробіли для відступу коду; інші сайти пропонують використовувати вкладки для відступу коду.

Який належний характер відступу для всього та в будь-якій ситуації? Будь ласка, поясніть відповідь, яку ви даєте.



13
IDE за замовчуванням FTW - просто натисніть клавішу вкладки і подивіться, що станеться
user281377

Що б ви не вибрали, ним слід користуватися всією командою, але не тоді, коли один використовує пробіли інших вкладок.
Учень

1
Я спробував відредагувати це, щоб виправити те, що вкладки / пробіли - це єдиний спосіб коду відступу. Редагування було видалено, але, сподіваємось, цей коментар залишиться: замість символів відступу, чому б не використати лівий край замість цього? - це може бути повністю автоматизовано редактором, а текстові процесори робили це десятиліттями.
pgfearo

4
Я дійсно не думаю, що тут має бути "прийнята" відповідь. Той факт, що відповідь з меншою кількістю голосів насправді є першим свідченням того: чому запитуючий повинен отримати особливу владу (тобто можливість спочатку поставити свою улюблену відповідь) лише тому, що вони задали питання?
Дін Хардінг

Відповіді:


129

Пробіли

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

З огляду на те, скільки пробілів (або вкладок) становить відступ, важливіше бути послідовним у всьому коді, ніж використовувати якесь конкретне значення зупинки вкладки.


42
Ваш другий абзац невірний; відповідь 4!
Daenyth

5
@Daenyth - можливо, якщо ви використовуєте фігуру-фігурну мову. Більшість Паскаль / Delphi використовує 2.
Деррі

72
Чому мені слід призначити ваш 2 або 4 ПРОСТОРИ відступу, коли TAB можна динамічно встановити і вказати один рівень відступу?
Черга Jé

3
@MGOwen Аргумент часу завантаження для кодування веб-сайтів сьогодні легко вирішується за допомогою мінімізації джерел на css / javascript та видаленні пробілів у HTML. Дивіться mod_pagespeed, щоб побачити, що я маю на увазі.
Еван Плейс

42
"Вкладка може бути різною кількістю стовпців залежно від вашого оточення" Так, саме ця перевага. Кожен може налаштувати його на свій смак і бути щасливим.
Андреа

249

Вкладки

Тепер, звичайно, консистенція має значення більше ніж одна, і хороший ІДЕ робить відмінності незначними. Це означає, що суть цієї нитки - це свята війна, тому:

Я віддаю перевагу вкладкам:

  • Вони є персонажем, призначеним спеціально для відступу
  • Вони дозволяють розробникам з різними уподобаннями в розмірі відступу змінювати, як виглядає код, не змінюючи код (розділення даних та презентація для поспільної виграші!)
  • Неможливо щось напівзаборонити вкладками. Тож, коли ви копіюєте код з якогось веб-сайту, який використав 3 пробіли, у відведений 4-пробільний файл, вам не доведеться мати справу з невідповідністю.

12
Як щодо копіювання цього відмітного коду на 3 пробіли у ваш файл з відступом, який ви встановили на вкладки на 3 пробіли? Коли ви надсилаєте свій код співвітчизникам, вони задаються питанням, чому ця функція має такий поганий відступ!
Вейн Вернер

27
Спочатку вкладки не призначені для відступу, вони призначені для складання табуляції , і виконувати жахливу роботу на цьому ...
Timwi

14
@Timwi: Вікіпедія, схоже, говорить, що вони призначені для переміщення курсору до наступного набору фіксованих стовпців. Не схоже, що табуляція була основною функцією. Також я мав на увазі епоху після друкарських машинок.
Fishtoaster

40
Плюс багато програмістів витрачають значну кількість часу на написання html, css тощо. Фактом було те, що файл із 4 пробілами замість вкладок на 5-15% більше насправді є значущим. Приклад: ця сторінка, на якій ви зараз перебуваєте, завантажується щонайменше на 10% повільніше, ніж повинна бути, оскільки команда SE використовувала пробіли . Перевірте самі.
MGOwen

23
Ще одна перевага такого підходу - менша кількість натискань клавіш при використанні клавіш зі стрілками для навігації вліво-вправо.
Ніколь

117

Використовуйте вкладки для відступу початку рядка, по одній вкладці на рівень відступу, і дозвольте всім вибрати, наскільки вони хочуть.

Використовуйте пробіли, якщо ви розміщуєте символи в межах рядка, тому вони завжди вибудовуються незалежно від розміру вкладки.

І знайдіть і пробийте всіх ранніх авторів програмного забезпечення, які дозволяють цій дурній справі стати проблемою в першу чергу.
(Серйозно, чому це навіть щось, про що йде мова? Далі ви скажете мені, що ви також хочете використовувати кілька символів для розривів рядків!)


33
Так, так, так, так. Сто відсотків так. Це дозволяє кожному встановити власну ширину вкладок, зберігаючи табличне форматування. Якщо ви турбуєтесь про збереження в межах 80 стовпців (як ви, мабуть, повинні бути!), Тоді просто виберіть довільний максимальний очікуваний розмір вкладок (наприклад, 4) та тримайте в межах поля для вкладок на цій ширині. Чесно кажучи, це так важко?
Джон Перді,

Так, але не використовуйте пробіли для рядків у межах рядка. Можливо, ваші колеги використовують пропорційний шрифт, щоб ваше мистецтво ASCII виглядало дивно на своїх екранах.
paperjam

3
Тут єдина правильна відповідь
Дж. Ашворт

76

Вкладки

  • дозволяють помилкам бути помітнішими , це дратує мікроуправління пробілами.
  • є послідовними , вони використовуються лише для відступу, якщо ви не коментуєте неправильно.
  • настроюються , ви можете вказати в параметрах редактора, наскільки вони широкі.
  • є більш продуктивними , чому наберіть 4 пробіли, коли ви можете потрапити на 1 вкладку.
  • займати менший розмір, ніж кілька пробілів.
  • займають більше місця, ніж пробіл.
  • потрібно менше часу, щоб пройти .
  • прагнуть краще працювати в ІДЕ.

Пробіли слід використовувати там, де вкладки абсолютно марні.

Навіть для вирівнювання параметрів та коментарів вкладки все одно працюють краще .


24
wrt "більш продуктивний", особисто я натиснув TAB і дозволив IDE зробити перетворення для відповідної кількості символів пробілу, щоб ввести. Можливо, що вам потрібно оновити: p?
Матьє М.

3
-1: Помітніші помилки: неправда; послідовно: навряд чи через налаштованість: так, але це також є недоліком; більш продуктивний: неправда, практично всі іденти можуть перетворювати вкладки в пробіли; менший розмір: так, але практично? немає; менше часу: немає з розумним IDE; прагнуть працювати краще: зовсім не в тому випадку, якщо ви використовуєте кілька середовищ та інструментів
MaR

@MaR: Помітні помилки правдиві, ширина вкладки більша. Також ... Пітон! Вкладки узгоджуються, оскільки одна вкладка - це відступ, тоді як у іншому випадку потрібно визначити, скільки пробілів буде використано для відступу. Налаштування - це перевага. Ви в першу чергу використовуєте вкладки, тож це продуктивніше. Здається, ви навіть не можете дати належних міркувань, чому це непрактично, ненавидять ненавидіти ...;)
Tamara Wijsman

@TomWij: Наскільки вкладка більша за еквівалентну кількість пробілів? Python - це практично єдина мова, яка отримала право білого простору безпечно використовувати вкладки (але все ж - він пропонує лише невелику перевагу порівняно з "вставлення пробілів"). Спробуйте також інші мови, застарілі середовища, diff / spajanje, термінали, sccs, щоб побачити, чому вкладки все ще є утопічним "ідеальним".
11.11.11 р.

@MaR: Де я вказав "еквівалентну кількість пробілів"? Я спробував все це, вкладки чудово працюють в них!
Тамара Війсман

41

Всі аргументи для вкладок теоретично чудові. Але ...

У теорії практика і теорія однакові. На практиці їх немає.

Так, за допомогою вкладок можна визначити рівень відступу. І так, ви можете використовувати комбінацію вкладок і пробілів для вирівнювання речей. І в ідеальному світі це було б

Насправді ви не можете побачити різницю між пробілами та вкладками, вони, як видається, завжди змішуються під час переміщення коду, а перегляд коду в іншій програмі, у якій вкладки встановлені на 8 стовпців, є неприємністю.

Раніше я використовував вкладки. Потім я почав працювати у складі команди та ділитися кодом. Я швидко став прихильником простору. Тож, хоча я можу співчувати утопії вкладок, я не можу уявити, щоб не використовувати пробіли.


6
ви можете отримати редактора, як Kate, який представляє вкладки з символом "привид" - я легко бачу вкладки проти пробілів при кодуванні.
HorusKol

8
Кожен редактор має опцію "показати пробіл" зараз, а у Visual Studio є опція "tabify"
Chris S

2
Хороший аргумент. Ось чому я відмовився від спроб переконати людей, що вкладки є більш логічними. Навіть програмісти, яких слід використовувати для абстрактного мислення, схоже, плутають вкладки та пробіли ("якщо це схоже на чотири пробіли, то це повинно бути чотири пробіли!"). Цвяхом у труні для мене було те, що, здається, неможливо налаштувати Emacs на відступ лише вкладками.
Мартін Вілканс

3
+1 Утопія вкладки чудова, але кожен раз, коли я переміщував код між редакторами різної ширини вкладок, код був зіпсований та нерівний. Надто просто мовчки робити неправильну справу за допомогою вкладок.
Манкарсе

Я також використовував вкладки, але у мене виникли проблеми з деякими IDE, які не могли вставити пробіли для рядків продовження, і я ненавиджу замінювати всі ці автоматично вставлені вкладки пробілами (Visual Studio був одним з них). Тому я просто приклеював пробіли. Плюс пробіли дозволяють використовувати напіввеликі відступи для таких речей, як public:у деклараціях класу C ++, щоб вони виглядали красивішими (особливо з вкладеними класами).
szx

31

105
Тільки тому, що ти відомий, це не робить тебе правильним.
Черга Jé

@Xepoch: ти читав їх обгрунтування :)?
Матьє М.

5
@Matthieu M., так, я прочитав кожного, але все ще не згоден. Я також не люблю оливки, але не робить мене неправильним, тому що це роблять інші. Мені здається смішним, що люди не використовуватимуть вкладку для відступу, але саме тому вони називають їх священними війнами ...
Jé Queue

2
@Xepoch: так, я вважаю, що кожен має право на свою думку :) Я думаю, хоча Гвідо вказав на головне питання: змішування вкладок і пробілів є злом, оскільки обидва видаються користувачеві як "порожній простір".
Матьє М.

3
@Fishtoaster: Коли ти кажеш, що Джоел говорить пробіли, чи не повинно бути посилання на фактичну цитату Джоеля? Посилання просто переходить на форум JoelOnSoftware, де деякі ppl (швидше за все, не говорять для Joel) обговорюють вкладки та пробіли.
Андреас Магнуссон


20

Я абсолютно. ненависть. 4. пробіли.

Чому? Головним чином тому, що мені набридло навігації коду за допомогою клавіатури і мені постійно left left left leftдоводиться натискати, щоб перейти на один відступ. Це народилося з ранніх версій Notepad ++ і навіть простого блокнота Windows, де не було такого поняття, як кнопка форматування. У мене було так багато питань, коли люди будуть використовувати лише 3, коли я використовував 4 скрізь, серед іншого.

Інша причина полягає в тому, що символ вкладки існує спеціально для відступу і лише пізніше був прийнятий для навігації. Чому ми робимо, space space space spaceколи простий tabпрацював? Чому IDE повинні правильно працювати з 2-5 проміжним кодом та форматуванням, коли проста вкладка та параметр налаштування працюватимуть?

На жаль, я меншість.


31
Ви неефективні при перегляді кодів клавіатури. Скористайтеся CTRL + LEFT та CTRL + RIGHT, щоб пропустити пробіл та маркери. Тож відступ не матиме значення.
Wizard79

7
Звідки походить це неправильне уявлення про те, що "вкладки існують спеціально для відступу"? Вкладки називаються вкладками (табуляторами), оскільки вони були винайдені для складання таблиць, а не для відступу , і вони виконують жахливу роботу в обох.
Тімві

7
@Lorenzo: Ви неефективні при перегляді кодів клавіатури. Вам слід скористатися wі b(або eі ge), щоб пропустити пробіл та лексеми: P
R. Martinho Fernandes

6
Заради диявольської пропаганди: не наносьте погано відформатований код редакторам, які ви вважаєте неповноцінними. Використовуйте вкладки.
Джон Перді

11
@Timwi: вибачте за некроз, але клавіша вкладки комп'ютера НЕ була придумана для табуляції. Версія TYPEWRITER цього ключа була, але до того часу, коли клавіатури еволюціонували для використання з комп'ютерами, клавіша табуляції використовувалася для відступу більше, ніж для складання таблиць, а термін "вкладка" став синонімом відступу. Вкладки для КОМП'ЮТЕРІВ мають відступати, і лише за умовою назва клавіші відповідає імені друкарської машинки. Ваш аргумент схожий на те, що ключ повернення комп'ютера призначений для початку нового рядка та переміщення курсору в крайній лівий бік, тому що це було для друкарської машинки :)
Beofett

12

Мені особисто подобається використовувати вкладки у всьому, оскільки кожен розробник може контролювати кількість відступів на вкладці. Таким чином ви отримуєте гнучкість у відображенні.

З цього приводу я, як правило, імітую той стиль кодування у файлі для початку (оскільки я витрачаю багато часу на виконання робіт з обслуговування).


3
Це руйнується, як тільки ви почнете відступати за будь-яким іншим, ніж вкладення заяви. Наприклад, якщо ви хочете вирівняти аргументи функції в одному стовпці, по одному на рядок. Це можливо, змішуючи вкладки та пробіли, але дуже втомливо.
finnw

2
Це зовсім не нудно, оскільки це означає, що ви можете прокласти вкладку більшу частину шляху там, а потім просто використовувати пару пробілів, а не вводити десятки пробілів просто, щоб дістатися до потрібного стовпця.
Jordan Reiter

1
@finnw ви припускаєте, що всі використовують шрифт з односхилим розміром - у 2012 році значна кількість розробників використовують пропорційно. Якщо у вас є ліві символи без пробілів зліва від першого аргументу, немає жодного способу гарантувати, що аргументи в наступних рядках будуть вирівнюватися для всіх.
paperjam

Ви ніколи не пробували писати HAML, чи не так?
alt

2
Я ненавиджу це говорити, але не можу уявити програмування шрифтом змінної ширини. Сучасна невірність стандартів, що стосуються карликів, табуляції та пробіли, все ... я просто старію? (Що трапляється, коли ви отримуєте повідомлення про помилку з рядком та номером стовпця?)
lunchmeat317

10

Я не думаю, що існує таке поняття, як належне відступ (принаймні, не без незначної війни).

Особисто мені подобаються чотири простори. Вони дозволяють мені читати код набагато швидше, і вони виглядають однаково у кожному редакторі - навіть у Vi.


9
vi (а точніше, vim) - один з кращих редакторів для роботи з вкладками. Окрім того, що ви можете встановити ширину вкладок і автоматично розширитись на пробіли (як більшість редакторів), ви також маєте softtabstopможливість retabі retab!команд, і команд.
finnw

Чи дійсно діти могли б померти, якби ми просто сказали 4 місця, скрізь, завжди, вибору немає - і продовжили?
MGOwen

2
Чотири простору не виглядають скрізь однаково. Зараз більше програмістів вибирають пропорційні шрифти у своїх IDE для більш приємного та продуктивного кодування. Чотири пробіли можуть виглядати досить крихітним відступом у цих ситуаціях.
paperjam

8

Пробіли, тому що, коли ви вирівнюєте коментарі праворуч від коду, списків параметрів функцій або складних багаторядкових виразів або речей такого характеру, ви хочете, щоб ваша прекрасна робота виглядала правильно для всіх . Якщо ви використовуєте вкладки і дозволите людям по-різному встановлювати свої вкладки, вони порушать вирівнювання для всіх, крім найпростіших випадків відступу коду.

Крім того, очевидно, що всі люди в світі повинні використовувати vim, завдяки чому банально відступати, відступати та переходити через "стоп-вкладки" навіть у файлах, розміщених з пробілом.


Це справді гарна особливість багатьох редакторів - можливість швидко пройти крізь кургани та кургани просторів.
Крістіан Манн

18
Здається, ви малюєте арт ASCII, а не кодуєте.
rmac

3
Я додам: вкладки не використовуються для вирівнювання. Якщо ви користувач вкладки та хочете вирівняти, спочатку потрібно ввести правильну кількість вкладок для відступу та ТОГО правильну кількість пробілів для вирівнювання. Лише тоді ви бачите відформатований вкладку код прямо для всіх користувачів та редакторів.
MaR

6

Вкладки - це природний та православний вибір, оскільки вони за визначенням використовуються для відступу.

На жаль, вкладки реалізовані нерівномірно, тому єдиним реальним світовим рішенням є 4 місця.


8
З якого часу вкладки (табулятори) використовуються для відступу "за визначенням"? За власним визначенням вони були винайдені для складання рахунків (хоча вони теж роблять жахливу роботу).
Тімві

2
Технічно, ключ повернення був винайдений для переміщення голови машинки до передньої частини лінії, тоді як перехід до наступного рядка здійснювався обертанням валика. Пізніше ключ повернення також автоматично просуває ролик. Ти не бачиш, як люди зациклюються на ключі повернення / введення. Клавіша вкладки була чітко додана до комп'ютерів для виконання відступів. Це цифровий аналог вкладки, який я мав на своїй старій неелектричній машинці. Зупинки вкладок можна встановити для переміщення ролика в будь-яке обране вами положення, майже ідентичне поточній ролі клавіші вкладки в відступі.
Йордан Рейтер

@ JordanReiter RE: "Ви не бачите, як люди зависають на клавіші повернення / введення.": Ви ніколи не стикалися з CR (являє собою переміщення голови машинки на передню частину лінії) / LF (являє собою обертання ролика до наступного рядка) питання?
Макс Нанасі

1
Так, але це справді проблема ОС, а не клавіатура. Незалежно від того, на якому комп’ютері ви знаходитесь, ви очікуєте, що натискання клавіші клавіші Enter або клавіша повернення перейде до наступного посилання. Ви не використовуєте один ключ для випуску каналу рядків та один для повернення перевезення.
Йордан Рейтер

4

Вам, очевидно, потрібен комбінований підхід.

Якщо ви ділитесь кодом з іншими розробниками, вам потрібно стандартизувати, і оскільки це неможливо (koff koff), вам потрібно змусити всіх робити чотири пробіли.

Тоді вам потрібен досить розумний редактор, щоб не бути дурним з цього приводу, щоб знати, що він повинен обробляти лінію з чотирма пробілами в передній частині так, як вона з відступом. Будь-який сучасний редактор IDE або програмістів може автоматично передавати код із пробілами замість вкладок.


4

Чому хтось не може цього здійснити:

  • код зберігається у компактному форматі, корисному для цієї системи
  • оскільки кожен розробник відкриває код, він форматується саме так, як вони цього хочуть
  • коли вони закінчать, поверніться до компактного формату

Усі щасливі, оскільки всі бачать свій "власний" формат

Це так складно?


2
Тому що мені не вистачає вільного часу, щоб виправити всі існуючі редактори та IDE, якими користуються люди, і - навіть якби я це - переконати всіх оновити, було б ще важче.
Пітер Бауфтон

Я впевнений, що вони могли б вбудувати його у SVN або знайти якийсь інший спосіб виходу з нього кінцевих інструментів.
часник адольфа

13
Звучить на зразок вкладок. Кожен розробник відкриває файл і отримує потрібну ширину відступу.
rmac

1
Ви вже можете налаштувати RCS або CVS для використання indentпрограми.
Черга Jé

3
і доцільно використовувати відступ, щоб примусити стандартизацію відступів / розробки коду, щоб розробники із смішними ідеями інтервалу не звинувачувались / не коментувались у всіх цих форматуваннях
Тім Вілліскрофт

3

Пробіли або вкладки - що насправді говорить Атвуд - це вибрати одне і бути послідовним у своєму проекті. Єдиний святий граал форматування коду - це переконатися, що його відповідність, щоб психопат, який підтримує ваш код, після того, як ви не будете змушені постійно виправляти ситуацію.

Це означає, що якщо ви працюєте в Python або будь-якій іншій мові, де пробіл - це фактична конструкція програмування, я не можу уявити собі використання вкладок.


4
Я використовую вкладки. Я не знаю, чи виконували ви будь-яке програмування Python, але це має відносне відступ. Якщо рядок 1 - х відступів, а рядок 2 - х + 1 відступів, вважається більше відступів. Відступи можуть бути подвійними пробілами, 4 пробілами, вкладками, не важливо, доки ви послідовні.
Macha

@Macha - Дякую за відгук. Я ніколи не працював над розробкою Python, але мої, хто все сказав мені, вони використовують пробіли, тому цікаво зустріти когось, хто використовує вкладки.
Ной Гудрих

3
Я використовую в роботі вкладки з пітоном. Це жахливо.
rhettg

3

Я хлопець із 4 космічних типів, вкладки просто не несумісні.


5
Як вони "не відповідають"? Вони завжди є одним символом, що представляє єдиний рівень відступу. Це саме визначення послідовної схеми відступу. (І що ви можете особисто, не зачіпаючи нікого іншого, візуально вважати, що будь-який обраний вами спосіб є плюсом .)
Гонки легкості в Орбіті

3

Мабуть, вкладки заплутаються в Delphi, тому я не використовую вкладки в Delphi.

Однак я все інше використовую за допомогою Emacs і завжди використовую вкладки, оскільки мої вкладки йдуть саме там, де я хочу.


Чи можете ви навести приклад цього? Мені чесно цікаво, тому що я використовую Delphi протягом 15 років і ніколи цього не бачив.
ГрандмайстерB

1
edn.embarcadero.com/article/10280#4.3 Це лише посібник зі стилів, але у нас були деякі дивні помилки, які я не можу пояснити через вкладки. Це також може бути пов’язано з візуальним джерелом безпеки. Я не можу це пояснити, це лише частина кращої нашої компанії.
Пітер Тернер

1
Проблема полягає в тому, що параметри встановлення для (принаймні) деяких версій Delphi не відповідають звичайним ідіомам Delphi. Таким чином, ви закінчите з кодом, який має BOTH.
Геррі

3

Відповідь полягає в тому, що не може бути єдиного належного символу відступу для кожної ситуації. Форматування за допомогою символів є негнучким і може спричинити конфлікт, коли в команді використовуються різні стилі.

Єдиний спосіб відформатувати код бездоганно та гнучко у різних стилях форматування - це зробити це практично, тобто без жодних символів відступу. Єдиний редактор коду, який я знаю, але це підтримує, - це той, який використовується у наведеному нижче прикладі:

Для демонстрації віртуального форматування , нижче скріншот з XSLT редактора * , який використовує цей метод вдавлювання (є також коротке відео тут ). Кожен символ у XSLT був виділений жовтим кольором для ілюстративних цілей, що дозволяє чітко бачити лише символи вкладки або пробілу у вмісті. Відступ коду обробляється системою відтворення редактора, регулюючи лівий край (який має білий фон).

введіть тут опис зображення

Єдині провідні символи пробілу передують рядкам Книги , оскільки це буквальний текстовий зміст, а не код, ці символи простору повинні бути збережені.

За допомогою віртуального форматування ви вибираєте ширину відступу відповідно до середовища та стилю відступу, не зачіпаючи жодних символів у вихідному файлі. Ви навіть можете встановити ширину відступу на 0, якщо вам потрібен сплющений вид коду, як показано нижче:

введіть тут опис зображення

Щоб порівняти це з форматуванням символів простору, той самий XSLT, відкритий у редакторі без віртуального форматування, перетворюється автоформатором цього редактора в такий:

введіть тут опис зображення

Більш великі порожні жовті блоки на скріншоті вище чітко показують пробіли символів, додані форматором звичайного редактора. На жаль, їх зараз не можна відрізнити від реального контенту, тому XSLT доведеться змінити, щоб виправити цю проблему.

Підсумок

XSLT - це, мабуть, крайній випадок, але цей принцип справедливий для багатьох мов програмування: символи повинні використовуватися для контенту та шукати альтернативний метод, коли справа стосується форматування.

** Розкриття інформації: Редактор XSLT з віртуальним форматуванням був розроблений моєю власною компанією *


1
На жаль, ти, мабуть, на 50 років попереду свого часу. Відверто абсурдна думка про те, що програми - це послідовності персонажів, все ще дуже глибоко вписана у свідомість більшості програмістів.
Том Андерсон

3

Не згадано досі: Є мови (Python, Haskell), де значення мають відступи. Але 1 символ вважається одним символом, будь то пробіл чи вкладка, тому відступ, який бачить компілятор, може бути не таким, як ви бачите на екрані, якщо ви використовуєте вкладки.

Тому в таких мовах, як Haskell, пробіли є обов'язковими. У Makefiles TABS є обов'язковим. В усіх інших це питання особистого смаку, і в наш час не дуже багато - кожен порядний редактор має команду "(провідні) вкладки до пробілів" та "(провідні) пробіли до вкладок".


2

Раніше я використовував пробіли, але останнім часом я використовував вкладки суто, тому що це було Eclipse, коли я нарешті помітив. Всі інші розробники в моїй команді використовують Eclipse, тому було сенс стандартизувати вкладки, коли ми зрозуміли, що вже використовуємо їх протягом століть, і немає ніяких причин турбуватися про зміни в пробіли. Я був здивований тим, наскільки це було без випуску.

Встановлення розміру відображеної вкладки на 3 або 5 символів у вашому IDE значно спрощує розмежування між кодовими ділянками, які відрізані пробілами (майже завжди 4 за ці дні), і тими, які відрізані вкладками.


1

Вже було надано безліч аргументів, але ніхто не згадав, куди ми могли б піти в майбутньому .

Вкладки та пробіли!

В ідеалі код повинен вважатися даними, а не зберігатися в будь-якому конкретному форматі тексту. Будь-який розробник може застосувати власний уподобаний вид. Крім того, ця думка не повинна обмежуватися лише текстом , але може включати таблиці, підбір кольорів та математичні формули.

Ця ідея не надто надумана. Мене вперше змусив мене зрозуміти, що це вирішує всю дискусію, саме мовний редактор JetBrain Programming System (MPS), що додає багато додаткових можливостей. (Так, це можливо за допомогою плагінів редактора, але робота над текстом безпосередньо додає стільки зайвих складностей, на відміну від підходу, який MPS використовує.)

На відміну від вкладок та пробілів, є невеликі недоліки, які можна зазначити для роботи безпосередньо над абстрактними синтаксичними деревами . Все, що потрібно, це для того, щоб технологія дозріла до комерційно життєздатного продукту. Перші ознаки цього проявляються. В основному був створений MPS, комерційний редактор сценаріїв дій, Realaxy .

Я хотів би бачити, як один із великих гравців стрибає на концепцію цієї технології і бачить, що відбувається!


0

Ні краще, ні гірше. Важливо лише бути послідовним.

Якщо ви одна команда, виберіть все, що вам особисто подобається. Поміркуйте, яка поведінка улюбленого редактора за замовчуванням, але виберіть все, що вам подобається.

Якщо ви в команді, робіть те, що робить команда. Період.

У своїх різних роботах я використав два пробіли, чотири пробіли, вісім пробілів, вкладки, пробіли та вкладки, я думаю, що, можливо, я також використав один пробіл. Я кажу своєму редактору, що робити тоді я не думаю про це знову, редактор розробив деталі.

Єдине інше - переконатися, що ви вибрали розумний редактор. Emacs або vi? Тепер це священна війна , я готовий боротися :-)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.