個人開発などというとなんかちゃっちく感じるが、スケールを見越したクラウドインフラストラクチャ設計、フロントエンド設計、バックエンド設計をするとなった際、コンピュータの本質みたいなのを抑えてないことがかなり問題な気がしてきた。
パフォーマンスパフォーマンスと口に出していうが、ちゃんと自分の中で意思決定して定義して計測してるかというとそんなことは一切ない。
メモリ効率、ディスクアクセス、キャッシュがどうのこうのと会話するが別に特別わかってるわけではない。
インフラコストを下げたい、より速いシステムを作りたい。結果、uxを考える際にもっと自由の幅を広げたい。
ならば自作CPUの上に自作OSを載せて、デバイスドライバも自作して、ネットワーク通信をするためのソフトウェアも自作して、プログラミング言語も自作して・・・とやったら良いだろう。作る中で理解は深まり、結果的にどこで何をやるべきか理解できる。
データベース自作とかはそこからだろう。