В чем причина синтаксиса пробелов в Makefile? - PullRequest
19 голосов
/ 18 ноября 2009

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

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

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

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

Ответы [ 2 ]

48 голосов
/ 19 ноября 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...