Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Ruby wayでのコーディング

More than 1 year has passed since last update.

初めまして、ab25cqと言います。

私はClover2というLLVMでコンパイルを行うこともできるコンパイラ言語を作っています。
Rubyに静的な型を入れてコンパイラ言語にした、まあ、最近はよくあるタイプのものです。
Rust, Kotlinなど。

https://github.com/ab25cq/clover2/wiki

今はClover2で端末上で動くエディッタを作っています。
でも、i7や最近の速いVPSではRuby的な書き方でそこそこの速度はでるのですが
モバイルで使っているラズパイ(自作UMPC)では速度が出ないんです。
そこで、エディッタ作りにRuby的な書き方を辞めてC的な書き方で書き直そうと思っています。
今作業を始めるところです。
結局Ruby的な書き方ではエディッタやブラウザやOSなどを書くことは不可能というのが持論です。
ある程度その辺りのアプリを書くためには妥協が必要でオブジェクト数を抑えるコーディングやメソッドチェインをやり過ぎないなど工夫をしないといけないなと思います。
あまり素直に書きすぎていたら、全然速度が出ませんでした。
Rubyって書きやすいんですけど、アプリケーション作成言語というよりシェルに近いものだと思います。書いていると完全に速度のことを考えずにかけてしまうので、BASICみたいなものかなと思います。
Clover2は範囲チェックを行うスマートポインタやバイト列を扱うBufferクラスなどが
あり、C的な書き方ができなくもないようになっているため、ちょっとやってみようと思います。
とりあえず、Bufferクラスをそういうことを行うために必要なメソッドを追加していこうと思います。
Rustでもそのようなプリミティブな処理を行えるそうなので。
まあ、とりあえず、速度出してみます。ラズパイでどうしても実用的に動かしたいので、、、、。
また出来上がったら、githubの方にアップロードします。
今んとここんな感じです。

https://github.com/ab25cq/vicl

どう変わるか、お楽しみにー。

ab25cq
シェル、エディッタ、コンパイラを作っています。githubにあるので、試してみてください。
https://ab25cq.github.io
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away