Так ли необходима программисту командная строка?
Меня долгое время удивляло такое раритетное явление, как использование командной строки там, где есть графический интерфейс (равно как и его отсутствие где-либо). В этом всегда есть что-то религиозное — то есть противоречащее здравому смыслу.
Да, я слышал все доводы вроде:
«с помощью командной строки можно быстро полазить по системе и все сделать не открывая 10 окошек»
«не люблю долго клацать мышкой»,
«так я имею доступ ко всему компьютеру»,
и это говорят вроде бы не глупые люди, которые к тому же в своей повседневной жизни получают прямое опровержение этих утверждений. И все равно верят...
По сути, команда из командной строки и клик по кнопке в GUI делают одно и то же — запускают программу на выполнение. Это вроде все знают, но напомнить не лишне — это действительно все(!), что делает GUI и командная строка; никакой интеллектуальной или бизнес-логики — все остальное делает программа, и выбор только в этом одном маленьком вопросе, как ее запустить.
Разберем это все немного подробнее
Допустим, мы имеем случай с редко используемой операцией...
Ситуация в случае с КС: ты пытаешься вбить команду, но допускаешь ошибки в синтаксисе, — лезешь в Инет — находишь команду и копируешь ее в КС — получаешь результат.
Ситуация в случае с GUI: ты лазишь по приложению и находишь кнопку (ошибки в назначении правильной кнопки, как правило, не возникает) — получаешь результат.
Заметили разницу: выпадает элемент серфинга по инету и копирования команды, который сам по себе пользы не несет.
Если таких команд мало, то это не очень заметно, но если их много, то разница выливается в часы и дни попусту поистраченного времени.
А что же часто используемые операции? Тут разница еще более ощутима.
После первого использования кнопки в GUI ты запоминаешь, где находятся кнопки, и легко находишь их. А вот запоминание синтаксиса сложных команд идет похуже и загружает мозг, в сущности, мусорной информацией. По удобству это можно сравнить с картой и текстовым описанием местности: представьте себе, сколько слов нужно потратить, чтобы описать, к примеру, Украину с той же информативностью, какую дает один взгляд на карту.
Про 10 окон и как быстрее работать
В случае, когда мы имеем дело со сложными структурами данных, ситуация еще больше усложняется. Человек не просто так открывает 10 окон, иногда ему еще для этого нужно 2, а иногда и три монитора, чтобы одним взглядом обозреть ситуацию. Соответственно, у него нет времени вбивать команды — работы и так хватает, причем работы сложной, которая поглощает все его умственные силы.
Если вы понаблюдаете за работай в автомастерских, то увидите, что там практически не используют такой чудесный инструмент, как разводной ключ. Вместо них у механика под рукой развалы ключей на все существующие гайки. Почему так? Ведь один разводной ключ намного дешевле, занимает меньше места и вообще, казалось бы, одни преимущества. Но все дело в том, что механикам работать надо, а не ключи туда сюда сводить-разводить. И стоимость ключа для профессионала значения не имеет, значение имеет время, которое — деньги. Разводной ключ — это удел любителя на тот случай, если когда-то что-то понадобится. Так же и командная строка.
Так почему же командная строка еще не отмерла и не стала уделом узких спецов, почему люди продолжают тратить в разы большее количество времени на выполнение рутинных операций, чем это возможно?
Мне кажется, это вопрос скорее психологический, нежели технический. Потребность самоутвердиться — естественная потребность человека — принимает самые разнообразные формы. Как многие псевдоученые и псевдопреподаватели используют редкие и непонятные без справочника термины там, где можно обойтись простым объяснением человеческим языком (часто бывает, правда, что при этом никакой науки уже не остается, тогда запутанная терминология помогает). Так же многие программисты используют для самоутверждения командную строку, ведь более приятно казаться великим великим гуру черного экрана, чем простым нажимателем кнопок.
Казалось бы, какое мне дело до личных предпочтений того или иного программиста? Но практика показывает, что они тащат за собой на работу свои детские проблемы, там сбиваются в стада и поддерживают традиции, которые замедляют разработку и жрут кучу времени и у них, и у тех, кто их окружает.
Более того, под влияние их стадного инстинкта попадают люди, которые смогли бы сформировать собственную позицию, развить интеллект в сторону других профессиональных устремлений, но вместо этого они зубрят команды давно устаревшей технологии.
В PHP на поводу этого стада пошли даже такие монстры как Zend и Symfony, а ведь необходимость использования командной строки в них вообще нулевая, но стадо хочет строку:)
И это притом, что веб-технологии предполагают, что ты будешь использовать для общения с сервером браузер или на крайняк http-протокол из какого-то приложения. Браузер дает возможность запустить скрипт на сервере, а все остальное последний сделает сам (см.выше).
Закончу вечно зеленой бритвой Оккама: «Не следует множить сущее без необходимости»
ЗЫ: Лично у меня есть опыт работы и с командной строкой, и без нее. Считаю, что использование командной строки иногда необходимо сисадминам, но совершенно не нужно и даже вредно при нормальном процесе разработки ПО.
Найкращі коментарі пропустити