green_fr: (Default)
green_fr ([personal profile] green_fr) wrote2020-05-18 09:12 am

Шутка про баян

Отличная шутка на bash.org, я давно так не хохотал, но только для программистов:

V: А ещё мне тут пришла в голову правильная аналогия про Vim
V: Это короче так: садишься ты в машину, а там вместо руля и педалей стоит БАЯН
V: И каждая кнопка что-то означает, типа: — вперёд 100 м — вперёд 1 км — вперёд до ближайшего светофора — вперёд до отделения полиции — обогнать впереди едущую машину
V: И ещё когда ты садишься, двери блокируются и надо тоже нажать последовательность кнопок на баяне, чтобы выйти
V: А если в движении случайно нажмёшь esc и выйдешь из режима движения, то вместо движения вперёд машина бибикает
V: И соответственно есть прокачанные баянисты, которые ездят по дорогам, играя мелодии. Быстро, эффективно ездят


Чтобы хотя бы что-то было понятно и остальным. Есть такой текстовый редактор, в котором работаешь не только без мышки, то и без комбинаций кнопок на клавиатуре. То есть, ты не можешь нажать Ctrl-C или Ctrl-V — редактор писали на случай ядерной войны так, чтобы он работал всегда, даже по сети, даже когда связь настолько плохая, что информация о нажатии одной кнопки может дойти, а про вторую — нет. И вам не нужно, чтобы вместо Ctrl-C у нас напечаталось C.

Соответственно, у редактора есть три режима:
1. Режим ввода. Когда каждая кнопка с буквой (символом) обозначает просто букву, и та печатается в редактируемом документе.
2. Режим навигации. Поскольку кнопки со стрелочками — это «сложные» кнопки, то они ведь тоже не работают. Вместо них в режиме навигации используются кнопки j / k / l / m — это влево / вниз / вверх / вправо соответственно. Помимо этих кнопок задействована вся остальная клавиатура, и в этом настоящее богатство vi — есть вариант «перепрыгнуть на одно слово» (аналог «Ctrl-стрелочки»), но есть и вариант «перепрыгнуть на 5 слов». Можно перейти в конец строки (аналог «Ctrl-End»), а можно перейти на третье с конца слово в пятом параграфе, начиная от текущего. Там же поиск — можно перейти на второе слово, в котором не менее четырёх гласных. И начала программирования для замены — найди слова из 4 букв, если первая из них «f», то замени вторую на «*». Вы не поверите, но это часто крайне удобно, экономит часы времени. Красивая иллюстрация того, как наложенные снаружи ограничения заставляют нам создавать шедевры.
3. Режим работы с системой. Здесь те же самые кнопки выполняют команды вроде «сохрани файл», «выйди меня отсюда».
Ну и отдельные кнопки в каждом из режимов, чтобы перейти в другой режим (упомянутый в анекдоте Esc).

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

[identity profile] pucholik.livejournal.com 2020-05-18 07:20 am (UTC)(link)
Да, давно я так не смеялась

[identity profile] green-fr.livejournal.com 2020-05-18 08:02 am (UTC)(link)
А ты-то где vi затронула?

(no subject)

[identity profile] pucholik.livejournal.com - 2020-05-18 08:05 (UTC) - Expand

[identity profile] dmpogo.livejournal.com 2020-05-18 07:38 am (UTC)(link)
Вывод кстати неверный. У меня vim основной редактор уже лет 30, и я все еще знаю примерно пять команд.
Edited 2020-05-18 07:39 (UTC)

[identity profile] green-fr.livejournal.com 2020-05-18 08:03 am (UTC)(link)
А зачем тогда ты его используешь? Я когда в нём работал, как раз пёрся от всей этой мощи, и использовал её на полную (ну, как мог...). И до сих пор в любом текстовом редакторе первым делом проверяю те же regexp - как они пишутся, как ими можно пользоваться.

(no subject)

