Продуктивность в изоляции: как Митчелл Хашимото строит свою среду разработки 0:00
В выпуске шоу Dev Tool Time на канале Sourcegraph гостем стал Митчелл Хашимото — сооснователь HashiCorp и создатель популярных инструментов Vagrant, Terraform и Vault. В ходе беседы он подробно рассказал о своей «островной» философии работы, где основной инструмент для программирования — Linux-виртуальная машина на macOS, а повседневные задачи решаются на iPad Pro. Митчелл продемонстрировал, как добивается полной воспроизводимости своей рабочей станции с помощью NixOS, а также поделился историей перехода с Emacs на Neovim под давлением коллег.
🖥 Рабочая станция: «Снаряд» внутри macOS 17:39
Рабочее окружение Митчелла Хашимото — это попытка вынести всё критически важное программное обеспечение за пределы «зоны поражения» обновлений macOS.
- Linux в виртуальной машине: Весь процесс разработки происходит внутри NixOS, запущенной в VMware Fusion. macOS для Хашимото выступает в роли «хоста» для браузера, мессенджеров и календаря, в то время как терминал и инструменты сборки полностью изолированы в гостевой ОС.
- Воспроизводимость: Митчелл считает главным преимуществом Nix возможность описать всё состояние системы в коде. Это позволяет ему переустановить рабочее окружение с нуля, включая настройки i3, dot-файлы и все зависимости, примерно за 20 минут, запустив один Makefile.
- Управление зависимостями: Использование Nix-shell и direnv позволяет ему автоматически подключать специфические версии инструментов (например, нужную версию Protobuf или Go) при переходе в директорию конкретного проекта.
Митчелл признает, что порог вхождения в Nix «подобен отвесной скале». По его мнению, самой большой проблемой является крайне сложный язык конфигурации и недружелюбная документация, однако он считает эту цену оправданной ради стабильности, недоступной пользователям традиционных пакетных менеджеров.
🍎 iPad Pro как личный ассистент 4:54
Для Митчелла iPad — это универсальное устройство для всего, кроме написания кода.
- Заметки и планирование: Он активно использует Apple Pencil и приложение GoodNotes для рукописных заметок, создания схем и планирования кейнотов. Главным преимуществом перед бумагой считает возможность свободно перемещать фрагменты записей по «листу».
- Код-ревью: Хашимото читает пул-реквесты на iPad, находя этот форм-фактор более приятным для работы вне рабочего стола. Заметки он делает «от руки», а затем, при необходимости, переносит их на компьютер для итогового комментария.
- Универсальность: Несмотря на интерес к e-ink планшетам вроде Remarkable 2, Митчелл предпочитает iPad из-за того, что тот заменяет ему сразу несколько устройств — от навигатора для полетов (он пилот-любитель) до инструмента для просмотра документации.
⚙️ Философия работы с кодом: отказ от IDE 39:36
Переход Хашимото на Neovim был вызван желанием иметь «мгновенный» отклик редактора, которого, по его словам, не хватало Emacs 10 лет назад. Сейчас он активно внедряет Lua и Tree-sitter.
- Минимализм: Митчелл сознательно не использует полноценные IDE с автодополнением и дебаггерами. Его принцип — «писать самому», а не позволять инструментам генерировать код или автоматически сортировать импорты, так как это часто приводит к ошибкам и нарушению стандартов.
- Отсутствие дебаггеров: Хашимото называет себя «приверженцем printf и размышлений». Он утверждает, что гораздо эффективнее глубоко изучить код и логику его работы в уме, чем тратить время на настройку среды отладки.
- Интеграция: Несмотря на критику «умных» функций, он признал пользу Language Server Protocol (LSP) для базовой диагностики ошибок на лету, отмечая, что это делает его работу комфортнее.