ghostty:最高のターミナルエミュレータ
We ain't afraid of no Ghostty! (Interview)
この記事は、HashiCorpの共同設立者であるMitchell Hashimoto氏へのインタビューです。HashiCorpをIPOへと導き、2023年に退社したHashimoto氏は、現在Ghostyというターミナルエミュレータの開発に取り組んでいます。
Ghostyは、高速、クロスプラットフォーム、ネイティブという3つの主要な原則に基づいて設計されています。Hashimoto氏は、既存のターミナルがこれらの特性をすべて満たしていないと感じ、Ghostyの開発に着手しました。
速度を重視した設計
Ghostyの高速化を実現するために、Hashimoto氏は、ネイティブアプリケーションであることの利点を活用し、SIMD命令やMetalなどのプラットフォーム固有の技術を採用しています。
「高速化のために、Arm命令やSIMDなど、ネイティブアプリケーションでなければ活用できない技術を使っています。Mac OSではMetalを直接使用し、LinuxではOpenGLを使用しています。Mac OSでMetalを使用することは非常に重要です。AppleはネイティブではOpenGLをサポートしていないため、Metalに変換する際のオーバーヘッドが発生します。」
クロスプラットフォーム対応
Ghostyは、MacとLinuxの両方で動作するように設計されています。Windowsのサポートは1.0リリースには含まれていませんが、将来のリリースで対応する予定です。
「Windowsは、ソフトウェアの世界では非常に重要です。Vagrantの開発時にも、Windowsでの問題を理解するために、Windows PCを1年間フルタイムで使用しました。ターミナルでも同じように、Windowsのサポートは重要だと考えています。」
ネイティブなエクスペリエンス
Ghostyは、MacではSwift UI、LinuxではGTKを使用して構築されており、それぞれのプラットフォームでネイティブなエクスペリエンスを提供します。
「MacではSwift UI、LinuxではGTKを使用して、ネイティブなエクスペリエンスを提供しています。Linux版のGhostyは、AlacrityやKitty、WezTermなどのターミナルとは、デスクトップ環境との統合の点で明確な違いがあります。」
将来の展望:Libghostyとターミナルの進化
Hashimoto氏は、Ghostyを単なるターミナルエミュレータアプリケーションではなく、Libghostyと呼ばれるクロスプラットフォームのライブラリとして発展させることを構想しています。Libghostyを使用することで、開発者は、コアのターミナル機能を再実装することなく、独自のターミナルエミュレータアプリケーションを構築することができます。
「Libghostyは、クロスプラットフォームのライブラリとして、他の開発者がコアのターミナル機能を再実装することなく、独自のターミナルエミュレータアプリケーションを構築できるようにすることを目指しています。これは、ターミナルエコシステム全体に影響を与える可能性のある、非常に重要な部分です。」
Hashimoto氏はまた、ターミナルがウェブブラウザのように、より革新的でエキサイティングなプラットフォームになる可能性について考察しています。
「ウェブブラウザは、毎年何百もの新機能やイノベーションが生まれていますが、ターミナルはそうではありません。ターミナルが、よりエキサイティングで革新的なプラットフォームになる可能性を追求したいと考えています。」
コミュニティ主導の開発
Ghostyは、活発なコミュニティによって支えられています。何百人もの開発者がコードに貢献し、何千人ものユーザーがベータテストに参加しています。Hashimoto氏は、このコミュニティの重要性を認識しており、将来のガバナンスモデルについても検討しています。
「Ghostyは、活発なコミュニティによって支えられています。このコミュニティの重要性を認識しており、将来のガバナンスモデルについても検討しています。」
1.0リリースと今後のロードマップ
Ghosty 1.0は、2023年12月にリリースされました。リリースには、新しいアイコン、ウェブサイト、ドキュメントなどが含まれています。Hashimoto氏は、検索機能、グラフィカルな設定メカニズム、テーマに合わせたアイコンの動的な色の変更など、今後の機能についても言及しています。
まとめ
Ghostyは、高速、クロスプラットフォーム、ネイティブという3つの原則に基づいて設計された、次世代のターミナルエミュレータです。Hashimoto氏は、Libghostyを通じてターミナルエコシステム全体を進化させ、開発者にとってより強力で使いやすいプラットフォームにすることを目指しています。Ghostyの登場は、ターミナルの世界に新しい風を吹き込み、開発体験を向上させる可能性を秘めています。