雑感、Objective-CとHTML5 by -toru inoue 10/06/14 11:59
概要
Objective-CとHTML5は、言語と勧告なのだけれど、
実際に実装される仕様についての言語的共通点が微妙に多い。
といってもピンと来る人ってあんまりいないだろうな、、
両方やってる人間って何人いるんだろ。
にてて個人的に非常に嬉しいとこ見つけたので書く。動作環境がある
ここでいう動作環境とは、自分の書いたプログラムが動作するのを見張っている監視者のようなもの。
JavaのEnvironment、つまりVMみたいなもの。(正確にはVMの役割の一つ) Objective-Cは感覚的にはC言語で書いた物がC言語上で動くVMと一緒。もっと一般化してもらってもよろしくてよ。
,,流石に記法が変態的すぎるとの声を良く聞く。Lispかw 可読性は他の言語と一緒だと思うけどね。
挙動は、サーバに非常に近い挙動をする。
到達順番が正確に維持されている手元にあるサーバ、という表現がいいんじゃなかろうか。
そういえばObjective-Cって、C言語を書いてC言語で動かすVMだけれど、
X言語を書いてX言語で動かす、っていうVMは
世界に唯一のものなんじゃなかろうか。
あ、C#があったっけ。 C#ってC言語内包してたっけな、、
メッセージングがある
両者とも、メッセージングがある言語環境である。
HTML5の実装例をまだ一つも見てないが、用意されているAPIはとても素敵。
メッセージングがあるから、宛先を決めずにメッセージを放送(指向性のない出力、ブロードキャスト)し、
受け止めたい人がそれらを受ける、という事が出来る。
最悪、
受け手のプログラムさえ活性化していれば、(インスタンス化されていれば)
メッセージの打ち手は受け手の事を知らなくてもいい。 = ポインタを保持していなくてもいい
特にC言語系の場合、オブジェクトをインスタンス化するのに立ち会うか、
インスタンスのポインタを知らなければアクセス出来ないもの、なのだけれど
(ポインタ直指定でのインスタンス化とポインタ値所持は論外として)
Objective-Cならば、動作環境があるので、それらはなんとかなる訳だ。
たしかCのBoostあたりでも、そういったメモリ上にオブジェクトをプーリングする機構の
果てにメッセージングがあったように思う。
最後に見たのもう2年以上前だ、、、 利点は既に述べた、「打ち手は受け手の事を知らなくてもいい」という事。
機能をステートマシン化する事で、どんなオブジェクトとでも通信できる。
メッセージングが或る言語は、自身の中を不特定の情報が飛び交う、ミニサーバ郡プログラムになれる。
打ち手は、受け手が判定することで身元判定をし、
受け手は次の受け手へと情報やコマンドを発信する。
(HTML5で実装されようとしているMessage系のシステムと、
WebWorker系のシステムは、スレッド絡みの話でもあるから、
きっと組み付いてるんだろうなあ。)
0 件のコメント:
コメントを投稿