В чем причина синтаксиса профайла Makefile?

G'day,

Я пересматриваю Python после замечательного прочтения Майкла Спаркса "Проверка орфографии Питера Норвига" на SO DevDay в Лондоне.

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

Это заставило меня задуматься. Интересно, является ли это причиной задержек TAB, которые добавляются к командам, необходимым для создания целевой цели.

Был ли такой же ясности? Чтобы легко различать цель и команды, необходимые для создания цели?

Ответ 1

Из "Искусство программирования Unix" приходит эта цитата:

Почему вкладка в столбце 1? Як был новым, Лекс был совершенно новым. Я тоже не пробовал, поэтому решил, что это будет хорошим поводом для изучения. После того, как я ворвался с моим первым ударом в Лексе, я просто сделал что-то простое с шаблоном newline-tab. Он работал, он остался. А потом несколько недель спустя у меня было население около дюжины, большинство из них - друзья, и я не хотел испортить свою встроенную базу. Остальное, к сожалению, это история.
- Стюарт Фельдман

Ответ 2

Я думаю, что Makefiles ошибается, настаивая на том, чтобы точно указать один символ табуляции для отступа. Какой вред в разрешении пробелов? Там нет потери точности, так как команды оболочки не могут с пользой начинать с пробелов, и нет никакой путаницы между целевыми линиями и командами.