でこてっくろぐ ねお

でこてっくろぐ(http://dekokun.github.io/)から進化しました。でこらいふろぐ(http://dekolife.hatenablog.com/)の姉妹版。デコテックログ(deko tech log)である

"簡単なプログラミング言語を作るライブコーディング" の中身をRustで作ってみた

以下youtube動画はCで簡単なプログラミング言語を作っているのですが、同様のものをRustで作ってみました。

www.youtube.com

成果物

github.com

なぜこれを行おうとしたか

最近、ユーチューバーになろうと思っていたのです。で、私がyoutubeで見せられそうなことと言ったら、プログラミングとかWebサービスインフラ構築とかをユーチューブ動画にすることかな〜と思ってまずは先駆者について探ろうと "youtube プログラミング" とかでGoogle検索したんですね。 そして出てきたのが上記動画。見始めたら非常に面白く、ユーチューバーになろうとしていたことも忘れて一気に見てしまいました。

で、私も作ってみたい!どうせなら最近学びたいと思っていたRustで作ってみるか!ということでRustで作ってみてます。

作った感想

元の言語がCで書かれていることもあり、Rustらしさにはほど遠い感じになりました。今後の精進が必要。 動画中でも言及されているのですが、ある程度プログラムができてくるとなんか勝手にネストした式(例: + + 1 2 + 3 1 とか、関数からの関数呼び出しとか )が動き出したりとなかなか自明ではない動きをする感じがして、ビビりました。これはすごい!

今後何かパースする時に使えるテクニックを一つ得たな、という思い。

あと、最後の方、デバッグが大変だった…

今後上記プログラムを発展させたいこと

Rustらしさが現在よく分かっていないので、もっとRust学んで書き直したい。

  • unwrapしまくってるけど、ちゃんとエラー処理していきたいし、更にせっかくRust書いてるわけで try! 使っていきたい
    • 同僚に try! のsyntax sugarの hogehoge? ってのありますよって教えてもらえたので、そちら使ってみたい
  • State structのカプセル化度合いが0なのでカプセル化していきたい
    • 最初はStateなしでやっていて、最後にStateだけ導入したけど日曜日も終わりそうなので一旦諦めたのであった
  • 今は動画に倣ってシェルスクリプト内でテストしているけどRustのテスト書けばいいやん

その他

上記youtube動画の作者さんは最近私もよく聞いている Turing Complete FM や最近面白く読ませていただいている Rui Ueyama|note の作者でもあります。

以下ブログも、Turing Complete FMに触発されて書いたわけで、最近だいぶお世話になっているな、と思っています。 dekotech.dekokun.info

…早くOS完成させないと…