Как стать автором
Обновить

Комментарии 24

Я улыбаюсь на заявления людей, что с какой-то "прибамбасиной" или тюнингом у них быстрее набирается код пишется программа.
Если скорость вашей разработки так зависит от данного фактора, то и стоимость вашего кода так себе (не, ну бывают случаи ложного переоценивания).
Строчка продуманного кода может вводиться хоть одним пальцем. 50-100 строк отлаженного кода в сутки (в среднем, по 20-летнему опыту сужу).
Я был фотографом, я учился на пленке, я начинал на пленке, я сам проявлял и печатал. Я знаю ценность и трудоемкость каждого кадра. Я научился сначала думать, а потом строчить (и в съемке и в кодинге). Так что улыбаюсь.
В статье хорошо преподнесены не только выводы, но и собственно сами эксперименты. Полезно.

Я улыбаюсь на заявления людей, что с какой-то "прибамбасиной" или тюнингом у них быстрее набирается код пишется программа.

Можно ли считать Hot Module Replacement во фронтенде "прибамбасиной"? Я думаю да.
Однако с ней код пишется гораздо быстрее, ввиду мгновенной проверки небольших гипотез (в том числе и тех, которые увидишь только глазами: например, анимация).


Конечно, можно "сначала думать", но тогда есть риск, что на решение пары задач уйдет довольно много времени, как на очередном беспощадном интервью в Яндекс

Мы разговариваем в контексте клавиатурного ввода.
Я ничего против автогенерации шаблонного кода не имею. Тут да, одним нажатием получается до сотни строк которые ты и руками точно так же ввел бы.
Но вот скорость ввода осмысленной строчки в долгосрочной перспективе вообще ни о чем.

50-100 строк отлаженного кода в сутки (в среднем, по 20-летнему опыту сужу).

Вы явно занимаетесь переработками. В среднем у разработчика 7–10 строчек в час выходит.

Если 8 часовой рабочий день, то и выходит 56-80

Все настройки — раскладка, хоткеи и т. п. должны быть в клавиатуре (QMK и т. п.), а не в компьютере. Тогда не чувствуешь себя чужим, подключаясь к другому компьютеру.
Это среди прочего решает проблему хоткеев при переключении ЙЦУКЕН — DVORAK, хоткеи всегда на одном месте.
X, C, V у меня продублированы в левой части клавиатуры, т. к. хоткеи с ними часто нужны, когда правая рука не на клавиатуре.

Тогда таскать с собой личную клавиатуру?

Сам уже 10 лет на DVORAK. Я разработчик — работаю только за своим компьютером, поэтому qwerty встречаю довольно редко. Шорткаты да — было больно, ничего не переназначал, просто привык к новому расположению. В JetBrains продуктах у меня стоит режим vim, поэтому работаю чаще через него. Переход на DVORAK у меня занял пару недель — я просто поменял себе раскладку, на второй монитор вывел картинку с раскладкой и продолжил работать.
Да, переходить советую — банально пальцы меньше скачут по клаве, да и появится шанс научиться печатать вслепую, если до сих пор было лень это сделать.
В русской раскладке пишу не вслепую :)
Увидел имя Sorax, чуть не прослезился.
Тебе надо постоянно следить за тем, какая включена раскладка — русская или английский Дворак. Потому что в русском языке шорткаты работают, как в QWERTY. Я пытался ремапить шорткаты так, чтобы они работали одинаково на русском и английском языках, но у меня ничего не вышло.

XKBLAYOUT=«us,ru»
XKBVARIANT=«dvp,»
И после этого в Kubuntu, все везде работает одинаково, в соответствии с раскладкой дворака. Кроме почему-то хрома, который действительно при русской раскладке использует шорткаты на базе qwerty. Но поскольку в основном пользуюсь файрфоксом, не вникал, чем там хром такой особенный.
По моему, нет ничего зазорного в том, что бы предупредить других, что используешь альтернативные раскладки и будешь набирать одним пальцем и медленно. Проблема немного приукрашена.
Но… Зачастую бывает, что скорость набора текста падает до нуля, если даже есть навык. Проблема в том, что обдумываешь что и как писать, и совсем не важно как быстро набирается текст и используются ли альтернативные раскладки. Но естественно, что быстро набрать найденное решение или быстро печатать какие-то тексты — это отличный навык.
Лично я нашел много полезного в статье. И еще она воодушевила меня прокачать свою скорость набора. Спасибо.

Тоже в свое время пробовал пересесть на альтернативные раскладки. Очень понравился Colemak. Но тоже, в конечном итоге, вернулся к QWERTY. В основном из-за шорткатов, причем не только тех шорткатов, которые ctlr+shift+что-то, а даже банальных однокнопочных шорткатов в, например, играх. Ну знаете нажать j для открытия дневника и вот это все. И проблема не в том, что клавиши в новое место переехали — переназначить зачастую не так уж и сложно. А в том, что я использую еще и раскладку ЙЦУКЕН, и вот когда у тебя в зависимости от активной раскладки за одно и тоже действие отвечают разные кнопки — это боль перевешивающая все возможные профиты от эргономичных раскладок.


