16 ポイント 投稿者 GN⁺ 2024-11-01 | 1件のコメント | WhatsAppで共有
  • 大規模なコードベースを扱う人にとって、ノート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件のコメント

 
GN⁺ 2024-11-01
Hacker Newsの意見
  • ZedとSSH Remoting、Orbstackを使ってMacでプログラミングするのは理想の環境だ

    • Orbstackで数秒でLinuxマシンを起動し、ZedからSSHで接続して高速なLinux開発環境を使える
    • macOS版のWSLとVSCodeに近いが、より良い感触がある
    • 過去にMitchell Hashimotoの仕事から着想を得た
    • VMwareとDocker Desktopも使ったが、滑らかで高速な開発環境を得るには重すぎた
    • ZedとOrbstackのおかげで高速で洗練されたシステムを手に入れた
  • Zedの収益モデルとオープンソースかどうかが気になる

    • 企業製品に依存するワークフローを構築するのは不安だ
  • Zedのリモート開発機能は、リモートホストにバイナリをインストールして実行する

    • ローカルマシンがSSH経由でリモートサーバーに接続し、Zedがサーバーをダウンロードして起動する
  • ZedをC、C++、Rust、Angularの開発に使っており、非常に満足している

    • JetBrains、vscode、vimなどさまざまなツールを使ってきたが、日常的なコーディングではZedが優れている
    • デバッグ機能が不足しているため、C#開発には使えない
    • 非常に高速な応答性を誇る
  • 複数のコンピュータを行き来しながら開発するときは、tmuxとnvimを使ってセッションを維持している

    • ZedやVS Codeはこのユースケースをサポートしていないように見える
  • Zedの高速さは良いが、インラインのエラー強調表示やコード実行ボタンのような必須機能が不足している

    • 現在のZed IDEは、軽量なAI対応テキストエディタのように感じられる
  • 画像ベースの画面共有のほうがより良い選択かもしれない

    • Zedのコラボレーション機能は良いが、他のアプリとの互換性の問題を考慮する必要がある
  • 本当にポータブルなリモート編集ソリューションを求めている

    • リモートサーバーにサーバーをインストールする必要があるZedやvscodeのソリューションは適していない
    • リモート環境が異なるとき、プロジェクトを簡単にコピーして動かすのが難しい
    • Zedの機能は良く、発展しているので前向きに見ている
  • 信頼できるリモートサーバーであっても、正体不明のアプリを実行するのは良い考えではない

    • すべての処理をローカルで行うほうが速い
    • SSHの組み込み機能を活用してファイルを処理できる
  • EmacsやTrampへの言及がないのが気がかりだ

    • AIブームにしか集中していないように見える