オブジェクト指向という道具
最近、仕事で Matlab/Simulink を使っており、その拡張機能として S-Function ってのがあります。その実装には C を使うのですが、今までオブジェクト指向で実装は Java だったので
クラス(オブジェクト) →メソッド→ 引数(パラメータ)
という順序でプログラムを考えていたので C の
関数 → データ
という考え方の流れには馴染むのに苦労します。離れてみて分かるけどオブジェクト指向って改めて便利な物だと思う。
S-Function を実装する上で Simulink からのコールバック関数やマクロが沢山有って、それらを使ってプログラムをしていくのだけど、うーん数が多い割りにはそれぞれの関連性が今ひとつ、わかりにくいし。マクロリファレンス読みにくい。Java のパッケージは便利な物だと思う。また Javadoc も普段は何気に使っていたけど、こうして見ると API リファレンスが標準化してあると言うのは本当に便利な物だ。
ポインタ変数を扱っていると、どこをどう間違えたかシミュレーションが無限ループに入り込み、Matlab 再起動に追い込まれる。サンプルでは上手くいっているコードをそのまま使っただけなのに・・・・、
- サンプルで使っているマクロがいったい何のために存在するのか。
- どの関数をどう正しく使えば良いのか
良く分からない。理解に時間が掛かる。やはりオブジェクトとしてモジュール化されていないのはつらいものだ。・・・・・
便利な道具は一度慣れてしまうと手放せなくなる。
体質的にオブジェクト指向に慣れきった人間に C で構造化技法と言うのは結構きつい。しみじみそう思った。