Как известно, любую задачу можно решить несколькими способами. Причем, все они будут правильными.
Применительно к практике это означает, что пользователь в общем случае выбирает между:
— консольной утилитой;
— программой с графическим интерфейсом;
— облачным сервисом.
Строго говоря, есть и четвертый вариант – вообще забить на эту задачу. Но его мы рассматривать не будем. По крайней мере сейчас – такой подход чрезвычайно интересен и заслуживает отдельного разговора.
Итак, какой инструмент лучше выбрать – консольный, графический или облачный? Очевидно, что универсального ответа на этот вопрос нет. Надо исходить как из особенностей самой задачи, так и интересов конкретного пользователя.
Предлагаю свой рецепт. На всеобщее согласие с ним я, разумеется, не надеюсь. Но какое-то рациональное зерно, как мне кажется, в нем есть.
Консольные утилиты.
У консольных утилит много достоинств. С их помощью можно решить очень много самых разных задач – команд значительно больше, чем графических оболочек к ним. Работают такие программы быстро и не требуют постоянного внимания со стороны пользователя. Поисковик по запросу выдаст несколько готовых решений – пользователю остается только скопировать команду в терминал. Список можно продолжить, но основные я указал.
Если бы все было так просто, то у программ с графическим интерфейсом не было бы шансов. У консольных утилит есть один огромный недостаток – их применение связано с колоссальной нагрузкой на память. Не машинную, конечно, а человеческую.
Это ж каким уникумом надо быть, чтобы хранить в голове все эти cp, econv, chown и иже с ними? Теоретически, конечно, выход есть – повесить на стенку таблицу с основными командами. Или тупо зубрить, как зубрят иностранный язык. Но ума это явно не прибавляет, поэтому времени на такие глупости тратить жалко.
Впрочем, есть один естественный вариант погружения в консоль. Собственно говоря, тут полная аналогия с иностранным языком – без труда запоминаешь только то, чем пользуешься часто.
Отсюда и рецепт. Консольные утилиты хороши для решения часто возникающих задач. Или при отсутствии иных вариантов.
Программы с графическим интерфейсом.
Достоинство – установил и забыл. При необходимости открываешь меню и находишь программу по названию (конечно, сперва надо отредактировать название так, чтоб было понятно). Все опции видны сразу и более-менее понятны, хотя порой переводчики умудряются использовать такие термины, что десять раз вспомнишь консоль добрым словом.
Недостаток – можно понаставить столько всяких приложений, что потом в меню заблудишься. Но проблема в принципе решаема – для программ, которые нужны от случая к случаю, можно создать отдельный раздел в меню.
Стало быть, рецепт будет таким. Программы с графическим интерфейсом хороши для редких операций. И, разумеется, если сама задача предполагает невозможность других решений (например, смотреть фотографии в консоли явно не самая хорошая идея).
Облачные сервисы.
Плюс очевиден – вообще ничего устанавливать не надо, хватит одного браузера. Находишь сервис, ставишь на него закладку и дело в шляпе.
Однако, есть минус – время работы. Ведь сперва надо загрузить данные на сервер, а потом скачать назад полученный результат. Скажем, гигабайтное видео таким образом конвертировать не будешь. Да и вряд ли есть бесплатный сервис, позволяющий обрабатывать такие большие файлы.
Таким образом, облака пока используются по принципу «пусть будет». Они хороши для выполнения разовых задач. Да и то, когда лень искать другие способы.
Что-то тут напутаны понятия. Деление на консольный-гуевый — это метод взаимодействия с ПО. Облака — место хранения и обработки данных. Они не исключают друг друга. В вашем примере браузер — гуевый вариант, но в тоже время никто не мешает сделать консольные обертки к облачным сервисам.
С точки зрения пользователя, для которого «метод взаимодействия» и «не мешает сделать» — пустые слова, тут ничего не напутано.
Облачный же сервис определен вполне однозначно через использование ресурсов. Если обработка данных происходит «где-то там», то это облако. Необходимое условие — наличие подключения к сети.
Повашему программист (пользователь), который решает задачи, не должен знать разницы между UI и облачным сервисом?
А если Вас смущает фраза «не мешает сделать», то тогда вот, это уже давно сделали. Или сервисы Google не достаточно облачны?)
Ну почему не должен? Должен, конечно. И знает, кстати :).
Понятно, что для облаков тоже есть разные средства. И с консолью все не просто — есть готовые команды, можно какие-то скрипты писать и давать им осмысленные названия.
Я ж не пытался сделать какой-то полный классификатор — так, разговор на эту тему начать, не более :)
Просто далеко не все четко видят разницу между облаками, SOA и клиент-серверными приложениями. А тут еще в эту кучу UI примешивается. Так совсем легко человека запутать. Осторожнее надо быть.
О, терминологический вопрос в России пока нерешаем. Бизнес двух слов связать не может, да и сам ничего не решает — все идет с запада. Обыватель вообще в офигее, поскольку простыми словами с ним никто не разговаривает. Да еще и выбирает термины, исходя не из технологических аспектов, а что помоднее.
Вот попробуйте объяснить разницу между клиент-сервером и облаком :)
Мой вариант:
Консольные утилиты — повседневное использование, когда требуется либо большая гибкость при работе (фильтрация, сортировка, очередь заданий), либо выполнение банальной задачи (копирование из А в Б одного файла, например), либо при необходимости использования сценария работы (скрипта). Ну и конечно там, где гуй отсутствует напрочь.
Гуй — во всех остальных случаях.
«облака» при необходимости мобильности, если я правильно понял, что здесь включено в это понятие. Например ленты новостей я читаю только в google reader, потому что могу начать читать дома за десктопом, продолжить за нетбуком, а закончить в телефоне.
Всё было бы правильно, если бы все три метода были бы равноценны. Нередко встречаю ситуация, когда нужно быстро сделать какую-нибудь мелочь, но оказывается, что полноценных GUI-программ для этой задачи нет, поэтому приходится копаться в манах :(
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Облачный же сервис определен вполне однозначно через использование ресурсов. Если обработка данных происходит «где-то там», то это облако. Необходимое условие — наличие подключения к сети.
А если Вас смущает фраза «не мешает сделать», то тогда
Понятно, что для облаков тоже есть разные средства. И с консолью все не просто — есть готовые команды, можно какие-то скрипты писать и давать им осмысленные названия.
Я ж не пытался сделать какой-то полный классификатор — так, разговор на эту тему начать, не более :)
Вот попробуйте объяснить разницу между клиент-сервером и облаком :)
Консольные утилиты — повседневное использование, когда требуется либо большая гибкость при работе (фильтрация, сортировка, очередь заданий), либо выполнение банальной задачи (копирование из А в Б одного файла, например), либо при необходимости использования сценария работы (скрипта). Ну и конечно там, где гуй отсутствует напрочь.
Гуй — во всех остальных случаях.
«облака» при необходимости мобильности, если я правильно понял, что здесь включено в это понятие. Например ленты новостей я читаю только в google reader, потому что могу начать читать дома за десктопом, продолжить за нетбуком, а закончить в телефоне.