【2日目・3日目】ペパボ寺子屋で決まったこと
ペパボ寺子屋での進捗を報告します。
まず1つ目は最低限の要件。
- UIの表示(TUI)
- ファイル作成
- ファイル読み込み
- ファイル保存(コマンドモード必須)
- 終了(コマンドモード必須)
- モード切り替え
- ノーマル
- インサート(ノーマルモード必須)
- コマンド(ノーマルモード必須)
- 文字入力(インサートモード必須)
まあ見た感じUI表示かノーマルモード実装からって感じですかね。
さて、ここで割と大きい課題にぶち当たりました…
ElixirでTUIソフトを作る為のライブラリを色々調べてたんですが、殆ど無いんですよね… 唯一見つけたライブラリもあまり有名では無く、情報も殆ど無いと言っても良いようなものでした。
いつもお世話になっているVimのコミュニティでも色々質問してみたところ、
検証した感じ、elixirは起動が遅い、リソース食う、処理速度はそこそこ速い、クライアントにはあんま向いてない
という意見がありました。 プロセスを大量に作ったり、耐障害性が高いものを作るために最適化された言語のようなので、少なくとも今回のテキストエディタには向いてないのかなー、という結論に… 個人的に凄く魅力のある興味深い技術だとは思ったので、ゆくゆくは学びたい言語ですが、今回は採用を見送らせて頂くことにしました(お祈りメール)。
で、どうなったかと言うと、
ElixirHaskellを用いたVimライクなTUIテキストエディタを作り、バージョン1.0.0として公開する但し変数の再代入は不可そもそもHaskellでは再代入が出来ないためこの条項は外す- 場合によっては他の言語を一部使用
- なるべく拡張性を持たせたい
- その他仕様は追って決める
はい、こういう事になりました。
ちなみにHaskellだとTUIライブラリとしてHSCursesやvty、Brick等のライブラリがあるのでTUI問題は解決ですね。 最悪の場合、CやC++を呼び出すことも出来ますし、基本的にライブラリ周りで困る事は無さそうです。
若干遠回りをした気もしますが、技術選定をするという良い経験にはなったかと思います。 調べていく過程で色々教えて下さった方々、本当にありがとうございました。
まずはHaskellでのファイル入出力あたりからやって行こうかと思います。
では、また明日(多分)