10 февраля 2020 г.

Мой рейтинг шрифтов для программирования

Наблюдая за профессиональными программистами, увлечёнными разработкой (а я пересмотрел очень много обучающих видеороликов от самых разных людей), я заметил, что далеко не всем интересна тема настройки своего редактора кода. Люди просто открывали редактор и начинали программировать: никому не интересно какая там тема установлена, какие шрифты и какие расширения можно установить для удобства. Чего уж там говорить, я видел пару десятков видеороликов, где VS Code сигнализировал о новом скаченном обновлении, но "учитель" даже не заморачивался, чтобы это обновление применить. И так на протяжении нескольких уроков, которые он очевидно писал на видео за один раз.
Лично я такого дзена и отрешенности от внешнего мира во время программирования не познал, поэтому потратил некоторое время на выбор самого удобного шрифта, самой симпатичной темы оформления (этот процесс может продолжаться вечно, потому что темы надоедают). В конце концов редактор кода это рабочее место программиста, а значит оно должно быть красивым и удобным, а строчки кода, набранные специальным шрифтом, это именно то, на что смотрит программист много времени (в реальности он больше смотрит в документацию, а не в свой код, но не будем об этом).
Шрифт: JetBrains Mono, тема редактора: Dracula
Итак, мой личный рейтинг шрифтов, которые сделают ваш код красивым (с визуальной точки зрения) и легко читаемым.
1. JetBarins Mono. Этим шрифтом в VS Code я начал пользоваться всего две недели назад и уже успел его полюбить. Данный шрифт давно применяется в профессиональных IDE от JetBrains, но вот недавно его сделали доступным для всех. Естественно шрифт с лигатурами, потому что это сейчас модно в шрифтостроении для программистов.
2. Fira Code. Очень популярный сейчас во всём мире шрифт от отечественного программиста Никиты Прокопова. Данный шрифт демонстрируется на официальной странице VS Code в документации и примерах, то есть им пользуются в самой Microsoft. Шрифт отлично читаемый и любим программистами за лигатуры.
3. Hack Nerd Font. На этом шрифте я просидел больше года и он меня абсолютно всем устраивал, пока я не отправился искать новых ощущений с другими шрифтами. Шрифт реально классный и разработан так, чтобы не раздражать своего пользователя при повседневном использовании - с этой задачей он справляется прекрасно.
4. Consolas. Это уже классика от Microsoft и он используется по умолчанию на системах с Windows в VS Code. Использовать шрифт Consolas для кода я начал почти 10 лет назад, когда писал свои первые проекты на PHP (тогда я использовал забытый ныне редактор Komodo Edit). Сейчас шрифт, конечно же, смотрится не так круто по сравнению с современными, специализированными шрифтами для программистов, но кто сказал, что классика должна удивлять? В конце концов, очень много программистов вообще сидят на Courier New или на похожих древних mono-шрифтах и им ничего новее не нужно. Аналогичным шрифтом в MacOS является San Francisco, который и используется по умолчанию в VS Code, а большего программистам на MacOS и не нужно, потому что от добра добра они не ищут (маководы вообще не любят что-то настраивать, а чтобы красиво было сразу из коробки).
5. Cascadia. Новый шрифт от Microsoft для программистов (лигатуры есть). Пока не снискал большой популярности, лично я его не использовал, но это точно очень качественный шрифт от профессионального дизайнера. Шрифт открытый и исходники выложены на github. Данный шрифт используется по умолчанию в новом Terminal Windows 10 и для командной строки он очень хорош.
6. Victor Mono. Ещё один отличный, бесплатный, лёгкий шрифт с лигатурами. Мне он показался похожим на Source Code Pro от Adobe. Я не фанат тонких шрифтов, так что не использовал их.
7. Operator Mono, Source Code Pro, Iosevka, Fantasque Sans Mono (ссылка на репорзиторий с архивами всех шрифтов). Отличные шрифты для программирования, которые обязательно упомянут в любом треде, где программисты их обсуждают, но лично я ими долго не пользовался по тем или иным причинам (меня полностью устраивал Hack Nerd font). "Радость" от использования шрифта так же зависит от качества вашего монитора (HD/Retina), личного восприятия и привередливости. Некоторые программисты, например, не любят, когда буква О и 0 (ноль) трудночитаемые и этого будет достаточно, чтобы не пользоваться таким шрифтом.
Учтите, что далеко не у всех шрифтов для программистов есть поддержка кириллицы (если разработчик не русскоязычный или не корпорация, то скорее всего кириллицы не будет) и комментарии на русском языке будут выглядеть в вашем коде ужасно (ещё один повод выучить английский и не писать комментарии на русском языке, потому что это непрофессионально).
Пример лигатур в Fira Code 2
Некоторые программисты считают лигатуры блажью, которые не дают ничего для программирования в плане повышения читаемости кода: ну подумаешь стрелочка => по другому рисуется, или знаки сравнения типа "больше равно" в виде одного символа.
Включение поддержки лигатур в редакторе VS Code
Долгое время и я этой моды не понимал, но два месяца назад включил их в настройках VS Code (да, их можно запросто включать и отключать, нужно только чтобы в вашем шрифте была поддержка лигатур) и так и не отключал, потому что лигатуры меня не раздражают. В любом случае рекомендуемую всем попробовать писать код с включенными лигатурами, и возможно, вы не сможете от этого отказаться. Многие программисты даже специальным образом патчат свои любимые шрифты, чтобы добавить туда поддержку лигатур. 

