Поговорим о "мышь против клавиатуры"
Оглавление
Перейти к статьеИзначально было опубликовано на Медиуме
Полный текст того, с чем я спорю, тут: http://plan9.bell-labs.com/wiki/plan9/Mouse_vs._Keyboard/index.html
Самая главная проблема как этого текста, так и текстов, на которые он ссылается, это то, что он полностью и безнадежно устарел. При том, что сам текст датируется 2011-м годом, он ссылается на тексты 1989 и 1991 годов, а сам борется только и исключительно с vim’ом.
С 1989-го года прошло уже 26 лет, а вместо vim’а есть и другие интсрументы (да-да, и вместо emacs’а, который там упоминается вскользь, тоже).
В целом, основной аргумент в пользу «надо часто пользоваться мышью» сводится к следующему:
- в vim’е нет этого, это удобнее сделать мышкой
- в vim’е вот эта определенная комбинация команд хуже чем в acme, поэтому надо пользоваться мышью
- в emacs’е вот эта определенная комбинация команд хуже чем в acme, поэтому надо пользоваться мышью
ORLY?
Ниже по тексту используются Apple’овские комбинации клавиш. В Линуксе и Винде Cmd
заменяется на Ctrl
.
Чувак, ты противоречишь сам себе
It is true that it is slower to use the mouse for, say, deleting a tab from the beginning of every line than it is to use the keyboard and type “^xjxjxjxjxjxjxjxjxjxjxjxjxj” in vi. But at that point you’re basically programming the editor (with a manually unrolled for loop) more than actually editing.
Говорит нам человек, и тут же предлагает следующее:
When the mouse is properly accelerated, many of us find that it’s faster and easier to highlight the lines in question and then type and execute
Edit s/^<tab>//g
in acme or just types/^<tab>//g
in sam’s command window. This is such a common operation that acme provides two shell scripts so you can leave|unind
and|ind
in the tag of your window and click on them whenever you want.
Стоп. Чем исполнение команд в окне команд и shell-скрипты (!) отличаются от программирования редактора? Да ничем, абсолютно. Особенно позабавило «разместите кнопочки для вызова этих команд в окошечке, и кликайте на них».
Во-первых, что-то мне подсказывает, что в vim’е можно точно так же выделить линии и набрать s/^<tab>//g
Во-вторых, что-то мне подсказывает, что в vim’е можно точно так же привязать короткие команды к скриптам(хотя да, нельзя их будет разместить в окошке)
В-третьих, в какой-нибудь IDEA я могу выделить все строчки и нажать Tab
для смещения вправо или Shift+Tab
для смещения влево (комбинация клавиш, которая работала, емнип, еще в Delphi в начале 2000-х, и имеющаяся в большом количестве редакторов). Что в разы удобнее, чем регулярки, пусть даже в виде кнопочек на панели
В четвертых, в той же IDEA я могу нажать Cmd+R
(replace) и ввести то же регулярное выражение. Ах, да. Даже не задумываясь о том, что мне надо тянуться за мышью.
В мире есть не только vi
but all I can think is "damnit, if I could just click where I want to go I’d be there by now."
Чувааак, в мире есть не только vi. Да, мышь — полезная штука для таких действий, но никто это и не отрицает. Ты придумал себе, что кто-то с этим спорит, и активно борешься с вымышленными оппонентами.
Наверное, все редакторы, кроме vi, имеют возможность ткнуть, куда угодно, скроллбары и возможность выделять текст мышкой. Да, потому что это удобно. Нет, это не значит, что за мышкой надо тянуться постоянно (например, чтобы переключиться в другое окно или чтобы запустить скрипт из кнопочки)
Если тебе нужны костыли, значит, что тебе костыли не нужны
It’s important to have a good mouse, of course. It needs three real buttons, not two button with an intelliwheel in the middle.
А можно и без этого обойтись, а дать людям возможность пользоваться твоим мега-редактором с минимальным использованием мыши.
Использование мыши в той же IDEA:
- 60% случаев скролл (колесо или аналог)
- 30% случаев быстро выделить большой кусок текста (левая кнопка мыши)
- 10% случаев (хорошо, если 10%) — контекстное меню в дереве проекта
Зачем мне три кнопки, да еще на мыши, когда абсолютно все мне доступно с клавиатуры?
В мире есть и другие редакторы кроме emacs’а
When one makes a mistake in a search string, in emacs one uses
ctl-S
andctl-R
, it’s a pain to correct the mistake; the“Look”
command in acme allows you to just edit the tag and rerun the search.
В IDEA я нажимаю Cmd+F
, редактирую слово (если надо), нажимаю ввод и — магия! — происходит поиск. Да как это можно без мыши сделать-то?!
Вообще, в целом, человек явно как жил в 1989-м году, так там до сих пор и живет. Ему невдомек, что есть что-то, кроме vi и emacs’а. Ему невдомек, что большинство современных редакторов используют мышь там, где надо, и предлагают удобный доступ с клавиатуры для большинства операций.
Я думаю, что когда ему покажут, что в IDEA можно использовать Cmd+F
или там в любом современном редакторе текста можно выделять, например, куски текста через Cmd/Alt+Shift+стрелки
, его хватит апоплексический удар.
Тексты, на которые он ссылается, комментировтаь даже не стою, так как в первом же идет разговор о том, что много комбинаций не стандартизировано. 26 лет спустя много комбинаций стандартизировано.
Это я еще умолчу, что банальные требования по accessibility обязывают, чтобы вся функциональность системы и приложения была доступна через клавиатуру (если система или приложение хотят быть сертифицированы).