【4日目、5日目】ペパコヤ進捗報告
Haskellでテキストエディタを作る、第4日目と5日目です。
リポジトリはこちら
github.com
昨日今日の進捗報告をします。
ここ2日で進んだのは
- ファイル入出力
- 行削除
- 1文字挿入
- UIテスト
以上の通りです。
1番辛かったのはやっぱりUI表示ですね。
テキストビューワーもどきなら出来ましたが、テキストエディタには程遠いです。
今日は時間が無いので報告だけにしておきます。
細かい実装や課題に関してはまた明日以降にまとめます。
ではでは!
【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でのファイル入出力あたりからやって行こうかと思います。
では、また明日(多分)
はじめまして
はじめまして!
初めて記事を書きます、Tatsukiと言います。
Qiitaには何度か記事を書いた事があるんですが、こっちはアカウント作ったばっかりで何からはじめていいのやらって感じです。
まずは簡単な自己紹介から。
Vim歴3年目に突入したヒヨッコVimmerです。まだ雑魚なので今後強くなっていきたいと思う限りです。
学生をしていまして学校ではJavaメインです。
関数型に興味がありHaskellを頑張って勉強していたところなのですが、今回訳あってElixirに入門することが決まりました。
さてその訳なのですが、実はこの度、ペパボ寺子屋という企画(?)に参加させて頂けることになりました。
What’s ペパボ寺子屋?
GMOペパボのエンジニアが、ソフトウェア開発・アプリケーション開発に興味を持っている学生を支援する取り組み。
全国の皆さんを対象にするため授業はオンライン(Web)で行います。
というものです。
もう少し具体的には、3ヶ月程度で1クールとして、その間に一人ひとりのレベルに合わせて技術相談や教材を教えて頂いたりしながらステップアップに繋げる、というようなものになります。
実はこの企画、まだβ版という事で、僕はなんと0期生です!!
僕みたいな初心者で良いんだろうか、という不安はありますが、精一杯頑張りたいと思います!
で、僕がやる事についてですが、以下のように決まりました!
- Elixirを用いたVimライクなTUIテキストエディタを作り、バージョン1.0.0として公開する
- 但し変数の再代入は不可
- 場合によっては他の言語を一部使用
- なるべく拡張性を持たせたい
- その他仕様は追って決める
です! GitHubのリポジトリはここに作りました。 まだREADMEしか無いですが、今後3ヶ月で完成させたいと思います!
ペパボの方々も優しい方ばかりで、今後も色々相談しながら開発していくつもりです!
今回は以上になります。 これからなるべく更新していきたいと思いますので、よろしくお願いします!