# Митчелл Хашимото о NixOS: «Это как виртуальные среды для всего компьютера»

Источник: https://www.youtube.com/watch?v=LA8KF9Fs2sk
Канал: Sourcegraph
Опубликовано: 22.07.2021

---

## Продуктивность в изоляции: как Митчелл Хашимото строит свою среду разработки
[[JUMP:0:00]]

В выпуске шоу Dev Tool Time на канале Sourcegraph гостем стал Митчелл Хашимото — сооснователь HashiCorp и создатель популярных инструментов Vagrant, Terraform и Vault. В ходе беседы он подробно рассказал о своей «островной» философии работы, где основной инструмент для программирования — Linux-виртуальная машина на macOS, а повседневные задачи решаются на iPad Pro. Митчелл продемонстрировал, как добивается полной воспроизводимости своей рабочей станции с помощью NixOS, а также поделился историей перехода с Emacs на Neovim под давлением коллег.

### 🖥 Рабочая станция: «Снаряд» внутри macOS
[[JUMP:17:39]]

Рабочее окружение Митчелла Хашимото — это попытка вынести всё критически важное программное обеспечение за пределы «зоны поражения» обновлений macOS.

*   **Linux в виртуальной машине:** Весь процесс разработки происходит внутри NixOS, запущенной в VMware Fusion. macOS для Хашимото выступает в роли «хоста» для браузера, мессенджеров и календаря, в то время как терминал и инструменты сборки полностью изолированы в гостевой ОС.
*   **Воспроизводимость:** Митчелл считает главным преимуществом Nix возможность описать всё состояние системы в коде. Это позволяет ему переустановить рабочее окружение с нуля, включая настройки i3, dot-файлы и все зависимости, примерно за 20 минут, запустив один Makefile.
*   **Управление зависимостями:** Использование Nix-shell и direnv позволяет ему автоматически подключать специфические версии инструментов (например, нужную версию Protobuf или Go) при переходе в директорию конкретного проекта.

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

### 🍎 iPad Pro как личный ассистент
[[JUMP:4:54]]

Для Митчелла iPad — это универсальное устройство для всего, кроме написания кода.

*   **Заметки и планирование:** Он активно использует Apple Pencil и приложение GoodNotes для рукописных заметок, создания схем и планирования кейнотов. Главным преимуществом перед бумагой считает возможность свободно перемещать фрагменты записей по «листу».
*   **Код-ревью:** Хашимото читает пул-реквесты на iPad, находя этот форм-фактор более приятным для работы вне рабочего стола. Заметки он делает «от руки», а затем, при необходимости, переносит их на компьютер для итогового комментария.
*   **Универсальность:** Несмотря на интерес к e-ink планшетам вроде Remarkable 2, Митчелл предпочитает iPad из-за того, что тот заменяет ему сразу несколько устройств — от навигатора для полетов (он пилот-любитель) до инструмента для просмотра документации.

### ⚙️ Философия работы с кодом: отказ от IDE
[[JUMP:39:36]]

Переход Хашимото на Neovim был вызван желанием иметь «мгновенный» отклик редактора, которого, по его словам, не хватало Emacs 10 лет назад. Сейчас он активно внедряет Lua и Tree-sitter.

*   **Минимализм:** Митчелл сознательно не использует полноценные IDE с автодополнением и дебаггерами. Его принцип — «писать самому», а не позволять инструментам генерировать код или автоматически сортировать импорты, так как это часто приводит к ошибкам и нарушению стандартов.
*   **Отсутствие дебаггеров:** Хашимото называет себя «приверженцем printf и размышлений». Он утверждает, что гораздо эффективнее глубоко изучить код и логику его работы в уме, чем тратить время на настройку среды отладки.
*   **Интеграция:** Несмотря на критику «умных» функций, он признал пользу Language Server Protocol (LSP) для базовой диагностики ошибок на лету, отмечая, что это делает его работу комфортнее.