- 大規模なコードベースを扱う人にとって、ノートPCでプログラミングするのは負担になりがち
- ファンは回り続け、言語サーバーはメモリ不足になり、再ビルドには長い時間がかかる
- ZedではSSHを通じてどのデバイスからでもプロジェクトを開ける
- UIはローカルで完全に実行され、120フレームの滑らかなグラフィックスを提供し、言語サーバー、タスク、ターミナルはリモートサーバーで実行されるため、クラウドハードウェアを活用できる
リモート開発環境の構築
- リモートでのコード編集のために、ZedはSSH対応に向けたインフラ変更を進めてきた
- SSH接続の維持、リモートサーバーの構築、機能統合など、さまざまな問題を解決する必要があった
- SSH接続にはControlMaster設定を使用し、各ホストに単一の接続を維持する
- 接続後、OSとアーキテクチャに合ったリモートサーバーをダウンロードする
muslでコンパイルされたリモートサーバーは動的リンクを必要としないため、古いディストリビューションでも動作する
- 接続が切れてもリモートサーバーは動作し続け、再接続時にも言語サーバーは完全に初期化されず状態が保たれる
- 保存されていない変更はローカルにバックアップされるため、作業を失わない
コラボレーションとSSHプロジェクト
- SSHプロジェクトをコラボレーションと一緒に動作させることが課題だった
- SSH経由の2人コラボレーションには最低4つのノードが関与し得るため、コラボレーション同期プロトコルをテストした
Projectを論理的な断片に分割し、クライアントがコラボレーションホスト、SSHホスト、コラボレーションゲストのいずれであるかに応じて、リモートおよびローカルモードで有効化できるようにした
- 新しいテストでは各役割とコラボレーションサーバーをインスタンス化し、同期が正しく行われることを確認した
- 友人や同僚とプロジェクトを進める際、プロジェクトがノートPC上にあるのか、SSHで接続可能なデバイス上にあるのかは透過的に処理される
GN⁺のまとめ
- Zedは大規模コードベースを扱う開発者に対し、リモートサーバーを活用した効率的な開発環境を提供する
- SSHによるリモート開発機能は、クラウドハードウェアを活用してパフォーマンスを向上させる
- コラボレーション機能は複数ノード間の同期をサポートし、スムーズな共同作業を可能にする
- ZedはmacOSとLinuxで利用でき、開発者に新しい体験を提供する
- 同様の機能を提供する別のプロジェクトとして、Visual Studio CodeのRemote Development Extensionがある
1件のコメント
Hacker Newsの意見
ZedとSSH Remoting、Orbstackを使ってMacでプログラミングするのは理想の環境だ
Zedの収益モデルとオープンソースかどうかが気になる
Zedのリモート開発機能は、リモートホストにバイナリをインストールして実行する
ZedをC、C++、Rust、Angularの開発に使っており、非常に満足している
複数のコンピュータを行き来しながら開発するときは、tmuxとnvimを使ってセッションを維持している
Zedの高速さは良いが、インラインのエラー強調表示やコード実行ボタンのような必須機能が不足している
画像ベースの画面共有のほうがより良い選択かもしれない
本当にポータブルなリモート編集ソリューションを求めている
信頼できるリモートサーバーであっても、正体不明のアプリを実行するのは良い考えではない
EmacsやTrampへの言及がないのが気がかりだ