Митчелл Хашимото о Zig, Go и Rust: «Программирование должно приносить удовольствие»

The PrimeTime 245 тыс. 1 ч 20 мин 5 мин 12.01.2025
Главное

Митчелл Хашимото, создатель инфраструктурного гиганта HashiCorp, совершил необычный карьерный маневр: он добровольно покинул посты CEO и CTO, чтобы вернуться к написанию кода. Его новый проект — терминал Ghostty, написанный на языке Zig, — стал итогом многолетних размышлений о качестве софта, балансе между жизнью и работой и поиске «радости» в программировании.

📉 «Успех вниз»: как стать рядовым разработчиком после поста CEO 0:00

Карьерный путь Митчелла Хашимото в HashiCorp часто называют «лунной походкой» . Начав как основатель и CEO, он последовательно перешел на роль CTO, затем стал рядовым индивидуальным контрибьютором (IC), а теперь — неоплачиваемым мейнтейнером Open Source проекта Ghostty .

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

Спикер выделяет несколько ключевых аспектов работы топ-менеджмента:

Митчелл Хашимото признается, что его родственники долгое время не понимали, что происходит, воспринимая его уход с поста CEO как какой-то провал, а не как сознательный выбор .

👻 Ghostty: архитектура терминала будущего 8:05

Проект Ghostty не задумывался как коммерческий продукт. Хашимото начал его 2-3 года назад как «обучающий полигон», чтобы изучить Zig, программирование для GPU и десктопную разработку .

Главные архитектурные принципы Ghostty:

  1. Libghostty как ядро: Основная идея Хашимото заключается в том, что эмулятор терминала должен существовать в виде библиотеки . Это позволит другим разработчикам создавать свои UI-оболочки (например, интегрировать терминал в VS Code или Neovim), не переписывая сложную логику эмуляции заново .
  2. Нативность вместо кроссплатформенности: В отличие от Kitty или Alacritty, Ghostty стремится выглядеть «родным» для каждой ОС . На Mac он использует Swift и AppKit, на Linux — GTK.
  3. Баланс характеристик: Проект строится на пересечении трех векторов: скорость (GPU-рендеринг), функциональность и нативность интерфейса .

Хашимото утверждает, что Ghostty вряд ли когда-либо обгонит iTerm2 по количеству функций (например, встроенный менеджер паролей он внедрять не планирует) . Вместо этого он хочет создать плагинную систему, чтобы сообщество могло само расширять возможности терминала .

⚡ Почему Zig, а не Go или Rust? 23:53

Выбор языка программирования для Ghostty стал самой обсуждаемой темой. Митчелл Хашимото, который писал на Go более десяти лет, выбрал Zig, сознательно отказавшись от Rust .

Его аргументация строится на нескольких тезисах:

Хашимото также похвалил систему сборки Zig, отметив, что пользователи в восторге от того, насколько легко Ghostty компилируется из исходников .

🛠️ Отношение к Open Source и «хейтерам» 34:40

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

В управлении проектом он придерживается строгого подхода:

🤖 AI как «армия стажеров» 45:54

Митчелл Хашимото активно использует GitHub Copilot и другие AI-инструменты. Он находит подозрительным, когда опытные программисты отрицают пользу LLM .

Его взгляд на AI:

При этом Митчелл признается, что стал настолько зависим от Copilot, что если инструмент перестает работать из-за плохого интернета, он может просто закончить рабочий день .

👨‍👩‍👧 Личные уроки и баланс 1:00:25

Самым трудным моментом в создании Ghostty Хашимото называет не технические задачи, а эмоциональный баланс после рождения дочери . Он описывает постоянное чувство вины: когда он кодит, он скучает по ребенку; когда он с ребенком, он иногда ловит себя на желании пойти пописать код .

Его подход к обучению:

  1. Сначала прочитать весь справочник по языку (reference manual) от корки до корки .
  2. Прочитать всю стандартную библиотеку языка, чтобы понимать общие паттерны .
  3. Только после этого начинать что-то строить .

В завершение беседы Митчелл Хашимото поделился своим идеальным завтраком — это Egg McMuffin и хашбраун из McDonald's, которые он считает практически совершенной едой .

💬 Цитаты

«Мне весело писать на Zig, и мне совсем не весело читать или писать на Rust.»

Митчелл Хашимото 26:20

«Дерьмо течет вверх... к моменту, когда проблема доходит до высшего руководства, вы имеете дело только с плохими вещами постоянно.»

Митчелл Хашимото 03:34

«Я нахожу крайне подозрительным, когда программист любого калибра говорит гадости о полезности AI.»

Митчелл Хашимото 47:51
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
IC (Individual Contributor)
Специалист, который вносит вклад в проект своими руками (кодом), а не управляет другими людьми.
Comptime
Особенность языка Zig, позволяющая выполнять обычный код во время компиляции программы.
Libghostty
Ядро эмулятора терминала Ghostty, выделенное в отдельную библиотеку для повторного использования.
📊 Цифры
🗓 Хронология
  1. 2014 Митчелл Хашимото выступает на GopherCon с докладом о паттернах тестирования в Go.
  2. 2021-2022 Начало работы над Ghostty как личным обучающим проектом.
  3. 2023-2024 Активная фаза разработки, переход проекта в статус Open Source под лицензией MIT.
⚖️ Другая сторона
Технологии и IT Mitchell Hashimoto Ghostty Zig HashiCorp Open Source