Вообще все что связано с поддержкой ввода — это какой-то лютейший костыль. Каждый софт по-сути вынужден сам заниматься поддержкой раскладок, чтобы быть юзабельным вне QWERTY. И если при поддержка раскладок с латиницей еще хоть как-то, то для других алфавитов полный завал.

я использую еще и раскладку ЙЦУКЕН, и вот когда у тебя в зависимости от активной раскладки за одно и тоже действие отвечают разные кнопки — это боль перевешивающая все возможные профиты от эргономичных раскладок.
Но это ведь что-то ненормальное? Почему в русской раскладке шорткат работает не так, как должен работать? Это выглядит как какой-то баг системы, достойный багрепорта.

Это не совсем бага. Смотрите, вот есть у вас какое-то действие на шорткат ctrl+r. Когда вы его нажимаете, то вам приходит событие о том, что нажата клавиша с таким-то keycode'ом, таким-то модификатором и этой клавише соответствует такой-то символ в текущей раскладке. Дальше у вас есть варианты:


  1. Забить на символ и оперировать только keycode, в таком случае ваш шорткат привязан к физической кнопке. При смене раскладки с qwerty на йцукен шорткат будет работать, что плюс. Но вот если у пользователя раскладка не qwerty, а dvorak, то шорткат будет уже не ctrl+r, а ctrl+p. При этом вы понятия не имеете какая раскладка у пользователя и продолжаете в UI отображать это как ctrl+r, что минус. С другой стороны кнопка-то та же, значит мускульная память будет работать, что плюс. Такое поведение встречается во многих играх.


  2. Забить на keycode и оперировать символом клавиши. В таком случае ваш шорткат привязан к раскладке и если в новой раскладке символ переехал на другую кнопку, то и шорткат автоматом переезжает. В UI все всегда хорошо, что плюс. А вот мускульная память при смене раскладки с qwerty на dvorak нарушается, что минус. А еще все ваши шорткаты перестанут работать с не латинскими раскладками, что жирный минус. Так работает fusion 360, за что ему жирный минус.


  3. Комбинированный, смотрим на символом клавиши, если он латинский, то идем по пути 2, если неизвестный, то идем по пути 1 считая, что у пользователя некая дефолтовая латинская раскладка. В таком случае при использовании латинских раскладок у нас UI соответствует реальным шорткатам, нарушается мускульная память при переходе между латинскими раскладками. Не латинские раскладки работают как дефолтовая латинская раскладка. При этом везде где я такой подход встречал дефолтовой раскладкой была QWERTY. Если у вас же вы вместо qwerty используете что-то другое, то у вас все шорткаты начинают прыгать при переключении раскладки. Так работает большинство софта.



У всех вариантов есть свои минусы. В принципе третий вариант мне кажется самым удобным в большинстве случае, но нужна возможность задать эту дефолтовую раскладку. Ну или как-то у ОС её спрашивать. В отсутствие же такого АПИ у ОС все что остается — это тянуть поддержку всех латинских раскладок в свой софт, чего никто не делает.


И это мы говорим только про программные раскладки. Если же раскладка задана аппаратно, на самой клавиатуре, то с шорткатами и вторыми раскладками все становится совсем грустно.

Это не совсем бага
С точки зрения пользователя именно бага. У пользователя хоткей на ctrl+r, а не ctrl+keycode27 (или 32). Поэтому единственный адекватный вариант — 4, грубо говоря, похожий на ваш 3, в котором вместо «считая, что у пользователя некая дефолтовая латинская раскладка» будет «учитывая фактически заданную раскладку пользователя для латиницы».

дефолтовой раскладкой была QWERTY. Если у вас же вы вместо qwerty используете что-то другое, то у вас все шорткаты начинают прыгать при переключении раскладки
Ну вот не должно такого быть. И у меня, как я выше замечал, не прыгает ничего (кроме Хромиума, во всех остальных приложениях нет проблем): ctrl+r работает так же, как ctrl+щ. И когда в других приложениях хоткеи у меня работают нормально, в самом хромиуме системные хоткеи (ctrl+c/ctrl+ш, ctrl+v/ctrl+ю) работают нормально, а родные хоткеи в хромиуме «прыгают», я не воспринимаю это иначе как баг хромиума.

С точки зрения пользователя именно бага. У пользователя хоткей на ctrl+r, а не ctrl+keycode27 (или 32).

Так и пользователь нажал не crtl+r, а ctrl+щ.


