コレクション

id:akiramei:20040822さんのSTLもどきの記事を拝見して思い出した。
コレクションの話。


現在スケジューラを再実装している。
スケジューラーはどのスレッドを次に実行するかどうかを管理しているので
実行対象のスレッド全てを把握しなければならない。


今回の実装では双方向リスト構造で実行対象のスレッドを管理している。
その前は自作vectorで管理していた。


このようにプログラミングではいわゆるコレクション系の仕組みを使うことがある。
C++でもC#でも、Javaでもコレクション系の仕組みが事前に用意されていることだろう。


私はいわゆる富豪プログラミング世代?なので、メモリやCPU資源が非常に乏しいなかで
プログラミングしたことがないしコレクション系の仕組み(Vectorや、HashMap)などを使うことはあっても
そのデータ構造の背景にあるアルゴリズムや、メモリ使用量、性能、データ構造を気にしたことは一切なかった。
ましてやそんな仕組みを自作したことは一切なかった。


でもあるとき、そのツケが来た。
自分が作りたいものを作るにはどうしてもコレクション系の自前実装が必要だった。
その実装の下調べをしている間に、元々作りたかったものとそれに関わる熱意・アイデア
少しずつ失われていった(メモ程度は残していましたが)


そんなわけでコレクション自前実装も不要になったので途中でやめた。