ファイルシステムでHello World
この連載では"ファイルシステムの作り方"をご紹介します。第1回目の今回は簡単なイントロダクションと単純なHello Worldファイルシステムの作り方を説明します。次回以降で詳しい解説と本格的なファイルシステムの作り方をご紹介しようと思います。
作者 Charles Humble, 翻訳者 編集部 投稿日 2008年4月3日 午前6時33分
AppleがiPhone SDKを発表してから1日もしないうちに、Sun MicrosystemsはJava ME JVMをAppleのiPhoneおよびiPod Touchに移植する意向を表明した。ビデオ録画による発表(source)の中で、Eric Klein氏はJVMがiPhoneで動作しないわけがないと述べている。
「過去24時間は、SDKに関してAppleが提供しているあらゆる情報の収集に費やし、iPhoneおよびiTouch(iPod Touch)の開発の一部を第三者に委託する決定を下したことに、興奮せずにはいられない。Javaに対するもともとの展望の1つには、デベロッパコミュ ニティが世界中で可能な限りのデバイスに素晴らしいコンテンツおよびアプリケーションを作成可能にすることで、その点では、iPhoneが重要なプラット フォームである」。
Sunの発表を受けて、目先が利くブロガーやフォーラムへの投稿者が、Sunの移植の妨げとなりうる2つの重要な問題を指摘した。その1つは、ライセンス契約条項である。
「アプリケーションはそれ自体決してインストールせず、その他の実行可能なコードを実行しない。プラグインアーキテクチャーの使用、他のフレームワークの 呼び出し、その他のAPIなどに関する制限がないとしてもである。AppleのPublished APIや組み込みインタープリターで解釈され実行されたコードを除けば、アプリケーションでダウンロードもされないし、使用もされない」。
2つ目は、一見したところ、SDKにおける技術的な制限である。Appleの公式iPhone Human Interface Guidelines(Apple iPhone Dev Center(source)から利用可能、要ログイン)によると、1つのiPhoneアプリケーションのみが同時に実行でき、第三者によるiPhoneアプリケーションはそのバックグラウンドでは実行しないようである。
「これは、ユーザが他のアプリケーションに移行したり、電話に出たり、メールを確認したりするとき、使用していたアプリケーションが終了することを意味する。重要なのは、この現実によってユーザが悪影響を受けることはないことである。つまり、ユーザはiPhoneアプリケーションをあきらめて、そして後で そこに戻ることは、コンピュータでアプリケーションを移行することより困難だと感じるべきではない。
恐らくこれは技術的な制限ではないのだが、iPhoneは、 複数の並行処理をサポートするMac OS Xと同じカーネルを実行する。iPhone自体は確かにマルチタスクである(そうでなければ、たとえばそれでSafariを使用しているとき、 音を出すことができない)。したがって、この制限は、第三者によるバックグラウンドプロセスで使用されるRAM量を制限する際に課されることが多い。それゆえに、Appleが、選ばれた第三開発業者に自身のバックグラウンドでアプリケーションを実行させる機能を与えると推測するのが妥当なように思える。しかしながら、AppleがSunにそういった権利を与えるとは想像しがたい。 まず第一に、Java MEアプリケーションをiPhoneやiPod Touch でインストールできたり、実行できるようにすることで、店舗への分配をAppleが意図している通りに規制することが難しくなる。また一方で、ここ数年に わたり、JavaとAppleの関係がますます悪化しているような現実がある。それとは対照的に、JavaOne 2000での基調講演でSteve Job氏が以下のように語った。
「われわれが望んでいるのは、大々的にJavaをデスクトップに復活させることである。今日わたしがこの場にいるのは、この地球上でMacが最高の Java提供手段にすべく、日々努力していることを個人的に伝えるためである。今われわれが取り組んでいる最大のことは、すべてのMac OS X(発売予定のMacintoshオペレーティングシステム)にJava SEを搭載することである。今期下半期に発売予定である」。
昨年は、New York Times(source)に以下のような意見を述べた。
「Javaは構築する価値はない。もはや誰も使っていない。これほどまでに重いボールや鎖である。」
先週Eric Klein氏は引き続き声明を出し、Sunの計画を阻害する条件があるならば、Sunは喜んでAppleとの協議の場を設けることを述べた。
「われわれの発表は、iPhoneやiPod Touch向けにJVMを構築することの興奮とAppleが公開しているSDKやそれに関連した取引条件についての情報の評価に基づいている。 iPhone beta SDKライセンス契約で条項があり、それが潜在的に第三者のアプリケーションの分配を制限するものであるならば、それらについてAppleと前向きな協議を持ちたい。SunおよびAppleは、Mac OS XのJava SEがらみで継続的な関係を保っており、iPhoneおよびiPod TouchについてAppleとさらに詰めた協議をおこなうことを期待している。間違いなくSunは、iPhoneおよびiPod Touch向けにJVMを提供する計画を可能な限り立てている」。
JavaOneの開催期間に、Sunが詳細を発表することになれば面白くなるであろう。
原文はこちらです:http://www.infoq.com/news/2008/03/jme_iphone
この連載では"ファイルシステムの作り方"をご紹介します。第1回目の今回は簡単なイントロダクションと単純なHello Worldファイルシステムの作り方を説明します。次回以降で詳しい解説と本格的なファイルシステムの作り方をご紹介しようと思います。
あなたのチームが、既存アプリケーションを「シングルトンの入れ子」設計から依存性注入(DI)へ移行しようとしているなら、この論文に心引かれるでしょうが、DIへの移行は難しいことが分かっています。論文にはGoogleのJava DIコンテナ(Guice)の名を入れていますが、Javaや.NET、Python、Rubyなどにも当てはまります。
アジャイルの「自己組織化チーム」のパラダイムでは、チームのメンバに新しいスキルが要求されます。この記事では、発展しつつあるチームの自己組織化を壊さずに、新たなスキルを伝えるためのいくつかの戦略を提案します。そして、新しいスキルを身につけるのに役立つ資料のありかを提示しています。
今回の記事では、非同期ワークフローと呼ばれるワークフロー機能の面白い使用法を考察しますが、非同期ワークフローは.NETの非同期プログラミングモデルを単純化することを目的としています。
アーキテクチャは一般に、Word文書に主として見られるような極めて実体のない、ソフトウェアシステムの概念的な側面であるか、または完全に技術によって駆動されるものかのいずれかです。そのどちらも間違っています。では、どう対処すればよいでしょうか? この記事ではアイデアを説明します、そしてアプローチのキーポイントを要約します。
Werner Schuster氏が、簡単な例を示しながら、Javaのようなプロパティをメタプログラミングを使ってRubyに追加する方法を示します。
現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。
ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。
No comments
返信