現在作成中のクロスOSエディタの進捗

こんにちは、如月翔也(@showya_kiss)です。
 今ChatAIの能力を試しつつ、自分では初めての「Rust+Tauri」によるクロスOSでのアプリ作成にチャレンジしていまして、作っているのはクロスOS対応のエディタなんですよね。

何故エディタを作っているのか

何故エディタを作っているのかと言うと、クロスOSで開発者ならViだろ、Vimだろ、Emacsだろという色々なツッコミがあるとは思うんですが、どのエディタを使ってもクロスOSのエディタで「しっくりくる」ものがなく、マークダウンエディタはTyporaという「ほぼ理想」の製品に出会ったので課金して使っているんですが、今妥協してSublimeText4を使っているんですが日本語を使っている時の最下段の処理が思うようではなく、要するに下側に対して画面外にはみ出るように文章を書くと、理想的な挙動は少し下にスクロールして今打ち込んでいるテキストが見られるようになるのが理想的なんですが、そうなっていないんですよね。
 もちろんSublime Text4は英語圏のエディタなので日本語のIMEの確定までの処理なんか想定されていないと思いますし、それは仕方がないんですが、今色々メモを取らないといけない案件に巻き込まれていまして、経緯が複雑怪奇なので文章もどうしても長くならざるを得なく、結局27インチWQHDの画面の縦を全部使っても足りずに画面からはみ出る結果になり(まあ目が悪いのでフォントを24ポイントにしているのも悪いとは思うんですが)、打ってる文字が見えないので確定してみてタイポがある、思った変換になっていないという事がままあり、結構ストレスフルなんですね。

そこで、もともとRustを勉強したのは将来的にTauriと組み合わせて1コードでWindows/Mac/Linuxの全てで動くコードを作ってみたいという気持ちからだったので、「じゃあエディタってそんなに難しい要件定義でもないし、勉強がてらに作ってみるか」と思ったのです。

本当はTyporaでマークダウンを使わなければ別にただのテキストエディタとして使えるんですが、Typoraは明確に「ブログ用」と決めており、Typoraを起動する事で自分の中で「ブログを書くスイッチ」が入るようにしているので、Typoraを他に使いたくないんですよね。

そういうわけで、自分にとって使い勝手の良いエディタを作れればいいな、それを使って自分でメモを取れて、そしてそれを後悔して誰かに使って貰えればいいな、と思ったのです。

しかしエディタ界は巨人が多すぎます

しかし先程上げたvi/vim/emacsに加え、Windowsには秀丸エディタがありますし、Macだけで言うならCotEditorという超強力なラインナップが並んでおり、ただ「クロスOSで使えるエディタですよー」では自己満足で終わりアピールポイントがないので、次の特徴を盛り込みたいな、と思っているのです。

  1. Pythonを内蔵し、Pythonによる機能拡張に対応する
  2. テーマに対応し、自分で作ったり人の作ったテーマが使える

この2個の特徴を備え、そしてまず機能拡張のサンプルとして「HTML作成支援(タグの補完、締めタグの自動挿入)」なんかを添えて、テーマもライト・ダークだけではなくDoracuraとか黒板的な色合いのものを添えて提示できれば面白いかな、と思うんですね。
 まああくまで自分で使うので自分が使う機能を優先して機能拡張として作っていきたいんですが、それができるエディタにしたいのです。

すると、途端に「簡単なエディタ」ではなくなってしまいました。

開発の進捗で言うと

開発の進捗で言うと、ファイルの基本的な操作、文字列に対する検索と書き換え(正規表現にも対応)、フォントの指定とフォントサイズの指定ができて、IMEによる文字ズレにも対応させているので、実は僕が使いたい性能としてはあと「タイプライターモード」だけ実装すれば「僕用エディタ」としてはもう完成の域に達しているのです。

ただ、機能拡張をするためにPyo3を導入しているんですが機能拡張を取り込んで実行するコードを入れていないので無駄なコードが入っていて動かない機能がある状態ですし、テーマについてもまだ未着手なので人様にお見せするにはまだ早い段階なんですが、一旦タイプライターモードを実装し、その時点でもう一回デバッグと言うか機能のチェックリストを実行し直し、それがOKであればバージョン0.1として仮完成とし、今まだ試していないのでWindowsでのコンパイルとLinuxでのコンパイルで同じ動作をするアプリができるかをチェックしたいな、と思っています。

