Блог им. SergeyGolubevТри метода

Как известно, любую задачу можно решить несколькими способами. Причем, все они будут правильными.

Применительно к практике это означает, что пользователь в общем случае выбирает между:
— консольной утилитой;
— программой с графическим интерфейсом;
— облачным сервисом.

Строго говоря, есть и четвертый вариант – вообще забить на эту задачу. Но его мы рассматривать не будем. По крайней мере сейчас – такой подход чрезвычайно интересен и заслуживает отдельного разговора.
Итак, какой инструмент лучше выбрать – консольный, графический или облачный? Очевидно, что универсального ответа на этот вопрос нет. Надо исходить как из особенностей самой задачи, так и интересов конкретного пользователя.

Предлагаю свой рецепт. На всеобщее согласие с ним я, разумеется, не надеюсь. Но какое-то рациональное зерно, как мне кажется, в нем есть.

Консольные утилиты.

У консольных утилит много достоинств. С их помощью можно решить очень много самых разных задач – команд значительно больше, чем графических оболочек к ним. Работают такие программы быстро и не требуют постоянного внимания со стороны пользователя. Поисковик по запросу выдаст несколько готовых решений – пользователю остается только скопировать команду в терминал. Список можно продолжить, но основные я указал.

Если бы все было так просто, то у программ с графическим интерфейсом не было бы шансов. У консольных утилит есть один огромный недостаток – их применение связано с колоссальной нагрузкой на память. Не машинную, конечно, а человеческую.

Это ж каким уникумом надо быть, чтобы хранить в голове все эти cp, econv, chown и иже с ними? Теоретически, конечно, выход есть – повесить на стенку таблицу с основными командами. Или тупо зубрить, как зубрят иностранный язык. Но ума это явно не прибавляет, поэтому времени на такие глупости тратить жалко.

Впрочем, есть один естественный вариант погружения в консоль. Собственно говоря, тут полная аналогия с иностранным языком – без труда запоминаешь только то, чем пользуешься часто.

Отсюда и рецепт. Консольные утилиты хороши для решения часто возникающих задач. Или при отсутствии иных вариантов.

Программы с графическим интерфейсом.

Достоинство – установил и забыл. При необходимости открываешь меню и находишь программу по названию (конечно, сперва надо отредактировать название так, чтоб было понятно). Все опции видны сразу и более-менее понятны, хотя порой переводчики умудряются использовать такие термины, что десять раз вспомнишь консоль добрым словом.

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

Стало быть, рецепт будет таким. Программы с графическим интерфейсом хороши для редких операций. И, разумеется, если сама задача предполагает невозможность других решений (например, смотреть фотографии в консоли явно не самая хорошая идея).

Облачные сервисы.

Плюс очевиден – вообще ничего устанавливать не надо, хватит одного браузера. Находишь сервис, ставишь на него закладку и дело в шляпе.

Однако, есть минус – время работы. Ведь сперва надо загрузить данные на сервер, а потом скачать назад полученный результат. Скажем, гигабайтное видео таким образом конвертировать не будешь. Да и вряд ли есть бесплатный сервис, позволяющий обрабатывать такие большие файлы.

Таким образом, облака пока используются по принципу «пусть будет». Они хороши для выполнения разовых задач. Да и то, когда лень искать другие способы.

FOSSBlog, 2011-04

Комментарии (10)

Что-то тут напутаны понятия. Деление на консольный-гуевый — это метод взаимодействия с ПО. Облака — место хранения и обработки данных. Они не исключают друг друга. В вашем примере браузер — гуевый вариант, но в тоже время никто не мешает сделать консольные обертки к облачным сервисам.
С точки зрения пользователя, для которого «метод взаимодействия» и «не мешает сделать» — пустые слова, тут ничего не напутано.
Облачный же сервис определен вполне однозначно через использование ресурсов. Если обработка данных происходит «где-то там», то это облако. Необходимое условие — наличие подключения к сети.
Повашему программист (пользователь), который решает задачи, не должен знать разницы между UI и облачным сервисом?
А если Вас смущает фраза «не мешает сделать», то тогда вот, это уже давно сделали. Или сервисы Google не достаточно облачны?)
Ну почему не должен? Должен, конечно. И знает, кстати :).
Понятно, что для облаков тоже есть разные средства. И с консолью все не просто — есть готовые команды, можно какие-то скрипты писать и давать им осмысленные названия.
Я ж не пытался сделать какой-то полный классификатор — так, разговор на эту тему начать, не более :)
Просто далеко не все четко видят разницу между облаками, SOA и клиент-серверными приложениями. А тут еще в эту кучу UI примешивается. Так совсем легко человека запутать. Осторожнее надо быть.
О, терминологический вопрос в России пока нерешаем. Бизнес двух слов связать не может, да и сам ничего не решает — все идет с запада. Обыватель вообще в офигее, поскольку простыми словами с ним никто не разговаривает. Да еще и выбирает термины, исходя не из технологических аспектов, а что помоднее.
Вот попробуйте объяснить разницу между клиент-сервером и облаком :)
  • avatar
  • LRN
  • 23 апреля 2011, 17:20
  • #
  • 0
completion делает использование коммандлайновых утилит значительно проще.
Здесь, кстати, есть интересное размышление на тему задач, которые решаются облаками.
Мой вариант:
Консольные утилиты — повседневное использование, когда требуется либо большая гибкость при работе (фильтрация, сортировка, очередь заданий), либо выполнение банальной задачи (копирование из А в Б одного файла, например), либо при необходимости использования сценария работы (скрипта). Ну и конечно там, где гуй отсутствует напрочь.
Гуй — во всех остальных случаях.
«облака» при необходимости мобильности, если я правильно понял, что здесь включено в это понятие. Например ленты новостей я читаю только в google reader, потому что могу начать читать дома за десктопом, продолжить за нетбуком, а закончить в телефоне.
  • avatar
  • h31
  • 25 апреля 2011, 22:31
  • #
  • 0
Всё было бы правильно, если бы все три метода были бы равноценны. Нередко встречаю ситуация, когда нужно быстро сделать какую-нибудь мелочь, но оказывается, что полноценных GUI-программ для этой задачи нет, поэтому приходится копаться в манах :(
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.