|
Backnumber May, 2006 April, 2006 March, 2006 February, 2006 January, 2006 December, 2005 November, 2005 October, 2005 September, 2005 August, 2005 July, 2005 June, 2005 May, 2005 April, 2005 March, 2005 Feburary, 2005 January, 2005 December, 2004 November, 2004 October, 2004 September, 2004 Augsut, 2004 July, 2004 June, 2004 May, 2004 April, 2004 March, 2004 February, 2004 January, 2004 December, 2003 November, 2003 October, 2003 September, 2003 August, 2003 |
- HMDT archive-
|
|
プログラミング言語を、人に紹介するときのことを考えてみた。対象は、まったくの初心者じゃなくて、プログラミングの経験がある人。もちろん、言語の仕様とか、使い勝手とか、好き嫌いとかも伝えるんだけど、その言語を使って実際にアプリケーションを開発しようとするときは、もう少し実際的な情報が必要になると思うんだ。そんな情報を表現するために、アライブな言語と、ネイティブな言語っていう言葉を使うことにトライしてみる。 まず、アライブな言語っていうのは、あるシステムにおいて、その言語がサポートされ続けているということを表すんだ。システムの開発元、またはプログラミングツールの開発元が存在して、疑問があればサポートが答えてくれる、バグがあればフィックスされる、システムがアップデートされればそれに対応する、っていうことが行われる。さらに、コミュニティが活性化していて ML があったり、書籍が出版されていれば言うことなし。こういう言語なら、実際の開発に選択しても安心なわけだ。 そして、ネイティブな言語というのは、あるシステムやフレームワークが書かれている言語、または提供している API で使われている言語、という意味だ。ネイティブな言語以外でそのシステムやフレームワークを使おうとすると、ラッパを経由する必要がある。たとえば、Mac OS X の Cocoa のネイティブな言語は Objective-C だ。Java や Ruby を使って Cocoa にアクセスする API も提供されているいるけど、それらはネイティブな言語ではない、っていう使い方をする。 これらを使って、Mac OS X でのプログラミング環境を説明すると、
てな感じ。目的に応じて言語を選べばいい。 で、ここまで引っ張ってきて何を言いたいかというと、デスクトップアプリケーションには向くのは C、C++、Objective-C。つまり、C ができなきゃ始まらない、というわけだ。だから C をやれ、C を!四の五の言う前に C をやれ!ポインタ・ラブ!プリ・プロセッサ最高!好きな関数は memcpy() です! 追記:)掲示板でコメントをもらったので、修正。Smalltalk はここに乗せるのは適切ではないと判断したので、削除しました。 |
|
Safari に Cookie 漏洩の脆弱性があったそうで。リンクとか備忘録とか日記とかさんが詳しいです。 ヘチマコンピュータさんの CookieMonsterFix を使うことで、対策できます。NSHTTPCookieDiskStorage にパッチを当ててるわけで、WebKit の問題ですね。 |
|
Panther のコントローラレイヤの話だけど、勢い余って(?)キー・バリュー・コーディングのドキュメントも翻訳したよ。やっぱり、英語苦手だから、どうにもこうにも頭に入らん。訳してしまうのがいちばん手っ取り早い。 キー・バリュー・コーディングは、ただの名前ベースのメソッド呼び出しかと思ったら、意外にいろんな機能がある。上手に使えば、コントローラレイヤに限らずとても効果的なんだけど、これにべったりになるのもちょっと不安かなぁ。 なにはともあれ、興味ある方はドキュメントを。一気に訳したからな。 |
|
「Xcode を使ってみた」は、さらに続くぜ。今回は、コード補完。久々に使ってみた、IDE のコード補完機能。好き嫌いで言うと、コード補完機能自体があんまり好きになれないんだけど、ちょっと我慢して使い込んでみるつもり。 |
|
「Xcode を使ってみた」の、お話第二回。今回は、スマートグループのお話。スマートグループは、知ってると便利に使えるけど、知らないと、どうやって使うんだ〜、ということになってしまうと思う。 |
|
Daring Fireball で、Panther のアンチ・エイリアシングの改善の考察を行っている。長い文章なんだけど要約すると、
ということらしい。 |
|
ついでにそこで紹介されていた、codepoetry の Panther でのテキストサービスの変更点まとめ。おぉう、こんなに色々あったのかい。いちばん効果が分かりやすいのは、やっぱりドロップシャドウでしょう。TextEdit でも使えるし。 |
|
前回の更新から、一週間近く間が空いてしまったね。ま、気まぐれ不定期更新なので、許してください。 それはさておき、また新連載を始めるぜっ!Panther および Xcode が出てしばらくたち、ようやく新しい環境にも慣れてきたことでしょう。そこで、Xcode の変更点をまとめ、実験してみる連載だ。名前はそのまんま、「Xcode を使ってみた」。 第一回目は、「新しくなったプロジェクトウィンドウ」。プロジェクトウィンドウの変更点をまとめてみた。 たぶん、全体で 5、6 回ぐらいの記事になるかな。 |
|
Panther 関係のドキュメントを、まとめたページを作りました。こちらの、「panther-dev」にどうぞ。Xcode の話とか、コントローラレイヤのドキュメントとかがあります。 |
|
コントローラレイヤの翻訳の最後。初期設定コントローラの例。Example: Preferences Pane の翻訳である、例:初期設定ペイン。もちろん、今回も実装例を作ってみた。ダウンロードはこちら。
ダウンロード:
これで一通りドキュメントを眺めたけど、感想を。コントローラレイヤを使うと、たしかに劇的にコードの量が少なくなる。これ、ほんと。管理もしやすい。使うかどうか検討する価値は、十分にある。でも、既存のコードをコントローラレイヤに移行させようとすると、これはけっこう難しいかもしれない。 特に、モデルのアクセッサメソッドでこける場合があるかもしれない。モデルのアクセッサメソッドは、特に設定をしない限り、いつでも呼ばれるし、けっこうな頻度で呼ばれる。これは、値を得るときに計算がからんでくると、ややこしくなる。簡単な計算ならいいけれど、パフォーマンスに影響を及ぼすような複雑な計算のときは、無駄な計算が呼ばれないように、周到にモデルを設計しておかなくちゃいけない。モデルの呼び出しの制御を、システムに任せているからだね。 ということで、今の時点の感想は、「新規にアプリケーションを作るなら、コントローラレイヤを使うメリットは大きい。でもその場合、特にモデルの設計を、コントローラレイヤに合わせて、きちんと考えておく必要があるよ、きっと。」という感じかな。 |
|
昨日に引き続き、三浦さんに訳していただいた、Key-Value Observing を翻訳した、キー・バリュー・オブザービングのドキュメントです。キー・バリュー・オブザービングは、コントローラレイヤのベースとなる機能の 1 つで、値の変更を通知するメカニズムです。 |
|
いままでコントローラレイヤの翻訳をやっていたけど、なんと、三浦さんから、値変換についての訳をもらっちゃいました。ありがとうございます!というわけで、Value Transformers を翻訳した、値変換のドキュメントを公開します。Panther から導入された、値を変換するためのメカニズムで、主にコントローラレイヤで使われます。 |
|
ADC にて、Java 3D と Java Advanced Image の Developer Preview が公開。たいへん、いまさら感がただよっているような気がするけど。まぁ、「Apple は Java にコミットしている」ということを、示すことにはなると思う。それよりも、Swing をもっともっと速くしてくれ〜。 |