Почему работа в командной строке — умирающее искусство?

6 февраля, 2008

На днях на блоге PerryGeo обнаружил сей замечательный пост. Думаю, он актуален и для многих отечественных ГИС (и не только) пользователей. Поэтому, ниже предлагаю вольный перевод:

К сожалению, большинство пользователей ГИС довольно далеки от командной строки (CLI — command line interface). Порой, даже опытные пользователи, оказываясь один на один с командной строкой, испытывают шок. Насквозь оконные интерфейсы нынешних лидеров ГИС-рынка, облекающие любую операцию в ГУЕвую оболочку (GUI — graphical user interface), только способствуют этому (тех кто еще помнит как работать в командной строке ESRI Arc/Info уже называют «старая гвардия»). К тому же, у пользователей XP и Vista отсутствует доступ к командной строке DOS. У Linux-пользователей дела с этим обстоят по-лучше, но разница уже не так велика, по причине наступления таких дистрибутивов, как Ubuntu (с через чур ‘дружелюбным’ интерфейсом).
Так что же такого ужасного в командной строке? Почему считается, что командная строка сложнее графического интерфейса? Я пришел к выводу что в некоторых случаях все совсем наоборот — набрать что-то и получить назад ответ проще простого! К тому же, создается ощущение полного контроля за компьютером (что, на самом деле правда). Компьютер всегда выполняет только те приказания, которые вы ему даете, каким интерфейсом вы бы не пользовались (GUI или CLI). Вот только GUI не концентрируется на мелочах, поэтому, вам не обязательно точно знать что вы приказали компьютеру. Такая легкость дается ценой многих важных факторов. Судите сами:

  • Автоматизация. Представьте, что вы осуществляете мониторинг данных, и должны обрабатывать их каждый час. Неужели вы будете сидеть за компьютером все 24 часа в сутки?
  • Воспроизводимость. Как только я показываю кому-нибудь операцию, осуществляемую через командную строку, первое, что мне говорят (ну, или хотя бы думают) — «Командная строка — это слишком сложно». Взгляните на следующую команду конвертации картинки из .tif формата в формат ERDAS .img (HFA):

    cd /data/images
    gdal_translate -of HFA aerial.tif aerial.tif.img

    Вы, вероятно, спросите, «А почему бы не воспользоваться графическим интерфейсом, Кликнуть пару кнопок, и получить результат»? Возможно, но повторите это для 2000 картинок. В командной строке вам надо набрать всего лишь:

    cd /data/images
    for i in *.tif; do
    gdal_translate -of HFA $i $i.img;
    done

  • Протоколирование (документирование). В ГИС анализе нет ничего важнее чем документирование работы. Вообразите напряженные пять часов работы. Все уже должно быть готово к 2 часам… наконец, работа закончена, теперь нужен протокол работ — какие процедуры и методы, и как были применены. В CLI вы просто копируете команды из терминала, или смотрите историю введенных команд. Вы можете сохранить историю в простом текстовом файле, и спустя месяц, вновь повторить те же шаги. В GUI вам надо запомнить каждый клик, каждую вкладку, каждую опцию, каждое действие. Часто, это предполагает наличие каких-то дополнительных пояснений, скриншотов и т.п., которые, конечно же, автоматически не сохранялись. И, конечно же, когда на следующий день вдруг понадобиться выполнить те же действия, но на другом материале, ни о каком автоматизированном повторении работы и речи быть не может.
  • Доступность. В командной строке используется простой «плоский» (plain) текст без форматирования. Вы можете распечатать его, и изучить по дороге на работу. Можете отправить его по электронной почте коллегам. Можете использовать cvs для отслеживания изменений. Вы можете передать большой объем информации без необходимости сидеть, и записывать каждую процедуру шаг за шагом, клик за кликом в графическом интерфейсе.
  • Точность. Слишком часто бывает, что GUI-дизайнеры «перемудрили» с интерфейсом в приложении, считая что пользователю не нужно знать ничего кроме необходимого минимума. Проводя аналогию с машиной, можно сказать что вы садитесь за руль, поворачиваете ключ, давите на педаль и едете. И совершенно не заботитесь о том, что происходит под капотом. Но иногда бывает нужно выполнить специфическую процедуру, о которой дизайнеры GUI даже не догадывались. Интерфейс командной строки не связывает ваши руки (так как выполняет именно то, что вы говорите), он осуществляет более точное взаимодействие с компьютером, и гораздо более удобен при отладке сложной проблемы.

Так что не думайте что все окна содержат волшебную кнопку, нажав на которую будет сделана работа. Во многих случаях использование командной строки более эффективно, и даже необходимо.

Далее, автор советует почитать книгу Нила Стивенсона поосновам работы в конслои. Она, разумеется на английском, так что от себя добавляю несколько ссылок на русскоязычные ресурсы по теме:
http://zero.kanet.ru/site/index.php?page=15 — командная строка Linux
http://heap.altlinux.org/alt-docs/modules/unix_base_admin.dralex/ch02.html командная строка UNIX

Один ответ to “Почему работа в командной строке — умирающее искусство?”

  1. sim Says:

    классный пост, хорошо что я не начал переводить, а то было уже собирался 🙂


Оставьте комментарий