Зачем нужна КС?

Следует четко разделять задачи, для которых необходим графический (``дружественный'') интерфейс и те, которым более чем достаточно стандартных потоков STDIN, STDOUT, STDERR и параметров, задаваемых при вызове. Первых, как это многим не удивительно, довольно мало и каждая их них охватывает собой некий вполне определенный класс задач. Вторые же оформляются обычно в виде команд и представляют по сути язык общения пользователя с его системой. Практически любая задача, которую можно выразить одним предложением, можно реализовать (а если задача не уникальна, то, вероятно, давно уже реализовано) в виде команды (с командой-подлежащим, или сказуемым, являющейся обычно глаголом в повелительном наклонении, и её параметрами-другими частями речи). Предложения конечно же могут быть сложносочиненными, то есть состоять из нескольких, разделенных, к примеру, точкой с запятой (или символом перенаправления ``|'' для команд), частей. И вполне естественно, что задача которую можно выразить в терминах, знакомых нам и понятных системе, разрешается проще и эффективнее именно набором соответствующей фразы/предложения, нежели использованием некоего интуитивно-дружелюбного интерфейса14.

Возникает вопрос -- так ли необходимо изучать командную строку, если любому доступен парк ПО на все случаи жизни? Отвечу словами Фредерика Брукса: ``не бывает серебряной пули''. Редко можно найти программу целиком и полностью отвечающую нашим потребностям в настоящем и будущем. Это возможно только тогда, когда потребности сами определяются исходя из наличия и возможностей существующего ПО.

Соответственно при возникновении очередной задачи в Unix принято разбивать её на максимально простые подзадачи (каждой из которых соответствует некоторая программа-команда), и запускать конвейерную обработку ими входных данных.
Например, задача: ``выделенный текст перекодировать из неизвестной, но русской кодировки в koi8r, результат поместить в буфер обмена''.
Решение: xsel|konwert any/ru-koi8r|xclip.
Как видите, результат является практически дословным переводом фразы-задачи на понятный системе язык, причем заметно более лаконичный...

Кроме того привычка к формулированию своих действий вербально (в виде слов/предложений/скриптов), позволяет заметно повысить эффективность работы и на дектопном поле. К примеру, многие догадываются, что в WindowsOS иконки существуют не только для запуска приложений, но и для удобного использования принципа Drag&Drop. То есть перетащив файл на иконку Word, мы запускаем программу на открытие данного файла. Но многие ли используют иконки для чего-либо большего? Например, для автоприведения файла к какому-либо частоиспользуемому нами виду15, что едва ли займет пол десятка строк на word-basic?



Сноски

... интерфейса14
Естественно во множестве ситуаций использование дектопной метафоры оправдано и как следствие -- наиболее эффективно. К сожалению, в последнее время оную используют и в совершенно неадекватных задаче ситуациях, что влечет ничем неоправданные потери эффективности нашей работы.
... виду15
Да, это, конечно же, можно сделать парой кликов в самом Word, но зачем заставлять себя в пустую расходовать время?

Copyleft © 2002-2003 г.   Nikolay A. Panov, "Intro To Linux" (orig),  niksite@mail.ru,  ICQ: 122-40-8888



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости