Klawiatura dla programisty: tempo kodu i AltGr
W linii if (i < 10) { x = tab[i]; } na 27 znaków pięć wymaga Shifta, a nawiasy klamrowe i kwadratowe leżą w prawej kolumnie obok Enter, czyli pod najsłabszym palcem. To jedna liczba, która wyjaśnia, dlaczego tempo osiągane na prozie nie przenosi się na kod, i dlaczego nie ma w tym niczego niepokojącego.
Dlaczego kod pisze się wolniej niż proza?
Pisząc prozę, czytasz wyprzedzająco. Ręka dostaje całe wyrazy, a język podpowiada, co przyjdzie dalej, więc palce pracują na gotowych wzorach ruchu. Kod tej podpowiedzi nie ma: nazwa zmiennej bywa skrótem, kolejność nawiasów zależy od zagnieżdżenia, a średnik pojawia się w miejscu wyznaczonym przez składnię, nie przez rytm zdania.
Druga przyczyna daje się policzyć. Poniżej rozbiór tej samej linii kodu i trzech fragmentów z naszej biblioteki tekstów, znak po znaku.
| Materiał | Długość | Znaki spoza alfabetu | Wymagające Shifta |
|---|---|---|---|
| Linia kodu z początku tekstu | 27 znaków | 11, czyli 41% | 5, czyli 19% |
| Proza, ranek pana Ignacego | 336 znaków | 11, czyli 3% | 6, czyli 2% |
| Proza, ściany boru nad drogą | 389 znaków | 8, czyli 2% | 2, czyli 1% |
| Wiersz, Inwokacja | 314 znaków | 12, czyli 4% | 19, czyli 6% |
Różnica jest rzędu wielkości, a nie kilku procent. W prozie znak spoza alfabetu wypada raz na trzydzieści kilka naciśnięć, w kodzie prawie co drugie. Każdy taki znak to sięgnięcie po Shift, po prawą kolumnę albo po rząd cyfr, a więc wyjście z pozycji bazowej i powrót.
Trzecia rzecz nie ma nic wspólnego z klawiaturą: pisanie kodu przerywa myślenie. Człowiek zatrzymuje się nad nazwą, cofa o dwie linie, patrzy w podpowiedź narzędzia. Miernik tempa zliczyłby tu przede wszystkim pauzy, dlatego liczba WPM z kodu niczego nie opisuje.
Ile znaków kodu wymaga prawego Alta na polskim programisty
Żaden. Sprawdzenie pliku definicji układu daje odpowiedź jednoznaczną: wszystkie znaki używane w kodzie leżą na pierwszym albo drugim poziomie klawisza, czyli bez modyfikatora albo z Shiftem. Nawiasy klamrowe powstają jako Shift z nawiasami kwadratowymi, pionowa kreska jako Shift z ukośnikiem odwrotnym, nawiasy ostre jako Shift z przecinkiem i kropką. Ten układ jest zwykłym QWERTY w wariancie ANSI, a prawy Alt dokłada do niego wyłącznie polskie litery oraz znak euro.
Jest jeden wyjątek i warto go znać, zanim zdziwi. Tylda, czyli Shift z klawiszem przy jedynce, jest w polskim układzie klawiszem martwym: nie pojawia się od razu, tylko czeka na następne naciśnięcie. Żeby dostać samą tyldę, trzeba po niej nacisnąć spację. Przy ścieżkach w powłoce ten jeden szczegół potrafi kosztować kilka minut szukania winnego.
Poza tym pozycje znaków zgadzają się z dokumentacją narzędzi i z opisami skrótów, a ogonki są dostępne bez przełączania układu, i właśnie dlatego programiści w Polsce zostają przy tym układzie. Pełne rozłożenie tych znaków opisuje osobno tekst o nawiasach i znakach w kodzie.
Konflikt, który naprawdę boli
Kłopot leży w innym miejscu, niż się zwykle sądzi. W Windows prawy Alt działa jak równoczesne Ctrl i Alt, więc każdy skrót zbudowany z Ctrl, Alt i litery zderza się z polską literą przypisaną do tej samej litery. Skrót z Ctrl, Alt i L w środowisku programistycznym może wpisać ł zamiast wykonać polecenie, a Ctrl z Altem i E potrafi wstawić ę.
Kolizja dotyczy dokładnie dziesięciu klawiszy, bo tyle pozycji zajmuje trzeci poziom polskiego układu: a, c, e, l, n, o, s, u, x oraz z, przy czym pod u leży euro, a nie litera z ogonkiem. Skróty z Ctrl i Altem zbudowane na pozostałych literach są w tym układzie bezpieczne.
Rozwiązania są dwa i każde ma cenę. Można przepisać skróty narzędzia na kombinacje bez Alta albo trzymać dwa układy i przełączać je świadomie. Drugie wyjście wygląda najprościej, a kosztuje najwięcej pomyłek, bo litera zależy wtedy od stanu, którego nie widać na klawiaturze. Lewy Ctrl z lewym Altem nie pomoże, bo Windows traktuje tę parę tak samo jak prawy Alt i kolizja wygląda wtedy identycznie.
Zamiast zgadywać, sprawdź u siebie, co realnie wychodzi z tych kombinacji. Test klawiatury pokazuje przy każdym naciśnięciu i pozycję klawisza, i znak, jaki z niego wyszedł, więc konflikt widać w jednej próbie.
Dlaczego część programistów pisze na układzie angielskim
Powody są praktyczne. Układ angielski nie ma akordów z prawym Altem, więc żaden skrót się z nimi nie zderza, a przy okazji tylda przestaje być klawiszem martwym i wychodzi jednym ruchem. Dokumentacja, przykłady konfiguracji i opisy skrótów w narzędziach zakładają pozycje z klawiatury ANSI, a więc dokładnie te, które ten układ daje. Przy pracy w zespole mieszanym językowo znika też pytanie, na jakim układzie powstał plik.
Cena jest jedna i konkretna: bez przełączenia układu nie napiszesz po polsku ani słowa z ogonkiem. Kto wybiera to rozwiązanie, zwykle trzyma polski układ do korespondencji i angielski do pracy z kodem, i to działa, dopóki przełączanie jest odruchem, a nie decyzją. Różnicę w kształcie klawiszy między wariantami opisuje tekst o klawiaturze ISO i ANSI, bo od tego zależy, gdzie leży ukośnik odwrotny.
Sprzęt czy ustawienia
Zapytanie o klawiaturę dla programisty prowadzi zwykle do porównań sprzętu, a rozstrzyga się nie na sprzęcie. Nie polecamy modeli i nie sprzedajemy niczego, więc można powiedzieć wprost: o wygodzie pisania kodu decyduje najpierw układ i konfiguracja skrótów, potem kształt klawiatury, a na końcu rodzaj przełącznika.
Trzy cechy sprzętu mają jednak wpływ mierzalny w codziennej pracy. Wariant ISO albo ANSI zmienia miejsce ukośnika odwrotnego i kształt Entera, obecność bloku numerycznego decyduje o odległości ręki do myszy, a rząd cyfr bez luk przyspiesza sięganie po nawiasy. Reszta jest kwestią wygody, a nie tempa, i nie ma sensu udawać, że jest inaczej.
Co wybrać i od czego zacząć
Tak dla polskiego programisty, jeśli piszesz kod i po polsku na tym samym komputerze. Znaki kodu masz na pozycjach z dokumentacji, ogonki bez przełączania, a jedyne, co trzeba wiedzieć, to zachowanie tyldy i dziesięć liter kolidujących ze skrótami.
Nie dla polskiego programisty, jeśli Twoje środowisko opiera skróty na Ctrl z Altem i nie chcesz ich przepisywać. Wtedy prościej trzymać układ angielski do pracy, a polski do pisania po polsku.
Zacznij tak: otwórz test klawiatury i naciśnij po kolei Ctrl z Altem i litery a, c, e, l, n, o, s, u, x oraz z. To jedyna dziesiątka, która może zderzyć się ze skrótami, i po tej jednej próbie wiesz, czy problem w ogóle Cię dotyczy.
Kiedy ćwiczenie tempa nie ma sensu
- Gdy chodzi o kod. Pisanie kodu przerywa myślenie, więc miernik zliczy głównie pauzy, a nie sprawność rąk.
- Gdy ręka przestała już szukać nawiasów. Od tego momentu pracę robi układ i konfiguracja narzędzia, nie palce.
- Gdy szukasz różnicy w rodzaju przełącznika. Na tempo pisania kodu wpływa on najmniej ze wszystkich cech sprzętu wymienionych wyżej.
FAQ
Jaki układ klawiatury jest najlepszy do programowania w Polsce?
Polski programisty, bo trzyma wszystkie znaki kodu na pozycjach amerykańskich i nie potrzebuje prawego Alta do żadnego z nich. Alternatywą jest układ angielski, jeśli ważniejsze są skróty z Ctrl i Altem niż pisanie po polsku bez przełączania.
Dlaczego skrót Ctrl Alt L wpisuje ł zamiast działać?
Bo w Windows prawy Alt to wewnętrznie Ctrl i Alt razem, więc system widzi akord składający polską literę. Dotyczy to dziesięciu liter: a, c, e, l, n, o, s, u, x i z.
Czy kod pisze się wolniej niż prozę?
Tak, u wszystkich. W linii kodu znaki spoza alfabetu stanowią około czterdziestu procent, a w polskiej prozie od dwóch do czterech, więc ręka znacznie częściej opuszcza pozycję bazową.
Dlaczego tylda nie działa przy pisaniu ścieżek?
Bo w polskim układzie jest klawiszem martwym i czeka na następny znak. Naciśnij po niej spację. Na układzie angielskim ten sam znak wychodzi od razu.
Czy klawiatura mechaniczna przyspiesza pisanie kodu?
Nie w sposób, który dałoby się zmierzyć tempem. O wygodzie decyduje najpierw układ i konfiguracja skrótów, potem kształt płyty, a rodzaj przełącznika na końcu.
Czym to przećwiczyć
Na rozgrzewkę palców po sesji z kodem dobrze działa tekst z gęstą diakrytyką. Pan Tadeusz, inwokacja Adama Mickiewicza z 1834 roku prowadzi przez wykrzykniki, wielkie litery i całą serię ogonków, czyli przez wszystkie akordy z prawym Altem, które w kodzie zwykle śpią: na 314 znaków wypada tam 22 litery z ogonkiem i 19 znaków wymagających Shifta. Na tekst z terminologią ścisłą nadaje się fragment Marii Skłodowskiej-Curie o istnieniu radu, a na spokojną prozę ranek pana Ignacego.
