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

Sourcegraph 28,8 тыс. 1 ч 3 мин 22.07.2021
Главное

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

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

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

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

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

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

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

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

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

💬 Цитаты

«Это не пропаганда, если это просто объективно лучше.»

«Кривая обучения Nix — это отвесная скала. Это, наверное, самая сложная кривая обучения из всего, что я когда-либо встречал в технологиях.»

Митчелл Хашимото 26:56
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
NixOS
Дистрибутив Linux, основанный на функциональном пакетном менеджере Nix, позволяющий описывать состояние системы в коде.
Tree-sitter
Библиотека для инкрементального парсинга кода, обеспечивающая качественную подсветку синтаксиса и навигацию.
LSP (Language Server Protocol)
Протокол, позволяющий редакторам кода получать информацию об автодополнении, определениях и ошибках от внешних серверов.
Dot-файлы
Файлы конфигурации пользовательских программ, начинающиеся с точки в Unix-подобных системах.
RFC (Request for Comments)
Документ, содержащий описание технических спецификаций или предложений по развитию проекта.
📊 Цифры
🗓 Хронология
  1. 10 лет назад Митчелл начал активно использовать Emacs.
  2. Несколько лет назад Митчелл переключился на Vim после шуток коллег.
  3. Несколько недель назад Переход Митчелла на Neovim 0.5 с поддержкой LSP и Tree-sitter.
⚖️ Другая сторона
Технологии и IT Mitchell Hashimoto NixOS Neovim HashiCorp Sourcegraph