昨日Rust Tokyo 2024に参加し、難しいセッションもあり、どう向き合うか見直す必要があるなと感じた。
今後どのように技術と向き合うか考えてみる。もう歳なのでそこまで時間は割けないのです、、
自分が12月現在興味があることはここら辺。
- Rust
- Haskell
- Neovim
- 生成AI
- Nix/NixOS
- Next.js
Rust
Rustに興味があったのは5年くらい前から、業務で使っているわけではないので数年おきに触っている。ただある程度ちゃんと触らないとと思い出したのは言語ツールチェインのデファクトがRustになりつつあるから。uv, ruff, turbo, biome, oxc など、、
Goのときもdocker, k8s, Grafana, PrometheusなどミドルウェアがGoになり、間接的に触っているみたいなことはあった。ただ普段業務で使っている言語のツールチェインとなると、静的解析の分野で関わる可能性が出てくるため、ミドルウェアが別言語という話とは次元が違う。
AWSもfirecracker, lambda-web-adapter, dyneinなんかがRustだったりする。
Haskell
今年なるほど関数型プログラミングを写経して、こんな世界があるのかと感じた。TS界隈ではEffectやneverthrowなど関数型のエッセンスを取り込んだプログラミングスタイルが流行りつつある。代数的データ型はRustにもあり、かなり影響を受けている。
その中でも最も関数型(だと思っている)Haskellはやはりある程度は触った方が良いなと感じている
生成AI
AIエージェントという新しいアプリの市場を開拓したと思う。langsmithやlangfuseなどo11yツールも充実してきた。もちろん思ったより流行らない可能性はあるが、GPTの要素技術を学ぶことに非常に興味がある。
Nix/NixOS
環境が壊れにくパッケージマネージャーというところで、興味がある。
Neovim
普段使っているから
TypeScript(サーバサイド全般、Next.js)
普段使っているから
選択と集中の「選択」
技術もいろんな技術から影響を受けているわけで、発散することは許してほしい(許さない人0人説)
ただ能力が割に手広くやりすぎて、全て向上しないのはどうにかしたい。なのでマイルストーンを切ることにした。
方針
スタンス
そもそも業務の最低限のキャッチアップが生存のために必要。(それが業務時間で出来てないのは、、)
なので発散させつつ、各技術の学ぶ範囲を限定とやることの明確化をする。これで発散してやりたい事いっぱいあるなー、結局やらずNetflix見てるみたいなのは辞める。
こんなこと書かなくても取り組みている人はすごいし、敬意を持っています。比較して自分はそんなに技術が好きじゃないんだと思う。
プライベート >> 業務のキャッチアップ >> Nix,Neovim >> (その他)
25年の目標
| 技術 | スタンス | 理想 |
|---|---|---|
| Rust | 自分のブログサーバサイドが動けば満足。+で流行りのライブラリを定期的アプデできれば満足 Rust for Web Rust for CLIみたいなあまり深入りせず関わりたいところ | なし |
| Haskell | 庭が作れない。本やったら終わり。RustやNix書くとき参考にできる程度で満足 | 競プロ習慣 |
| Neovim | tmuxやlazygitやfiler依存をやめてみる。QuickFixやセッション。**LuaもVimScriptもモチベは低いけど、Neovimは好きだし、お世話になっている。だから好きになるくらいやらないといい加減だめ、、**VimScript, Luaから逃げない! | VimConf 2024が楽しすぎたので、何か還元できるようになりたい |
| Nix/NixOS | LinuxノートPCを組んで、環境構築RTAができれば満足 | なし |
| Next.js | ブログを15に雰囲気でリプレースできれば満足 | なし |
マイルストーン
-
Webアプリの技術は業務でもやるので、別のことに時間を割きたいが、ここに吸い込まれやすい
-
- 言語を作る
- 1.1. LoxをRustで実装 (※1)
- 1.2.
WASM本(chikoskiさんのやつ)を学習、1.1をWASMでgithub pagesなどにアップする
-
※1
(年内完了)
12/20以降は1が終わるまで2への着手はNG。NixOSで1ができるレベル(Java, Rustが動く状態)まで、12/20まで持っていければ理想だが難しそう
-
- Nixの学習
- 2.1. NixOSの導入
-
- Web Rustの学習
- 3.1. shuntaka.devのバックエンドをRustでリプレース
- 3.2.
関数型ドメイン駆動設計で1.1の改善を実施 - 3.3. duckdbでオフラインの記事解析機能をつける
- 3.3.
Effective Rustで1.1の改善を実施 - 3.4. Next.jsの15対応
- 3.5.
1.6.に1.5を組み込み
さいごに
2024年の振り返り記事も年末書くけど、20日後また言っていること変わっています。以上ポエムでした。