[identity profile] dmpogo.livejournal.com - 2020-05-18 08:24 (UTC) - Expand

[identity profile] urease.livejournal.com 2020-05-18 08:24 am (UTC)(link)
Так ведь и с машиной так. Когда на моей первой машине через три года спустило колесо, я не знал, где находится запаска и некоторое время логически выводил, где.

Я думаю, что я - стандартный водитель

(no subject)

[identity profile] dmpogo.livejournal.com - 2020-05-18 08:37 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 10:03 (UTC) - Expand

[identity profile] virginian.livejournal.com 2020-05-18 07:51 am (UTC)(link)

Это мало того что классика, но про него ещё и на интервью спрашивали во времена оны, типа освоил или нет. В Фортране ещё чище, там имя переменной определяет ее тип.

[identity profile] green-fr.livejournal.com 2020-05-18 08:06 am (UTC)(link)
У меня и без Фортрана эта логика, что по моему тексту могут потом пройтись regexp, заставляет писать всё "единожды возможным правильным образом". То есть, это очень сильно подталкивает к стандартизации - не важно, какой именно, лишь бы стандарт был. И нетерпимости к малейшему отклонению в виде лишнего пробела. Если решили писать "% TODO : blablabla", то никаких "% TODO: blablabla", иначе же потом не найдём!

[identity profile] dmpogo.livejournal.com 2020-05-18 08:38 am (UTC)(link)
Ну хороший тон ставить IMPLICIT NONE :) Но иногда позволяешь себе :)

(no subject)

[identity profile] virginian.livejournal.com - 2020-05-18 08:52 (UTC) - Expand

(no subject)

[identity profile] dmpogo.livejournal.com - 2020-05-18 09:17 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 10:04 (UTC) - Expand

[identity profile] mikhailian.livejournal.com 2020-05-18 08:17 am (UTC)(link)
Баяном vim выглядит только для тех, кто учит его по методу обезъяны.

Фишка вима в том, что само редактирование текста должно восприниматься как программирование. 5d — удалить пять строк (5 delete), caw — удалить текущее слово и приготовиться писать (change append word) и так далее и тому подобное. Вот комментарий на SO объясняет (https://stackoverflow.com/a/1220118/661236) всё гораздо лучше меня.

Ну и конечно без понимания контекста использования ex, ed, sed и культуры unix 70-х годов к vim привыкнуть сложно.

[identity profile] green-fr.livejournal.com 2020-05-18 10:05 am (UTC)(link)
Об этом и речь :-) Был же другой анекдот о том, что мир людей, плохо понявших школьную физику, преисполнен волшебства.

(no subject)

[identity profile] el-philippa.livejournal.com - 2020-05-18 11:43 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 13:52 (UTC) - Expand

(no subject)

[identity profile] xxxxx.livejournal.com - 2020-05-18 10:28 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 13:53 (UTC) - Expand
a_p: (Default)

[personal profile] a_p 2020-05-18 08:20 am (UTC)(link)
Только причина не в том, что есть сложные, а есть простые кнопки, а в том, что на пишмашинках ни Ctrl, ни стрелочек не было. Первые клавиатуры копировали пишмашинки и использовались с печатающими устройствами. И первые редакторы были для "строкового режима" (с буквами-командами). А уж потом появились экраны, и на основе строкового редактора написали "экранный редкатор" vi, для совместимости (с уже обученными строковому редкатору хьюманами) сохранив, насколько это было возможно, команды.

[identity profile] green-fr.livejournal.com 2020-05-18 10:07 am (UTC)(link)
Нам на уроках рассказывали историю про разные пакеты, в которые могли попасть разные кнопки одной комбинации, и что порядок прибытия пакетов не гарантирован. Но твоя версия тоже вполне правдоподобна.

(no subject)

[identity profile] mikhailian.livejournal.com - 2020-05-18 10:47 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 13:57 (UTC) - Expand

(no subject)

