Rustでランチャ開発その1: 開発理由
- #launcher-dev #rust #windows
最近 Windows向けランチャアプリ の開発を始めた
自分はfenrirというランチャを長年愛用しているのだが、以前からRustを触ってみたかったこともあり Rustでfenrirライク なランチャアプリを作ってみることにした
開発理由について
開発をしていくにあたって、まずは「なぜ作るのか?」という疑問を解消しておく
そういった疑問に対する答えを言語化し、自分の中に持っておく方が開発も頓挫しにくい……気がするからだ
ということでやっていく
なぜランチャなのか?
普段からfenrirを毎日使っており、その設定ファイルの作り込みも相当ヘビーにやっているので、 ランチャアプリ自体への思い入れ が深い
- ランチャはどれもそうだとは思うが、特にfenrirの軽さ・速さ・カスタマイズの柔軟さ(
cmd
で実行できる1行コマンドなら何でもエイリアス化できる)に惹かれている
- ランチャはどれもそうだとは思うが、特にfenrirの軽さ・速さ・カスタマイズの柔軟さ(
ただ、作りたい一番の理由は 「軽量で使い心地の良い超高速ランチャを自作してみたいから」 というもの
- 敢えて言えば、要するに 「浪漫」 かも知れない1
なお2023年6月現在、有力なランチャは下記の通り、数多く存在している
これらは相当ハイレベルなもの達なので、性能面・機能面では敵わないかも知れない
- だが、それでも作ってみたいと思っている
なぜRustなのか?
元々C言語やC++に触れる機会が多かったということで「Rustが良いらしい」という話を何となく把握してはいた
- 静的型付けでメモリ安全でなおかつ高速らしい、とのことで「じゃあ使ってみようか」程度の興味関心が元からあった
Pythonなども書けるが、PythonはWebスクレイピングのスクリプトや機械学習・自然言語処理・数理統計関連のライブラリを活用する言語というイメージが強く、Pythonでランチャ開発 というのが余りしっくりこなかった2
- 元々fenrir愛好家なこともあり、Windows向けランチャアプリ開発なら高速なC++かRustでやろう、ということでRustを選択
- ※あくまで 作れれば の話です……
なぜWindows向けなのか?
自宅にはMacBookProもDebian搭載ノートPCもあるのでクロスプラットフォーム開発もしようと思えば出来る環境だが……
- 結局のところ自分が普段使いするのはWindowsなのが要因として大きい
fenrirも Windows専用ランチャ ということであそこまでのシンプルさ・軽さ・高速さを発揮していたのでは?と思う
そういった理由で、クロスプラットフォーム開発はとりあえず保留する
- とにかくまずWindows向けに作る
なぜ車輪の再発明をするのか?
実はRust製ランチャにも競合が多いことを皆さんはご存じだろうか?
GitHubにあるRust製ランチャの数々をご覧いただきたい
- sirula: DorianRudolph/sirula
- yofi: l4l/yofi
- onagre: oknozor/onagre
- run-or-raise: CZ-NIC/run-or-raise
- launcher: crab-wm/launcher
さらに開発中(WIP)のRust製ランチャの数々
- launchthing: PrajwalCH/launchthing
- tmenu: rv178/tmenu
- ektox: LucaXiang/ektox
こういった現実を前に、率直に言って「自力で作る必要性があるか?」と聞かれたら必ずしも「ある」とは言い切れない
じゃあ何故作るのか?
- 「自分で作りたいから」 です3
次回予告
- とりあえず作ってますよという報告はしたので、次回は欲しい機能と仕様などについて書いていく所存