Так чи необхідна програмісту командний рядок?

Мене довгий час дивувало таке раритетне явище, як використання командного рядка там, де є графічний інтерфейс (так само як і його відсутність де-небудь). У цьому завжди є щось релігійне - тобто суперечить здоровому глузду.

Так, я чув всі доводи на кшталт:
«за допомогою командного рядка можна швидко полазити по системі і все зробити не відкриваючи 10 віконець»
«Не люблю довго клацати мишкою»,

«так я маю доступ до всього комп'ютера» ,

і це говорять начебто не дурні люди, які до того ж у своєму повсякденному житті отримують пряме спростування цих тверджень. І все одно вірять ...

По суті, команда з командного рядка і клік по кнопці в GUI роблять одне й те саме - запускають програму на виконання. Це начебто все знають, але не зайве нагадати - це дійсно всі (!), Що робить GUI і командний рядок, жодного інтелектуальної або бізнес-логіки - все інше робить програма, і вибір тільки в цьому одному маленькому питанні, як її запустити.

Розберемо це все трохи детальніше

Припустимо, ми маємо випадок з рідко використовуваної операцією ...

Ситуація у випадку з КС: ти намагаєшся вбити команду, але допускаєш помилки в синтаксисі, - лізеш в Інет - знаходиш команду і копіюєш її в КС - отримуєш результат.

Ситуація у випадку з GUI: ти лазиш за додатком і знаходиш кнопку (помилки в призначенні правильної кнопки, як правило, не виникає) - отримуєш результат.

Помітили різницю: випадає елемент серфінгу по інету і копіювання команди, який сам по собі користі не несе.

Якщо таких команд мало, то це не дуже помітно, але якщо їх багато, то різниця виливається в години і дні даремно поістраченного часу.

А що ж часто використовувані операції? Тут різниця ще більш відчутна.

Після першого використання кнопки в GUI ти запам'ятовуєш, де знаходяться кнопки, і легко знаходиш їх. А ось запам'ятовування синтаксису складних команд йде гірше і завантажує мозок, по суті, сміттєвої інформацією. По зручності це можна порівняти з картою і текстовим описом місцевості: уявіть собі, скільки слів потрібно витратити, щоб описати, наприклад, Україна з тією ж інформативністю, яку дає один погляд на карту.

Про 10 вікон і як швидше працювати

У випадку, коли ми маємо справу зі складними структурами даних, ситуація ще більше ускладнюється. Людина не просто так відкриває 10 вікон, іноді йому ще для цього потрібно 2, а іноді й три монітори, щоб одним поглядом оглянути ситуацію. Відповідно, у нього немає часу забивати команди - роботи і так вистачає, причому роботи складною, яка поглинає всі його розумові сили.

Якщо ви подивитеся за працюй в автомайстерень, то побачите, що там практично не використовують такий чудовий інструмент, як розвідний ключ. Замість них у механіка під рукою розвали ключів на всі існуючі гайки. Чому так? Адже один розвідний ключ набагато дешевше, займає менше місця і взагалі, здавалося б, одні переваги. Але вся справа в тому, що механікам працювати треба, а не ключі туди сюди зводити-розводити. І вартість ключа для професіонала значення не має, значення має час, який - гроші. Розвідний ключ - це доля любителя на той випадок, якщо колись щось знадобиться. Так само і командний рядок.

Так чому ж командний рядок ще не відмерла і не стала долею вузьких спеців, чому люди продовжують витрачати в рази більша кількість часу на виконання рутинних операцій, ніж це можливо?

Мені здається, це питання скоріше психологічний, ніж технічний. Потреба самоствердитися - природна потреба людини - приймає найрізноманітніші форми. Як багато псевдонауковці і псевдопреподавателі використовують рідкісні й незрозумілі без довідника терміни там, де можна обійтися простим поясненням людською мовою (часто буває, правда, що при цьому ніякої науки вже не залишається, тоді заплутана термінологія допомагає). Так само багато програмістів використовують для самоствердження командний рядок, адже більш приємно здаватися великим великим гуру чорного екрану, ніж простим нажімателем кнопок.

Здавалося б, яке мені діло до особистих переваг того чи іншого програміста? Але практика показує, що вони тягнуть за собою на роботу свої дитячі проблеми, там збиваються у зграї і підтримують традиції, які сповільнюють розробку і жеруть купу часу і у них, і у тих, хто їх оточує.

Більш того, під вплив їх стадного інстинкту потрапляють люди, які змогли б сформувати власну позицію, розвинути інтелект у бік інших професійних устремлінь, але замість цього вони зубрять команди давно застарілої технології.

У PHP на приводу цього стада пішли навіть такі монстри як Zend і Symfony, але ж необхідність використання командного рядка в них взагалі нульова, але стадо хоче рядок:)

І це при тому, що веб-технології припускають, що ти будеш використовувати для спілкування з сервером браузер або на крайняк http-протокол з якогось додатку. Браузер дає можливість запустити скрипт на сервері, а все інше останній зробить сам (див. вище).

Закінчу вічно зеленої бритвою Оккама: «Не слід множити суще без необхідності»

ЗИ: Особисто в мене є досвід роботи і з командним рядком, і без неї. Вважаю, що використання командного рядка іноді необхідно сисадмінам, але зовсім не потрібно і навіть шкідливо при нормальному процесі розробки ПЗ.

Опубліковано: 04/10/11 @ 12:42
Розділ Різне

Рекомендуємо:

Сеанс низькорівневої оптимізації використання пам'яті в програмах на мові С + + з повним викриттям
E-commerce конференція «Бізнес інтернет-магазинів» 3 листопада в Києві
Інтерв'ю - Сергій Количев, автор блога max1net.com
Як повідомити Google про нові зовнішні посилання на ваш сайт
26-й - піврічний випуск подкасту «Відверто про IT кар'єризм». Бесіда з Java архітектором, екстремальним тренером і початківцям батьком Олексієм Солнцевим