Описание командной строки и не только

На модерации Отложенный

Вспомнил, тут, как описывается командная строка в программах и решил, пока помню, записать. Хорошие программисты описывали аргументы программной строки следующим образом:

Основная функция программы, версия
имя программы [необязательная опция]<обязательная опция>[ещё одна не всегда нужная опция <у которой обязательно должно быть что-то ещё>]...

А далее следовало развёрнутое описание что как и с чем и почему по каждому аргументу в отдельности. Некоторые программы позволяли углубиться в описание той или иной области указывая её после запроса о помощи. Пример такой заботы можно увидеть в gcc.

Хорошие программисты зарезервировали для просьб о помощи опции -h и --help в идеологически выдержанных системах или /?

в идеологически невыдержанных. Чаще всего, аргументы командной строки разделяются пробелами/табуляцией, но иногда бывают и другие разделители типа знака равенства.

Плохие программисты этого не делали и уже только поэтому являются плохими. Ведь интернет был не всегда. А файлы помощи некоторые "распространители" выкидывали ради экономии места на дискетах/CD/DVD. Некоторые, например LibreOffice, и по сей день продолжают так делать, мотивируя это экономией траффика в Африке и Австралии.