ちょうどClaude Proの契約がそろそろ切れるんですが、実はAhamoを使っている僕はStella AIが1年間無料なのでStella AIでもClaude Proが使えますし、あと7月21日以降今使っているHISモバイルのSIMをLINEMOに乗り換える事でPayPayポイントを14000円分貰いながらPerploxityのPro版(月2980円)が1年無料になるのでそれも併用しようと思っており(こっちはClaude ProのSonnet4を無制限で使えるので為替を考えると+500円くらいで使い放題になるのはかなり大きいので下手したら1年後も契約しているかも知れないです)、とりあえず今のClaude Proではバージョン0.1までを作成し、その後本格的に機能拡張の導入、テーマの導入については新しく契約したChatAIと相談しながら作っていこうかな、と思っています。

※訂正します。今Googleで為替確認したら、20ドルは2970円プラス決済会社による為替手数料がかかるので、Claude Proを20ドルで契約するよりPerploxityをProで契約したほうが安いです。為替手数料が0円だったとしても10円しか違いません。

ChatAIは要件定義さえしっかりすれば答えてくれるので

ChatAIは高性能なものを選べば要件定義をガチガチに固めておけばかなりしっかり要件に従ったコードを組んで出してくれますし、Claude ProレベルのChat AIだとエラー無しで抜ける可能性が割と高く、6割くらいはエラーなしのコードを吐いてくれる印象です。
 ただ、エラーを吐いた時にエラーの解釈が明らかに誤っている場合があるのと、自分でエラーログを仕込んでおいてそのエラーログの認識がズレているみたいなスットコドッコイな部分があるので、「作る」→「エラーが出る」→「エラーをコピペして作り直させる」→「さらにエラーが出る」みたいな形でエラーが逆に増えていくパターンがあるので、エラーは自分でもちゃんと読み、ChatAIは「このエラーはこうなのでこう直します」と説明してくるので、「このエラーはこういう解釈が正しいですね。こっちで直して貰えますか?」的な感じで指摘するとエラーが一発で直ったりするので、ローコード・またなノーコードではできるんですが、作業者に知識がいらないか・作業者に判断はいらないか、と考えると、知識もなく判断もできないとゴールにたどり着かない結果になるのはわりとあると思います。

そういう意味ではやはりChatAIはアシスタントで、ペアプログラミングの相手として使うとか、自分がちゃんとSEとPMかつ先輩プログラマとして指摘できるレベルじゃないと自由自在に使いこなすのは結構厳しいと思います。

あと、プログラミングとは直接関係ないんですが、法的な問題の相談とか、メールの内容の相談とかはChatAIによって個性があって、「法的な根拠がない」を「法の新解釈」として捉えてヤバい橋を渡らせようとするAIがあったり、太鼓持ちみたいに褒めるので悲観的シナリオを聞くと成功率が1/4になったり、対等な相手に正当な内容を求めるメールを送るのに「相手の機嫌を損ねない」を物凄く重視した結果「俺はあいつの部下か」と思うようなメール訂正を受けたりするので、できればClaude Proだけみたいな使い方ではなく、複数のAIを使い分けて同じ質問ができる環境があると非常に良いです。

性能は低めですがCopilotは無制限で使えるのでそういう意味のサブとしていいですし、ソース範囲を明確にしてその中での結論が欲しい時はNotebookLMが最適解ですし(Claude ProでMCPを使ってもいいですけどね)、ChatAIには個性があるので、「1人の部下にだけ仕事を任せ報告もその人からしか聞かない」というのが仕事としてかなりヤバい運用なのはわかってもらえると思うので、ChatAIも複数に同じ事をやらせて結果の違いは個性として受け入れ、個々のChatAIの個性を鑑みたうえで判断するのが一番良い使い方だと思いますので、そんな感じで使えばいいと思います。

という訳で

進捗報告だけしようと思ったら約4000文字のブログになっており、最近ブログが書けてなかったのがどれだけストレスになっていたのか明確になって自分でも驚いているんですが、今作っているエディタの進捗はこんな感じで、ChatAIはこう使うといいですよ、というお話でした。

この記事を書いた人 Wrote this article

devildaredevil 男性

 ガジェットとAppleとTRPGが大好きな中年男です。文章をとにかく書くのが好きなので毎日のように色々なブログで文章を打ちまくっています。もし何か心に引っかかるものがあれば私のTwitterをフォローして頂けると更新情報が流れます。