В новом эпизоде подкаста Software Unscripted Ричард Фелдман обсуждает с Митчеллом Хашимото, создателем терминала Ghostty и сооснователем HashiCorp, философию разработки современного софта. Основной темой беседы стал отказ от кроссплатформенных фреймворков в пользу нативных интерфейсов и то, как искусственный интеллект меняет повседневную работу программиста.
🖥️ Нативный UI против «наименьшего общего знаменателя» 2:08
Митчелл Хашимото придерживается радикальной, по современным меркам, позиции: программное обеспечение должно быть нативным для каждой платформы . Он утверждает, что индустрия наводнена приложениями, построенными по принципу «наименьшего общего знаменателя», которые поддерживают только те функции, которые есть везде, игнорируя уникальные возможности конкретных операционных систем .
По мнению Хашимото, компании, обладающие ресурсами, должны нанимать специалистов под конкретные платформы, а не пытаться сэкономить на Electron или других кроссплатформенных инструментах . Он скучает по приложениям, которые «бесстыдно» заявляют о своей принадлежности к одной экосистеме, например, только к macOS, и глубоко интегрируются с такими сервисами, как iCloud или функцией Handoff .
В качестве примера Хашимото приводит планы для Ghostty:
- Автоматическая синхронизация конфигурации (шрифтов, цветов) через iCloud при входе в систему на новом устройстве Apple .
- Использование нативных виджетов вместо отрисовки собственных пикселей (как это делает Kitty или Zed) .
- Глубокая интеграция с системными уведомлениями и настройками звука .
Ричард Фелдман соглашается, отмечая, что кроссплатформенные PWA-приложения (например, для Android на macOS) часто выглядят небрежно и лишены элементарных функций, таких как регулировка громкости уведомлений .
🏗️ Архитектура Ghostty: Zig и нативные слои 6:26
Несмотря на приверженность нативному UI, Ghostty активно использует общий код для бизнес-логики. Хашимото разделяет приложение на два уровня:
- Кроссплатформенная логика: написана на языке Zig. Она включает в себя сложные структуры данных, такие как деревья для управления разделением экрана (splits) .
- Презентационный уровень: полностью нативный для каждой ОС (Swift для macOS, GTK для Linux) .
Интересно, что изначально Хашимото пытался реализовать логику разделения окон отдельно на Swift и GTK, но это привело к дублированию багов при операциях вращения или выравнивания панелей . В итоге он вынес эту логику в Zig, оставив нативным слоям только задачу трансляции этих данных в видимые виджеты .
Хашимото считает, что умение разделять бизнес-логику и логику представления — это ключевой навык старшего инженера . Он критикует современные веб-фреймворки (например, React и React Server Components) за то, что они поощряют смешивание этих слоев в одном файле, что затрудняет понимание того, где именно выполняется код и насколько он ресурсозатратен .
🛠️ Инженерный прагматизм: «Не влюбляйтесь в свой молоток» 11:36
Одной из центральных идей беседы стала критика узкой специализации на одном языке программирования. Хашимото полагает, что слишком многие инженеры привязываются к одной экосистеме (например, только JavaScript), воспринимая её как часть своей идентичности .
Его аргументы:
- Языки программирования — это просто инструменты (молотки), и они «не будут любить вас в ответ» .
- Настоящая сила инженера заключается в способности проектировать системы в рамках заданных ограничений, используя наиболее подходящие средства .
- Обучение новому языку не так сложно, как принято считать; хороший специалист может быстро освоить несколько инструментов на достаточном уровне .
Фелдман добавляет, что компании часто попадают в ловушку «единого кодового базса» на ранних этапах, но в итоге всё равно вынуждены нанимать отдельных iOS или Android-разработчиков, когда понимают, что кроссплатформенное решение не обеспечивает должного качества .
⚖️ Ghostty как некоммерческая организация и критика лицензий 23:36
Недавно Ghostty сменил юридический статус на некоммерческую организацию (non-profit), что гарантирует его независимость и открытость в будущем . Хашимото передал проекту все права на интеллектуальную собственность и торговые марки .
Это решение вызвало неожиданную критику со стороны сторонников «свободного ПО» (Free Software), которые требовали перевода проекта на копилефт-лицензию (например, GPL) вместо текущей пермиссивной . Митчелл относится к этому спокойно:
- Он считает выбор лицензии субъективным вопросом ценностей .
- По его мнению, агрессивное навязывание своих взглядов как «объективной истины» является токсичным .
- Критика «хорошее недостаточно хорошо» отпугивает людей от благотворительности и участия в Open Source .
Митчелл признаётся, что из-за страха необоснованной критики он практически не обсуждает свою внетехническую благотворительную деятельность в интернете .
🤖 Рабочий процесс с ИИ: Агенты и «Оракул» 31:00
На момент записи (декабрь 2025 года) Хашимото полностью интегрировал ИИ в свой рабочий процесс, используя инструмент под названием AMP . Его воркфлоу выглядит следующим образом:
- Исследование (Librarian): Агент на базе модели Sonnet 4.5 сканирует репозитории и ищет примеры реализации протоколов (например, T-mux) .
- Планирование (Oracle): Модель GPT 5.1 анализирует собранную информацию и составляет детальный план реализации, учитывая типы данных и краевые случаи .
- Верификация: Хашимото просит ИИ перепроверить свои же выводы. Однажды это помогло найти одно пропущенное значение в перечислении (enum) среди тысячи задокументированных .
- Реализация: Создаются отдельные потоки (threads) для написания конкретных кусков кода .
Митчелл подчеркивает, что не доверяет ИИ вслепую. Он всегда требует ссылки на файлы и номера строк в исходном коде, чтобы лично проверить результат . По его словам, ИИ делает программирование более увлекательным, так как берет на себя рутинный поиск информации, позволяя человеку сосредоточиться на написании самого кода .
📜 Правила для контрибьюторов и проблема «шлака» (Slop) 36:14
В Ghostty действует строгая политика в отношении ИИ-контента от сторонних разработчиков:
- Использование ИИ разрешено, но об этом нужно открыто заявлять (disclose) .
- Контрибьютор должен полностью понимать код, который он предлагает .
- Запрещено использовать ИИ для ответов на комментарии и обратную связь (feedback) в Pull Requests .
Последнее правило было введено из-за негативного опыта: автоматические ответы ИИ на замечания мейнтейнеров никогда не приносили пользы и только усложняли коммуникацию . Хашимото жалуется на огромное количество низкокачественных PR («slop»), созданных с помощью ИИ людьми, которые даже не пытаются разобраться в проекте . Это убивает желание мейнтейнеров выступать в роли наставников для новичков .
🔋 Экология и будущее локальных моделей 47:26
Обсуждая энергозатраты на обучение и работу ИИ, Хашимото занимает прагматичную позицию. Он не считает, что отдельные пользователи должны нести ответственность за экологический след технологий; это задача корпораций и правительств .
Лично Митчелл минимизирует свой вклад в потребление энергии:
- Его дом в Южной Калифорнии полностью питается от солнечных батарей .
- За 6 лет он практически не платил по счетам за электричество, несмотря на зарядку электромобиля дома .
- В его доме установлены таймеры на все выключатели света, чтобы избежать напрасного расхода энергии .
В будущем Хашимото надеется на появление качественных моделей (уровня Opus 4.5), способных работать локально на пользовательском железе, что решит вопросы конфиденциальности и скорости . Он полагает, что фаза экспоненциального роста возможностей LLM сменяется фазой итеративных улучшений и оптимизации эффективности .