Rustベースの埋め込みスクリプト言語「Rune」が遂にオープンソース化!
Rune is now open source
Rune is now open source
Rustプロジェクトへの組み込みに最適なスクリプト言語「Rune」が、オープンソースとして公開されました。Rustとの親和性が非常に高く、柔軟な開発環境を求めるエンジニア必見の言語です。
作者です!この記事では、IDEのメイン言語としてGoを採用する背景にある詳細を解説しています。また、私たちが新しく導入したコントリビューター・プログラムについても紹介しています。これは、CLA(著作権譲渡同意書)への署名を強いて企業に権利を渡させるのではなく、Unstable Buildの収益の一部を参加開発者に分配する仕組みです。質問があれば何でもどうぞ!
素敵な記事だね!現在のZed環境の代わりとしてRuneを試してみるよ。Zedが嫌いなわけじゃなくて、単に新しいIDEを試すのがやめられないだけなんだけどね :)
複数のマシンで手軽に作業できるというアイデアはいいと思う。ただ、そちらの調整用サーバーや暗号化アプローチを信頼しなきゃいけないのは正直避けたいな。これって(オプションで)Tailscale経由で動かしたりできないかな?(sshという選択肢はいつでもありそうだけど) https://docs.rune.build/learn/network
オープン台帳とコントリビューターへの利益分配は、IDEそのものよりも面白いイノベーションかもしれない。今のIDEも気に入ってるけど、Runeはかなり良さそうだからぜひ試してみるよ。
私たちは参加コントリビューターに対し、Runeが生み出す収益を直接的または間接的に分配する契約上の権利を付与します。
これって最悪なアイデアに聞こえるんだけど。プロジェクトに貢献する唯一の動機は、バグ修正や自分が必要な機能をアップストリームに送ることであるべきだよ。
Hacktoberfestの二の舞や、『Tide』、あるいはGitHubで承認欲求を満たすためにAIが生成したPRスパムのことを考えてみてほしい。そこに金銭的なインセンティブが直接絡んだら何が起きるか想像できるだろう。
他のスレッドで「新しい車を運転するようなもの」と言っていたけど、以前のバージョンのRuneを試したときは、新しい車なんてレベルじゃなかったよ。私はVimユーザーなんだけど、オンボーディングでVimオプションを有効にしたのが大失敗だった。Vimの操作ができないと文字通り何もできなくなって、初めてUNIXを触ったときみたいに「この呪われたテキストエディタ、どうやって終了するの?」って途方に暮れたよ。オンボーディングがトレーニングを兼ねていて、それを終えないと何もできない仕様だと気づいて、即座にアンインストールした。ハードルが高すぎたよ。今のオンボーディングがどうなってるかは分からないけど、もし同じなら、試すまでの摩擦を減らすか、Vimユーザー向けに警告を出すべきだと思う。
一瞬、ゲームのRune[1]の話かと思って懐かしくてワクワクしたのに、違ったか。残念! https://en.wikipedia.org/wiki/Rune_(video_game)
私はもうZellijユーザーだから、何でもかんでもIDEで完結させたいかと言われると迷うところだね。魅力はすごく分かるけど。テキストプロンプトコマンドの探索性がいいし、ターミナルがファーストクラスとして扱われているのも好き。go runだけで実行できるのもいいね。ただ、現状のテーマは正直微妙かな。普段はSolarizedやGruvboxのライト/ダークテーマを使ってるからさ。
Goベースのハッカブルなエディタ、ワクワクするね。Vimユーザーとしてのオンボーディングもかなり快適だった。ただ、自分のFish shellもVimバインディングにしてるせいで、ちょっと競合して困ってる。
この種のアプリアイデアはめちゃくちゃ支持してるよ。
ターミナルエミュレーターを立ち上げて、ユーザーの環境に関わらずWindows、macOS、Linuxで同じように動くクロスプラットフォームなターミナルアプリを作るのが今や本当に簡単になったからね。マウスホバーイベントみたいに、アプリを「いい感じ」にするために必要なものを確実にターミナル経由で送ることもできる。
自社のアプリでも3ヶ月ほど前からこのパラダイムを使い始めたんだけど、サブウィンドウやダイアログ用にDWM(デスクトップウィンドウマネージャー)のウィンドウを表示できるのは便利だし、SSH越しやDocker内などでは標準のTTYにフォールバックもできる。専用のウィンドウを使うことでタスクバーとの統合(ウィンドウのスタッキング)もできるし、アプリ名やアイコンの設定も自由自在だ。
Pythonなら『ghosttyを参照して、raylibとlibghosttyを使ってターミナルエミュレーターを書いて』というプロンプトで一発で生成可能だよ。最初のバージョンでもGhosttyの半分くらいの速度は出た。