[identity profile] gianthare.livejournal.com - 2020-05-18 11:34 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 14:39 (UTC) - Expand

(no subject)

[identity profile] gianthare.livejournal.com - 2020-05-18 15:36 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 21:45 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-20 09:06 (UTC) - Expand

[identity profile] urease.livejournal.com 2020-05-18 08:26 am (UTC)(link)
Затем в машину добавили терменвокс

[identity profile] green-fr.livejournal.com 2020-05-18 10:07 am (UTC)(link)
А-ха-ха-ха-ха! Вот это, кстати, не могу объяснить почему, но именно в тему :-)

(no subject)

[identity profile] urease.livejournal.com - 2020-05-18 14:08 (UTC) - Expand

[identity profile] ticklish-frog.livejournal.com 2020-05-18 08:29 am (UTC)(link)
Про emacs уже не шутят, только про vi :) Про emacs в среде Windows-программистов ходили присказки, что корифеем может считаться любой, кто смог самостоятельно выйти из редактора без помощи другого корифея.

[identity profile] virginian.livejournal.com 2020-05-18 08:56 am (UTC)(link)
VI был редактором в Оракле по умолчанию, вот где весело было.

[identity profile] igann.livejournal.com 2020-05-18 10:01 am (UTC)(link)
В моём окружении сложнее объяснить что такое баян

[identity profile] green-fr.livejournal.com 2020-05-18 10:08 am (UTC)(link)
А мне бабушка в детстве говорила: учись, Саша, играть на баяне. Возьмут тебя в армию, ты сразу скажешь, что умеешь играть. И вот представь - все как идиоты маршируют на плацу, а ты сидишь такой, с баяном, и играешь им какой-то марш!
На этом, кажется, знакомство с баяном и ограничилось :-)

[identity profile] aguti.livejournal.com 2020-05-18 10:04 am (UTC)(link)
Зато vi есть везде и работает всегда! Удобно, когда можешь хоть чуть чуть «играть на баяне» :)
Это как (обратная аналогия) научиться водить на ручной коробке передач, а потом выслушивать стоны тех, кто кроме автомата ничего не водит :)

[identity profile] green-fr.livejournal.com 2020-05-18 10:10 am (UTC)(link)
"Везде" и "всегда" выдаёт, Тома, что ты обитаешь в очень странных местах :-Р Ты понимаешь, да, сколько нулей перед первой значащей цифрой процента населения, которые хотя бы раз столкнулись с проблемой "ой, а тут у нас только vi, да?" :-)))

(no subject)

[identity profile] chhwe.livejournal.com - 2020-05-18 10:50 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 13:56 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-20 14:27 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-20 14:31 (UTC) - Expand

[identity profile] och.livejournal.com 2020-05-18 10:59 am (UTC)(link)
А статья по ссылке в википедии начинается так:
vi (от англ. visual) -
Вижуал, мать его!

[identity profile] gianthare.livejournal.com 2020-05-18 11:40 am (UTC)(link)
Ну, по сравнению с Ed конечно вижуал. В Ed были все редакторские команды vi, а вот чтобы увидеть, что ты наредактировал , была ещё команда p, которая печатал указанные ей строки :)

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 13:56 (UTC) - Expand

(no subject)

[identity profile] gianthare.livejournal.com - 2020-05-18 14:24 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-18 14:41 (UTC) - Expand

(no subject)

[identity profile] gianthare.livejournal.com - 2020-05-19 15:17 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-20 09:10 (UTC) - Expand

(no subject)

[identity profile] gianthare.livejournal.com - 2020-05-20 10:26 (UTC) - Expand

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-20 11:47 (UTC) - Expand

[identity profile] el-philippa.livejournal.com 2020-05-18 11:43 am (UTC)(link)
Очень смешно.

[identity profile] yuriyag.livejournal.com 2020-05-18 01:35 pm (UTC)(link)
Гармонист был очень пьян / Растянуть не смог баян / Два помощника в момент - / Разорвали инструмент...

