Відступ показує, де ви знаходитесь, в обох стилях синтаксису. Якщо ви пишете або програму VB, або програму C # в одному рядку, незабаром ви не зможете сказати, де ви вкладений синтаксис. Машина розбирає блок, що закінчується фразами або фігурними дужками, але людині потрібні відступи.
Фрази, що закінчуються блоком, походять з епохи перфокарт та паперової стрічки, коли програмування було набагато менш інтерактивним та наочним. Або, справді, зовсім не інтерактивним. Вводити програми було важко, тому програмістам потрібні компілятори, щоб вони були дуже розумні щодо аналізу синтаксису та відновлення помилок.
У ту епоху, що минула, цикл редагування-збирання міг включати підготовку перфокарт із картографічним перфоратором, а потім вишикуватися до вікна подання на роботу, де діловод взяв пробиті картки та подав їх до машини. Пізніше програміст збирає вихід (надрукований на папері) з іншого вікна. Якщо в програмі були помилки, вихід складається з просто діагностики компілятора. Коли час повороту тривалий, додаткова вартість набору тексту end ifзамість просто )виправдана, якщо це сприяє поліпшенню якості діагностики, оскільки програмісту потрібно виправити якомога більше помилок за одну ітерацію, щоб зменшити кількість витрат часу ітерації через вікно подання завдання.
Якщо відсутня фіксуюча фігурна дужка, важко сказати, яка відкрита дужка - та, яка не закрита. (Компілятору, можливо, доведеться проаналізувати відступи, щоб зробити здогадку про освіту.) Якщо ви видалите закриваючу дужку всередині функції, то, схоже, весь решта файлу є частиною цієї функції, що призводить до шквалу непотрібних повідомлень про помилки. Якщо у вас є end functionсинтаксис, компілятор може визначити, де закінчується помилкова функція, відновити та проаналізувати наступні функції належним чином, даючи додаткові діагностики, якщо такі є, які мають значення.
Коли ви працюєте в текстовому редакторі, який знає код, який автоматично відступає та розфарбовує ваш код, на екрані з високою роздільною здатністю, де ви можете бачити шістдесят і більше рядків, аргументи для таких видів незграбних мов більше не застосовуються. Ви можете поступово редагувати та відновлювати програми настільки швидко, що ви можете просто впоратися з однією помилкою. Більше того, переглядаючи великі розділи програми одночасно на екрані та підтримуючи належний відступ, ви можете в першу чергу зменшити кількість таких помилок введення. І хороший редактор тексту програмування навіть позначатиме деякі типи синтаксичних помилок під час введення. Більше того, є складні редактори, які згортають блоки програми на основі її синтаксису, надаючи "структурну форму" уявлення про її структуру.
Lisp використовував круглі дужки з самого початку, і, можливо, не випадково хакери Lisp піонерували програмування як інтерактивний досвід, будуючи системи, які приймали програми невеликими шматками (виразами).
Насправді, символи закінчення вам зовсім не потрібні, як це демонструє мова Python. Ідентифікація може бути просто структурою. Люди вже використовують відступи, щоб упорядкувати структуру коду навіть у мовах, де машина покладається на кінцеві символи чи фрази.