2007-08-22-01-Palm OS 5 でしか通用しないスタイル - project-enigma

2007-08-22-01-Palm OS 5 でしか通用しないスタイル

>> Site top >> weblog >> 月別アーカイブ >> 2007年08月のlog >> 2007-08-22-01-Palm OS 5 でしか通用しないスタイル

最終更新日付:2013/12/31 07:38:19


Palm OS 5 でしか通用しないスタイル

2007 年 08 月 22 日

Palm OS Programmer's Companion の訳出を進めるにつれ、自分が Palmware 開発のことをあまりにも知らなさ過ぎることに気づかされる。とくに、5 章のメモリ管理のところはショックな事実ばかりだった。いわく、局所変数よりも大域変数の方が良く、それよりもさらにダイナミックヒープ上のチャンクの方が望ましいというのだ。

無論、こういった話はメモリ制約のキツい OS 5 未満の環境でも動作させることを前提として書かれている。現に、陰郎はここに書かれているガイドラインにあまりにも反しているし、そもそも C++ のような言語で書くこと自体、すでに Palm OS プログラミングにとっては 「 望ましくない 」 ことだとも言えてしまうのだ。それでも、陰郎の作ったアプリはひとまずのところ動作している。その意味では、Palm OS 5 に限定する限り、それほど過敏にならなくても良いということではあるのだろう。

もちろん、C++ はマルチパラダイム言語であるから、制約のきつい環境において望ましくない言語機能を避けて使うことができる。この辺が Java のような片輪...もとい、お上品な純粋オブジェクト指向言語と違うところだ。だからこそ Palm のような環境でもネイティブな言語として使えるのだろう。実際、陰郎は RTTI と例外処理は Palmware 開発では使用しない( RTTI はそれ以外でも使わないが )。基本はカプセル化と多態、およびテンプレートがメインの武器だが、DA では多態も使えない。そうやって状況に合わせて使う武器を変えられるのが C++ のいいところだ。そして、「使わない機能が悪さをしない」のが決定的に重要なのだ。それは Stroustrup が絶対に譲らなかった部分である。その哲学がなければ、C++ はマルチパラダイムであってもマルチパーパスにはなれなかっただろう。Java を見てごらん。

とはいえ、今回知らされた(あるいは知らされつつある)Palmware 開発の「作法」を考えるとき、やはり陰郎としては「今後も C++ で書くべきか?」 と自問してしまう。あるいは、自分のプログラミング上のスタイルや哲学を曲げてでも Palm プログラミングの作法に従うべきか? という問いもある。いろいろな事情を度外視すれば、やはりそうするのが良いのだろう。しかし、度外視するわけにはいかないような事情もある。主に時間的な事情だけれども。

思い出すのは、J-OS の山田さんに初めてお会いしたときに伺った話である。まだ陰郎が Palmware 開発を始めるまえのことだ。Palmware 開発とはどんなものですか、組込み系に近いキビシい世界を想像していますがどうですか、といった趣旨の質問をしたと記憶している。山田さんの答えは、最近はかなり楽になったが昔は厳しかった。初期のデバイスでは数十KBしか使えるメモリがなかった...というものだった。そんな厳しい環境での開発に恐れを感じつつ、それでも最近のデバイスは余裕があると知って Palmware 開発を始める決心をしたのだ。陰郎が MobilePLAZA に行って Codewarrior の取り寄せを依頼したのはその翌日のことだった。あれから 2 年半が経とうとしている。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : Palm

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.