北原鉄朗のこれまでのプログラミングの遍歴
中2: N88-BASICを覚えて友人と共同でゲームを作ろうとするが、
処理があまりに遅すぎて爆死。
中3: たまたま家に解説本があったので、MASMに手を出す。VRAM
のメモリアドレスとかPC-9801のハードウェア仕様にちょっ
とだけ詳しくなるが、ファイルI/Oの仕方がいまいち理解
できなくて爆死。
高1: Visual Basicに手を出す。基本的なことは習得するが、
特に作りたいものが何もなく飽きる。
高2: Delphiに手を出すが、オブジェクト指向が理解できなくて
爆死。ただ、ここで覚えたPascalの文法は後で役に立った。
(B3のゼミで扱ったアルゴリズムの教科書が、サンプル
プログラムをPascalで書いていた。)
父親が「これからはJavaらしい」と言ってJavaの本を大量
に買ってきたので読んでみるも、オブジェクト指向の理解
はあまり深まらず。
高3: この頃は音楽制作に興味が移り、プログラミングはほとんど
やらなかった(←受験勉強はどこにいった?)
B1: 大学の授業でC言語とStandard MLを学んだ。再帰呼出しの
仕組みに感動するも、カリー化はいまいち理解できず。
B2: Javaのプログラミングの課題が大量に出て、Javaの基本的
な部分はこの時期に習得。いろいろとアプレットを作る。
B3: ハノイの塔とか、逆ポーランド記法の数式を計算する様子
をアニメーションで可視化するJavaアプレットなどを制作。
これらはアルゴリズムの授業で紹介されたらしい。
授業でPerlとTcl/Tkをそれぞれ2週間だけやった。
B4: 卒業研究のためにMatlabを始めた。
M1: Perlの謎仕様に嫌気がさして、テキスト処理はRubyに転向。
M2: これまでMatlabで作ってきた研究のプログラムが、継ぎ
接ぎに継ぎ接ぎを重ねた結果維持困難となり、この頃には
「オブジェクト脳」になっていてMatlabにも嫌気がさして
いたので、全プログラムをJavaで1から作り直すのを決意。
D1: 作りなおしたJavaのプログラムも破綻寸前になり、クラス
構成を1から練りなおして完全に作りなおすことを決意。
いろいろと模索した結果、エレガントな仕組みを思いついて
一瞬自分は天才ではないかと思うが、「ポリモーフィズム」
としてよく知られている考え方であることを後で知る。
D2: Javaに並行処理のAPIが追加されたので、プログラムを並行
処理化。いろいろ模索した結果、いい仕組みを思いつくが、
Producer-Consumerパターンとしてよく知られている仕組み
であることを後で知る。
それ以降、素直に書籍を買ってデザインパターンを学ぶ。
最近Ajaxが流行ってるらしいと後輩が言っていたので、
JavaScriptに手を出す。無駄に自分のWebページの一部を
非表示にしたり表示したりする機能を実装。
D3: MusicXMLを読み込むライブラリーを作って欲しいという
業務命令が来たのをきっかけにDOMとかXSLTとかを学ぶ。
力試しとして自分の発表文献リストをXML化する。
(残りは気が向いたら書きます)