忍者ブログ
暇なので仕方ないと思うんだ。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。





UMEEEEE!
...これって携帯からだと表示はどうなるの? なんかもうグッチャグチャですか?


眠気コラム「ジャワではない。」

ubuntuでは、アプリケーションへのショートカットに(これはubuntuではランチャと呼ばれますが)windowsでお馴染みの矢印マークがつきません。
windowsがいいアイディアを出したと言うべきか、「そんなとこにファイルの実体があるはずないことは常識で分かれ」という発想を肯定すべきか、ちょっと難しいところです。

そんなわけでubuntuが定期バージョンアップの10月を向かえました。Ubuntu9.10リリースです。
ユーザの方は(ここの読者層には一人もおるまいが)アップデータをチェックしておこう。


NNDD(某美学芸術教授も愛用のニコニコ動画再生ツール)というソフトがありまして。
これはadobe AIR上で動作するのです、はい。

「空気」なんて不吉極まりない名前なので、天下のアドビのネーミングセンスを疑いますが内容には関係のないことですね。
どういうものかというとJavaみたいなもんです。

...この説明で分かるヒトはそれでいいんですけれど、分からないヒトにはとても説明しにくい。

えーと、つまりね。


プログラムというものは色々な命令の塊なわけです。
画面つけろとか印刷しろとか。

だけど直接モニターを制御したりプリンタと通信したりするのはメンドクサイわけです。主にプログラマーが。
それにCPU... つまりコンピュータの物理的な計算装置ですけれど、こいつらは電気制御ですよね。流石にそれはどれでも同じなんですけど、モノによって構造が全然違ったりするのね、同じにしたら商売にならないんで。


なので、直接制御は早々に諦めて、代わりにやってもらうわけ。

誰に、といえばOSに。
例えばメモ帳というソフトはwindowsに
「おい、このファイルよこせ、開け、保存しろ」とか
「てめープリンタと通信しろ」とか
「これとこれさえ俺が指定してやったら例のアレ出来るだろ、やれよ」とか
「今キーボードはどんな風にタイプされた? ひらがなにして漢字変換してから俺のとこ持ってこい」とか

そのようなことを指示しているわけです。そのように考えると、ヤツ自体は大したことはしてないんですね、実際。命令してるだけです。

これ、究極的にはものっそい「手抜き」というわけですから、プログラムを作らされるプログラマーが楽なんですね。例えば、いちいちプリンターと通信するためにソフトを設計しなくて済む。
それに全体が合理的になる。たとえば、ワープロソフトごとに漢字変換ソフトを用意しなくても、変換ソフトをwindowsが動作させて、ワープロソフトにデータだけ渡してやればいいわけです。もしくは、pdfファイルに記述されたURLがクリックされたら、windowsに「おい、俺は出来んから他のやつ呼び出せ」と言ってブラウザを起動してもらう。分業が円滑で素晴らしいですね。


だけれども、ここでもまた必然的に、OSによって「OSへの命令語」が全然違うわけです。
対応していないOSでは、プログラムは外国人状態です。話が全く通じないので起動すら出来ません。

それは、プログラムが「言いたいこと」を完全にローカルな言語でしか言えないから起こる問題です。
要は通訳がいればいいわけです、人間と同じように。

Javaはこのような問題に対処するための、ある種のクッションです。AIRも同じです。
つまり、Javaというのは「メモ書きを現地語に翻訳するソフト」。

プログラムと言うのはコンピュータへの命令の塊なので、基本的に人間には通じません。
余程特殊なギーク相手ならあるいは通じるのかもしれませんが、大概は無理です。だって0と1だけだし。

000010100010011010101010101010100100101111
とかそんな感じなわけです。意味不明ですね圧倒的に。


Javaは、この1つ手前、ある種の設計図にすぎないものをOS問わず使いまわせるのです。
「ここでこうして、あれして、印刷してファイルに保存して」と人間の言葉(にかなり近い英語風の専用言語)で書かれたファイルを、例えばwindowsならばwindows用のJavaが「ああ、こういうことがしたいのね。『00101001000101001010...』と翻訳しよう」とやってくれるわけです。

ユーザはこの翻訳装置であるところのJavaを導入すればよいわけ。プログラマの作業は一度きりで完全対応。
楽ですねえ。


実は、この発想は非常に優れていて、それが証拠に「Javaのようなシステム」は枚挙に暇ないのです。

例えば、Firefoxは各OSごとに専用のバージョンがあり、互換性はありません。
けれど、htmlファイルはどのOS版でも同じように開くことが出来ますね。他のブラウザでも同じように表示されます(IE除く)。

これがまさにJavaのやっていることです。
一つのページを環境の異なるみんなで使えるわけですからね。

そして例えば、flashなどもそうです。
いちいち計算して動画を作るのは面倒なので「flashさえあれば動く」動画を作り、各自の環境に適したバージョンのflashを導入してもらえばいいや、と。

「つぶしの効くファイル」を作れることは、多様な製作物が出てくる可能性を高めます。
それに「主流である、これこれの環境以外を使っているなら即買換え」なんていう自体も予防されます。安心ですね。



「通訳すれば使いまわせる」。
この発想を推し進めると、「そもそもwindowsOS向けプログラムの命令を1つ1つ同時通訳すれば、そのソフトはmacでも動くのではないか」ということになります。
macはもう一歩進んで「windowsOSをmacの上で動かす」ところまで行ってますけれど。

ubuntu上でも、windowsソフトを「通訳」して動かすシステムが整ってきています。
並のソフトは問題なく動くそうで、技術の進歩というか執念というか、凄まじいですね。


なんとなくコンピュータの話。
こういう話に多少でも興味を持った君は、文系プログラマー(IT土方)になる資格十分と言えるでしょう。
PR

[99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109
«  Back :   HOME   : Next  »
ブログ内検索
忍者ブログ [PR]