ベクターに置いてたソフトをですね、そろそろ取り下げようと思ったんですよ。つーか取り下げてきた。
だって、あれだぜ。唯一使い物になりそうなのはMS-DOSのCOM形式(笑)の奴だし。もちろん自分でも既に使ってないというか、もっと便利なのをPythonで8行くらいで書いた。他は何でこんなん公開したんだろレベルのゴミです。
ただなー、その唯一のCOMファイルは非常に思い出深いというか、アセンブラのみで頭から完成まで書き上げたのはあれが最初で最後だったから、今でもあの約三ヶ月は良い経験だったなーと思ってはいる。
別にアセンブラをお勧めしたりはしない。まともに役に立つのはごく一部の世界の人だろーし。もちろん俺もそんな世界とは縁遠いし。コンパイラに任せた方がずっと速いコードを吐くだろうしなー。
でも、アセンブラって実のところ、仕様を覚えるだけなら他の言語より楽だよな。やれることが少ないし。コンピュータという電気からくりをダイレクトに叩く感覚はそこそこあるし。
むしろCの細かい文法を覚える方が時間掛かった。演算子の優先順位と結合規則とか。Cを覚えられるならアセンブラなんか速攻で覚えられると思うのだ。使い道は置いといてな…!
その大したことやれないアセンブラでどうやって関数とかクラスとか実現するんですか、ってのが問題なのだが。でも、スタックフレームの作り方だけ覚えれば、Cでやれることは大体やれそう。C++のクラスも、暗黙のthisだけ分かればいい気もする。
Cの標準ライブラリはまた話が別だけど。あれはアルゴリズムの知識とかの問題だよな。
一応アセンブラを知るメリットはあるとは思ってるし、他の言語に無いオンリーワンな性質が好きだけど、もう基礎研究の人みたいに「とりあえず役には立たないです」くらいのスタンスでもいいのかもなー。
言語やカーネルを開発する人にはまだ普通に必要そうな気もするが。知らんけど。
つーか、こんな話をしようと思った理由の半分くらいは、当時blogの最新記事がウンコとカレーの話だったせいなのだ。
ウンコが最新記事のままで放置してても何か嫌だからとにかく更新しようぜ、と思って適当に書いててオチが付かなくて放置してるうちにウンコ状態は脱していたが、まー最近ちょっと「下書きで放置してた奴を何とかしようぜ」気分なので、軽く書き上げて公開してみようと。
そんな感じなので、軽い気持ちでお願いします。