4 февраля 2020 г.

Командная строка в Windows может быть удобной

Вот уже полгода я "вкатываюсь" в мир frontend разработки и пока я не начал этого делать, я даже и не подозревал, что профессиональные веб-разработчики работают с консолью "на ты" не хуже линуксоидов. "Ты же делаешь сайты, зачем тебе сидеть в консоли?" - но не всё так просто.
При разработке любого относительно сложного и комплексного проекта, веб-разработчик использует пакетный менеджер для установки библиотек и прочего, скрипты запуска или сборки проекта, поглядывает на проходящие тесты в консоли, ну и конечно периодически работает с системой контроля версий (Git, как правило), сохраняя свои труды в коммитах. Да, не для всех этих задач требуется именно консоль, но я ещё не видел ни одного профессионального разработчика, который бы ей не пользовался (большая часть веб-разработчиков пользуется MacOS, сидят на Macbook и хвалят красивую консоль там). К счастью, пользоваться консолью не страшно и не больно даже в Windows, где она до сих пор была уделом только суровых сисадминов.
Более того, вы можете даже получить консоль как в Linux в своём Windows! Настоящую bash со всеми командами оттуда (и выполнить rm -rf). Самым простым способом для этого будет использование эмулятора терминала Cmder. Программа имеет огромное количество настроек и встроенный bash для Windows (для этого нужно загрузить полную версию дистрибутива на 118 МБ). Кстати, при установке Git, вам так же устанавливается эмулятор git bash. Файловые системы в Windows и Linux разные, но эмуляторы корректно обрабатывают пути, хотя я заметил, что профессионалы этим не злоупотребляют и не пишут названия каталогов с пробелами и кириллицей (ну это так, общее правило всех программистов - даже в счастливый век UTF-8 можно запросто получить не очевидную проблему из-за этого).
В VS Code очень удобно организована работа с терминалами
Сама Microsoft давно поняла, что профессиональным разработчикам нужны профессиональные инструменты и желательно, совершенно бесплатные. Корпорация подарила прекрасный редактор кода VS Code, который сейчас является самым популярным у веб-разработчиков по всему миру. В прошлом году корпорация порадовала нас новым терминалом, новой 7-й версией Powershell и даже открытым шрифтом Cascadia с лигатурами для программистов (который весьма хорош, но о моих любимых шрифтах для программирования я напишу в другом посте). В VS Code можно удобно работать с терминалами (по клавише ctrl+~), запускать несколько штук и переключаться между ними.
Посмотрите на этот тизер нового терминала Windows - практически блокбастер! К сожалению, в реальности терминал Windows не стал таким красивым и удобным как в рекламном ролике, но вы можете скачать preview версию нового терминала и начать им пользоваться прямо сейчас (есть версия для установки из магазина MS и на github). Да, из него можно запускать команды, но он не настолько удобен как терминалы в Linux, где консоль это основа система, можно сказать её душа. Чувствуется, что терминал в Windows это вспомогательный минималистичный инструмент.

Если вам нужен максимум контроля операционной системы и Windows вам уже мало, то кроме перехода на MacOS есть ещё варианты - полноценный Linux внутри вашего Windows. И это даже не виртуальная машина, как вы могли бы подумать, а настоящий дистрибутив, который разворачивается на вашей системе и имеет полноценный доступ к "железу" и файловой системе. Да, шутки линуксоидов про "MS Windows" стали явью и за это отвечает система Windows Subsystem for Linux. Теперь нет никакой необходимости отказываться от Windows 10, если вы профессиональный программист и хотите работать именно с Linux.
Изначально можно было ставить Ubuntu, но в данный момент имеется и Suse Linux, и другие интересные дистрибутивы. Вы даже можете установить дистрибутив для взлома Kali Linux, хотя, конечно, для настоящего хакера это не труъ. WSL это не только доступ к linux консоли, но при желании вы можете запустить полноценный x-server и работать в графическом DE. Посмотрите видеоролик (на английском) от Скотта Хансельмана про то, какие чудеса можно творить с WSL. VS Code умеет переключаться в специальный режим при работе с WSL.
Как вы можете убедиться, командная строка в Windows это теперь круто.