整理されてない近況 in 2021
この記事は、本来「Rubyist近況 Advent Calendar」に投稿するつもりで書いていた記事です。記事ですが、なんか恥ずかしくなったのでアドカレを外して公開し(それ意味あるの…)、供養します。
自分を語るのが大好きなので今年の自分を語ります。
仕事
GMOペパボにいます。2020年からは、データ基盤エンジニアをやっています。会社のブログにも書いたんですが2020年に基盤のコード化や運用の整備をゴリっとして、2021年から人々が入社したのでチームとして立ち上げてスクラムマスター? っぽい情報整理業務をしています。
コードもまあそれなりに書いてるんですが、公開したやつではたとえばquerygazerっていうRSpecをつかったgemとか。
「定期的にクエリを投げてデータが入ってるかチェックする」という用途に使っています。あんまり欲しい機能を作り込めていないんですが、ほとんどRSpecに乗っかってるおかげで最低限は動く。
あとは今はやってるETLとかFour Keysとかなんかその辺のためのコマンドラインツールをRustで書きました。
GitHubのAPIを叩いてCSVにするだけのことしかしていませんが、意外と対応しているAPI(というかGitHub上のモデル)が多いので便利に使っています。なお、いわゆるオンプレ版、GHESに向けて打つことを想定しているツールであり、レートリミットなどあまり考慮していません。
と言いつつ逆に、そんなに自分が現場のストーリーに入らないようにしてるんですよね。開発するにしてももっとメタな開発をする感じでやってます。
お仕事に関しては、今年はわりとあえて自分が全部やるということを控えて、チームのみんなを信頼し、チームのみんなのやりたいことをしてもらおうというスタンスになっています。それだけメンバーに恵まれたというのはありますが。
まあでも、後述するように、やっぱもっとコード書くべきだよねって気持ちがあるので、ここぞというときは僕がマウンドに立ちたい気持ちもありますので、その時のためにデータエンジニア力を上げねばと。
具体的には、ついにJavaと和解しようと思います。Rustのおかげでダイヤモンド演算子とは和解しました。数学もやり直したいし…。
Rust書いてる
上述のお仕事でも一部使ってるんですが今年の言語はRustにしようと思ってRustを始めて、結果として今年はずっと触っています。
FGNミートアップでも話したんですが、今、このタイミングでRustに出会えたのは本当に良くて、まず自分の触れることができる問題の範囲が一気に広がって、それまで諦めていた自作OSや自作言語の勉強を始めることができました。
あとやっぱり、モダンな型付きのある言語はすごい便利だな、型から設計をするのって楽しいな、というのをようやく実感できたのはあります。今まで書いてた静的型付きの言語、ほぼC言語だったので…。
今までゆうて10年ぐらいRubyを書き、たまにPoCみたいなシスプロをCでするみたいな生活だったんですが、さすがに長いこと書いてて倦怠感もあったところに、Rustに出会って、あとプログラミングに関する考え方も色々更新されて、「プログラミングって楽しい!」とまた心から思えるようになったので、よかったです。来年も書きますし、今後しばらく書くと思います。
あと、型から設計をする良さを知った結果、RBSに関する興味がものすごく増したので、Rubyコミュニティにも何かしら貢献していきたいですね。ただまあ今はRustで言語などを実装してるので、ボチボチとやります…。
言語実装したい
僕のことをご存知の人は僕がそもそもシステムプログラミング大好き、コンテナ内部実装万歳人間とだと思われているのでしょうが、最近はもっぱら自作言語ワナビです。
FGNの資料でも書いたんですが、もともとOSの勉強をしていて色々調べていたんですけど、たまたま笹田耕一さんの「VMって何だろう」を読む機会がありまして、
そこでの計算機資源を仮想化するという観点では、OSも言語処理系も変わらない(なんか厳密には違う話をされているのかもしれませんが、僕はとにかく解釈した)という観点にハッと目が開かされて、じゃあ言語を自作しよう!!1 という気持ちになったのが大きなきっかけです。
2005年の笹田さんに影響を受けて開眼するというのも不思議な話ですが…。
その後、rurubyを開発されているisshikiさんや、BiwaScheme、Shiikaを作られているyharaさんなどに、プログラミング言語処理系が好きな人の集まりSlackにもお誘いいただき、Rucyの構想を話したり、とにかく強い人たちの会話をROMって毎日勉強させていただいたりしています。
ああ、yharaさんといえばRubyist近況アドベントカレンダーのShiikaの紹介と実践動画がめちゃくちゃかっこいいので観ましょう。
自作言語、今取り組んでいるのはだいたい2つで:
RucyはRubyのスクリプトを何となくBPFのバイナリにコンパイルできるようにはしたんですが、最近近況報告をしたら、識者よりLLVM-IRを経由した方が結局楽なのでは、とアドバイスをもらったので、そうだなと思い調べているところです。ELFファイルを直接生成したくない。
Puruaは言語実装を勉強したての頃に作ったもので、特にスキャナ・パーサの実装が厳しくどん詰まりになりそうな予感がするため、ちゃんと書き直そうとリポジトリをリセットしました。古いバージョンはこちらです。
あといくつか書きたいものもあるんですがちょっと時間が…。はい。やってくぞ〜。
あ、あと、OSもちゃんと自作したいです。本当に思ってますよ…。いわゆるみかん本や初めて読む486などで鍛えてから、Writing an OS in Rustの写経をしたい。
なかなかオトナになれねー in 2021
徒然と最近の仕事、興味などを振り返ってみました。
2021年は改めて、自分はプログラミングが好きだ、プログラミングは楽しい、ということに気づいた年でした。
なんとなく、シニアめのウェブエンジニアになると、コードはやっぱりあくまで問題解決の手段だよねとか、自分でコードを書かずに若手に任せようとか、マネジメントをやっていこうとか、あるいはもうプログラミングをすべき問題がないよとかってなりがちじゃありませんか? 僕がヌルかっただけ?
実際去年まではその兆候があったんですけど、Rustで言語実装など複雑な問題をバーンと決めつつ気持ちよく型を書いていたら、そんなウダウダ考えるのはいいからコード書こうぜという感じになってきました。型を決めると気持ちいいんだ…。
これは中長期的に僕にとってはいいことなのでしょう。きっと。
来年はさらに気持ちよくコードを書いていけるようにしていきたいですね。皆様も、Enjoy Programming!!
この記事が気に入ったらサポートをしてみませんか?