Эволюция софта Крис Касперски ака мыщъх Спецвыпуск: Хакер, номер #055, стр. 055-056-2 Уместно употребить такую метафору. Командная строка - это язык, позволяющий выражать любые мысли, какие только есть. Команды состоят из слов, комбинируемых между собой по определенным правилам. Число команд может быть и небольшим, количество же их комбинаций - практически бесконечным. Графический интерфейс - это идеология ресторанного меню, перечисляющего все доступные блюда (с рисунками!), в которые нужно просто ткнуть пальцем. Тратить время на изучение языка необязательно! Правда, и сам выбор ограничен. Например, нельзя заказать "сосиску без зелени и майонеза, а кетчупа побольше". К тому же, чтобы найти эту несчастную сосиску (хотя бы с зеленью и майонезом, который я органически не перевариваю), необходимо перешерстить все пункты меню. Можно, конечно, линейное меню превратить в иерархическое, но тогда возникнет куча блюд, которые относятся сразу к нескольким категориям или же вовсе не поддаются классификации. И чтобы добраться до нижнего уровня вложений, придется проделать большую работу, даже если мы точно помним, где расположена эта сосиска. Горячие клавиши? Хорошая вещь, но их всегда не хватает! К тому же они ничего не меняют. Если нам необходимо вывести на печать все файлы с расширением txt, то здесь нужна не горячая клавиша, а последовательность команд в стиле type * txt > PRN. Попробуй-ка сделать это при помощи графического интерфейса! То есть сделать это, конечно, можно (разработчики просто добавят еще одну кнопку "Групповой вывод файлов на печать"), но… графический интерес представляет собой совокупность готовых инструментов, в то время как язык программирования (и язык командной строки в том числе) позволяет создавать эти инструменты самостоятельно, что называется "без отрыва от производства". Другая сильная сторона командной строки - автоматизация многократно выполняемых операций с возможностью перенаправления ввода/вывода. Вместо того чтобы объяснять знакомому пользователю, какие кнопки необходимо нажимать, а какие лучше не трогать, достаточно сбросить простейший командный файл, который все сделает сам. Причем явная поддержка макросов со стороны разработчика приложения не требуется! |