[identity profile] moonofnovember.livejournal.com 2020-05-18 02:47 pm (UTC)(link)
Stackoverflow, вопрос How do I exit the Vim editor?
Viewed 2.1m times

Моя первая сессия в vim закончилась нажатием кнопки reset на системнике.

[identity profile] green-fr.livejournal.com 2020-05-18 03:02 pm (UTC)(link)
Бггг :-) Это я, наверное, никогда не забуду.
:q!

[identity profile] birdwatcher.livejournal.com 2020-05-18 02:48 pm (UTC)(link)
"Я пользовался вимом двадцать пять лет, но в конце концов узнал, как из него выйти"
На самом деле нет, до сих пор ничем другим не пользуюсь.

[identity profile] green-fr.livejournal.com 2020-05-18 03:03 pm (UTC)(link)
Тоже классный анекдот :-))

(no subject)

[identity profile] aguti.livejournal.com - 2020-05-20 07:07 (UTC) - Expand

(Anonymous) 2020-05-18 03:11 pm (UTC)(link)
Даёшь emacs! VI долой

[identity profile] bostonvip.livejournal.com 2020-05-18 03:21 pm (UTC)(link)
мой практически единственный опыт vi кончился гугленьем как из него выйти и установкой nano :). После это пару раз я в него случайно залетал и опять же гуглил как выйти

(no subject)

[identity profile] green-fr.livejournal.com - 2020-05-19 08:34 (UTC) - Expand

[identity profile] kkk-ddd.livejournal.com 2020-05-18 08:52 pm (UTC)(link)
Я баянист, все верно

[identity profile] green-fr.livejournal.com 2020-05-19 08:35 am (UTC)(link)
Я не рассказывал, как моя сестра - пианистка - набирала на клавиатуре "горнодобывающая промышленность" практически одним аккордом? :-)))

[identity profile] oldjackaroo.livejournal.com 2020-05-18 09:57 pm (UTC)(link)
Я тоже проголосовал за это, но у меня такая аналогия была сравнительно недавно, когда я проходил какой-то курс по AI (точнее, о том, как он использует нейронные сети). Там все так же - есть какие-то алгоритмы, есть какие-то коэффициенты, как выбирать первое и второе - это темная магия, что получится в результате выбора какой-то комбинации - такая же загадка, как в этой аналогии про баян. С той только разницей, что в vim хоть есть инструкция, которую можно выучить, а там - только научиться чувствовать после месяцев практики.

[identity profile] green-fr.livejournal.com 2020-05-19 08:37 am (UTC)(link)
Слушай, а вот у меня не было ощущения "тёмной магии". Магия там в интерпретации результатов, но это как раз не совсем правильно, пытаться искать понятное человеку (формализуемое человеческим языком) объяснение там, где его может и не быть. Мы свои решения всегда можем описать человеческим языком?
А вот построение модели - ну да, где-то есть "доработка напильником", но всякий раз понятно, почему именно здесь, и именно в эту сторону. Ну, либо я просто не лез так глубоко, как ты...

(no subject)

[identity profile] oldjackaroo.livejournal.com - 2020-05-19 18:41 (UTC) - Expand

[identity profile] alexanderr.livejournal.com 2020-05-19 02:00 am (UTC)(link)


vi это мой любимый редактор. гениальная вещь.

он невероятной мощности на самом деле, особенно если нужно
обработать гигантский текстовый файл, который ни один
другой редактор просто не откроет даже. vi легко поднимет
и все сделает. набираешь цепочку команд, потом говоришь:
повторить. и все

[identity profile] green-fr.livejournal.com 2020-05-19 08:38 am (UTC)(link)
Да кто бы спорил, конечно! Его польза / мощь / уникальность выводятся хотя бы из Дарвина - иначе он бы столько лет не прожил :-)

(no subject)

[identity profile] alexanderr.livejournal.com - 2020-05-19 14:54 (UTC) - Expand