Ну вот не должно такого быть. И у меня, как я выше замечал, не прыгает ничего (кроме Хромиума, во всех остальных приложениях нет проблем): ctrl+r работает так же, как ctrl+щ.

Ну это как раз и звучит, как привязка к keycode. Просто ОС в отличие от хромиума знает о ваших раскладках и подогнала keycode под реалии дворака. Дайте угадаю ОС — это линукс?


Поэтому единственный адекватный вариант — 4, грубо говоря, похожий на ваш 3, в котором вместо «считая, что у пользователя некая дефолтовая латинская раскладка» будет «учитывая фактически заданную раскладку пользователя для латиницы».

Вот в этом и состоит основная проблема — откуда софт узнает какая у пользователя "фактически заданная раскладка пользователя для латиницы". А даже если узнает, то что делать когда будет две латинских раскладки?

Так и пользователь нажал не crtl+r, а ctrl+щ.
Ну формально второй ваш вариант тоже имеет право на существование — emacs работает примерно так. Но этот вариант не всегда удобный.

Дайте угадаю ОС — это линукс?
Я писал чуть выше — Kubuntu.

откуда софт узнает какая у пользователя «фактически заданная раскладка пользователя для латиницы»
Конкретный механизм реализации для пользователя не важен. Для него важно, что в одних случаях это работает, в других — нет.

А даже если узнает, то что делать когда будет две латинских раскладки?

В случае активной третьей (нелатинской) брать первую из латинских, например.

Интересно, во многом согласен. Тоже сижу на альт. раскладке, самодельном форке Дворака, точнее форке Programmer Dvorak. Решил уйти с QWERTY и со стандартной модальной "вимовской" раскладки, когда обнаружил у себя RSI и большое кол-во "трудных" клавиш в топе по частоте (^ $ ~ :w // {}). Переход тоже сломал мне все хоткеи в модальном редакторе (Emacs+Evil) и в приложениях, но модальная раскладка, которая выросла на обломках, в сумме с Двораком избавила меня от RSI.


(PS: почему Ctrl+C на иллюстрации закрашен красным, C в двораке жмётся средним пальцем, в чём проблема? Клавиша дб белой. Ctrl+S дб наоборот красным а не зелёным — задействован мизинец. Вообще странно что "немного неудобно" = зелёный. Зелёный ассоциируется у всех с "OK", для "немного неудобно" лучше жёлтый.)

На картинке шорткаты, которые в qwerty жмутся одной левой, а на двораке приходится использовать обе руки, либо научиться нажимать только правой. Зеленые при желании можно исправить в части приложений, в моем случае IDEA, а вот с красными сложнее.
Да, довольно сложно измерить выгоду от перехода на «дворака», даже если не принимать в расчёт неудобства, связанные с клавиатурными сочетаниями и чужими компьютерами. Похоже, что действительно разница не столь велика. Субъективно же любой из нас может сравнить ощущения от русской и английской раскладки. Русская же и есть почти «дворак»: редкие буквы — на мизинцах, самые ходовые — на указательных пальцах.

Пожалуй, мне доставляет некий минимальный дискомфорт необходимость печатать буквы P и O «неудобными» пальцами, а фигурные скобки так и не могу заставить себя набирать «по науке». Но не сказал бы, что это сильно влияет на скорость.

Конечно уважаю труд автора, но выглядит как в той пословице про порося и проблемы

350 знаков в минуту я могу долбить только на русской раскладке. Да и то, при обилии спецсимволов в тексте, легко могу свалиться до 300 знаков в минуту. Когда пишешь документы, протокол совещания или письма — это действительно полезно, так как человеческая речь или, тем более мысль, явно быстрее. Но зачем долбить с такой скоростью код программы — не понимаю. Даже на многословном SQL выгода в процентном отношении совершенно ничтожна.
10 лет назад перешёл на Дворака, руки устают меньше, скорость набора раза в 1,5-2 выше. Да, горячие клавиши пришлось учить по-другому, менее удобно. Но оно того стоит. Да, скорость разработки программы скорее определяется тем, как ты отлаживаешь, и какие есть инструменты. Но удобство набора не про то — а про уменьшение раздражения от процесса — его скорости и неудобных сочетаний клавиш.

Вот тут приводится таблица самых распространённых, и на qwerty из неё 6 пар неудобных (идут от указательного к мизинцу или заставляют тянуться через ряд клавиш одной рукой). На раскладке Дворака из этой таблицы неудобных пар — ноль!

image

Да, на qwerty писать можно довольно быстро, только регулярно испытываешь неудобства. Дуглас Энгельбарт предлагал гостям своей лаборатории написать что-нибудь карандашом, приделанным к кирпичу. Тоже можно, но очень неудобно. Да, аналогия с кирпичом — это сильное преувеличение, но можно представить то же самое с неудобной ручкой — были такие с 8 переключающимися стержнями, например.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.