Symbian OS

昨日今日とセミナーに行ってきました。
場所は溜池山王駅山王パークタワー
普段お世話になってる街と雰囲気違うからなんかいいです。
先月も赤坂見附セミナーがあったのですが、
ああいうビジネスっぽいというかちょっとした緊張感がある街も悪くないですね。
そんでもって都心だからスケールがでかい。
金はあるところにはあるもんだというか。

セミナーの案内を見たときには全然知らないことばかりで不安だったのだけど、
全然知らない人にもわかるように一から教えてくれたので良かった。
内容は書いても問題なさそうなところだけ書くと、
SymbianOSでの開発の話。
Symbianという名前自体初耳だったのだけど、
調べてみるとこれ、EpochOSの名前が変わっただけみたい。
EpochはPDAメーカPSIONが作っていたOSで、
OS開発部隊を分社化し、それにノキアモトローラエリクソンといった
携帯電話大手が出資してSymbianという会社ができたらしい。
同時にEpochOSもバージョン6から名前を変えてSymbianOSにしたと。
それからQuartzというGUIフレームワークがあったのだけど、
これの製造がSymbianからまた分社化したのだかどうかわからないが
子会社のUIQ Technologyがやることになって名前がQuartzからUIQに変わった。
SymbianはイギリスでUIQスウェーデンだというのが謎だけど。

そういうわけでSymbianOSはいきなり現れていろんな先進携帯端末に
使われるようになったわけではないということだ。

で、このSymbianというOSだがなかなか面白いポリシーを持っている。
携帯端末はPCよりも安定・安全・堅牢性が重要視される。
それでメモリーリークやバッファオーバーランなどのバグが入り込まないように
いろんなところに工夫が凝らされている。
特にフレームワークがなかなか面白い。

開発は基本的にはC++で行うようだけど、
標準の型や文字列は使わない。標準の関数も使わないで、
ディスクリプタという安全なクラスを使う。
C++言語仕様catch-throwでの例外処理ではなく独自の機構trap-leaveを使う。
コンストラクタで初期化しないでね。
インスタンス作ったらオブジェクトスタックというものに積んで開放忘れを防ぐ。
バグが入り込まないように気遣われたコーディング規約。
例えば例外を投げるメソッドには最後にLを付ける、
中でデストラクトするメソッドには最後にDを付ける、
外部リソースを使うクラスの先頭にはRを付ける等々。
マルチスレッドはできるけどなるべくやらないように。
フレームワークがサポートしてるのでActiveObject使ってね。
プロセスレベルのクライアント・サーバによるモジュール化がかなり徹底している。

とにかく面白いところがいっぱいある。
SymbianはリッチOSと呼ぶらしく、速度のことはあまり考えないで
それよりも安全性をとことん気にしてる感じ。

フレームワークや約束事で縛るのもありだとは思うけど、
いっそのこと言語変えちゃえば? と思うのです。
C++だからできるいろいろな工夫だけど、
C++だからコード汚くなっちゃうんだよね。
あと「こういうことなるべくしないでね」とは言えても
C++と銘打っている限りは「できないよ」とは言えないところとか。
言語変えればできなくしちゃって問題無いわけだ。
概念的にはなかなかいい線行ってると思うんだ。
あとは見た目。
既に独自路線つっぱしってるのでC++捨てちゃっても大差ないような…
Windows,UNIXで開発してる人にはけっこう新しいスタイルが多いです。
ま、ASP+VBSよりは何倍かエキサイティングなことは確かです。
こいつで開発する日は果たして来るかどうか。
http://cspc.jp/~eclipse/archives/000420.html