[K] Czcionka programisty pięć lat później

W 2020 roku po raz ostatni rozważałem wybór kroju pisma dla programisty. Wówczas moim wyborem był krój Iosevka Slab. Obecnie Iosevka doczekała się już wersji 33.2.2 (poprzednio 3.7.1), ale jednocześnie przestała być moją podstawową czcionką (trzymajmy się tego terminu). Nie oznacza to, że przestałem lubić kroje smukłe - wprost przeciwnie. Za to pojawiła się konkurencja.

Resumé

Dla tych, którym nie chce się przebijać przez poprzednie wpisy - co jakiś czas dokumentuję, jakiego kroju aktualnie używam w edytorach tekstowych czy środowiskach programistycznych. Tak się składa, że estetyka literek ma dla mnie duże znaczenie, więc okresowo szukam ideału. Wypróbowałem mnóstwo polecanych krojów w rodzaju JetBrains Mono, Iosevka, Cascadia Code, Envy Code R, Roboto, DejaVu Sans Mono, Inconsolata, Fira Code, Source Code Pro, Tanohe, Input Mono, Victor Mono czy Consolas. Mam wrażenie, że każdy ważniejszy krój typu monospaced przewinął mi się przez dysk.

Dlaczego, moim zdaniem, dobry krój jest na wagę złota? Przede wszystkim ułatwia czytanie kodu źródłowego i unikanie pomyłek, o które nietrudno, gdy mówimy o znakach wyglądających na pozór bardzo podobnie. Chodzi o znaki w rodzaju dużego "i", małego "L", pałki "|", jedynki "1" i nawiasów kwadratowych: Il|1. To samo tyczy się zera i litery O: 0O. Dobry krój dla programistów pozwala bez problemu odróżnić te znaki.

Druga sprawa to ligatury - od kiery środowiska JetBrains pozwalają na używanie ligatur, strasznie się do tego przyzwyczaiłem. O co chodzi z ligaturami? Że w kroju poza zwykłymi znakami są także dostępne "zbitki", czyli jeśli określone dwa znaki stoją obok siebie, to zamiast dwóch osobnych znaków pokazywany jest inny, będący ich graficznym odpowiednikiem. Najprościej zrozumieć to na przykładzie "zbitki" oznaczającej "różny", zapisywany w wielu językach programowania jako wykrzyknik i znak równości: !=. Popularna ligatura to oczywiście przekreślony znak równości. Tego typu znaków jest dużo więcej i po pewnym czasie łatwo jest się do nich przyzwyczaić, więc obecnie sprawdzany krój po prostu ligatury mieć MUSI.

W moim przypadku trzecim kryterium jest smukłość kroju. Lubię, kiedy maksymalnie dużo tekstu mieści się na małej powierzchni, więc z marszu odpadają skądinąd bardzo przyjemne kroje w rodzaju Cascadii czy Inconsolaty - są po prostu zbyt szerokie.

Jeśli nie Iosevka, to co?

Przyznam, że jakiś czas temu złamałem się i zakupiłem krój Pragmata Pro Regular. I siłą rzeczy stał się on moim podstawowym krojem na długie miesiące, zanim nie okazało się, że ciut lepszy jest krój inny: Pragmasevka. Brzmi znajomo i się kojarzy? Owszem. Bowiem autorowi tego kroju przyświecała myśl, by Iosevkę maksymalnie upodobnić do Pragmaty Pro. I moim zdaniem to się udało, a ja znalazłem krój dla mnie wręcz idealny. Ma wszystko, czego bym oczekiwał, wygląda fenomenalnie, jest odpowiednio smukły, ma ligatury, polskie znaki diakrytyczne i tak dalej. Jest odrobinkę grubszy od Pragmaty, przez co sprawia wrażenie wyraźniejszego.

Poniżej znajdziecie porównanie Pragmaty Pro i Pragmasevki, dalej będzie Iosevka i Fira Code oraz pozostałe kroje, które aktualnie mam zainstalowane. Można sobie porównać je wszystkie na krótkim fragmencie kodu w Javie. W komentarzu, w linii z nazwą kroju znajdziecie też znaki, o których wspominałem w tekście. Zrzuty zrobiłem w IntelliJ-u, we wszystkich wypadkach zastosowałem wielkość 18 punktów z interlinią 1.3, włączone ligatury (jeśli są).

Pragmasevka Nerd - obecny tryumfator

Pragmata Pro - krój komercyjny, a na drugim miejscu

Iosevka w odmianie prostej

Fira Code - domyślny krój środowisk JetBrains

Input Mono Condensed - darmowa do użytku prywatnego

Droid Mono Sans - kiedyś bardzo, bardzo lubiłem ten krój

Courier New - dla minimalistów, krój systemowy

Envy Code R - krój niedokończony przez twórcę, a jednak ma to coś

Inconsolata - niegdyś podstawa moich środowisk

JetBrains Mono - ładny krój, ale jak dla mnie zbyt szeroki

Monoid - bardzo fajny, tutaj wypadł jako nieco duży z uwagi na przyjęte parametry porównania

Source Code Pro - bardzo ładny i "okrągły"

Victor Mono - troszkę udziwnione litery w kursywie nie każdemu się spodobają

Hack - solidny krój

Na zawsze?

Jak znam życie, Pragmasevka też kiedyś straci prymat - ale obecnie trudno jest mi sobie wyobrazić, co musiałby mieć krój, który by zrobił na mnie tak piorunujące wrażenie, żebym zrezygnował z Pragmasevki. Nigdy jednak nie wiadomo, więc kto wie, czy za kolejnych pięć lata nie pojawi się kolejny wpis z ogłoszeniem nowego zwycięzcy?

Komentarze