ちょっと先の未来クイズ第4問

iphoneだとC言語でないと動かないとききました。
また、フラッシュが動かないとききました。

反面、アンドロイドだとC言語がなくても動き、フラッシュも動くと聞きました。
ほとんど素人に近いのですが、なるべく簡単にわかりやすくなぜなのかをお教えいただけますとありがたく存じます。

A 回答 (3件)

>iphoneだとC言語でないと動かないとききました。



C言語ではなく、Objective-Cです。Objective-CはC言語を拡張したもので、Cとは別の言語と考えてください。

>また、フラッシュが動かないとききました。

これは技術的なことでなく、単に「アップルの方針」です。ありていにいってしまえば、ジョブスがFlashがキライだからです。

>反面、アンドロイドだとC言語がなくても動き、フラッシュも動くと聞きました。

その代わりにJavaが必要です。またFlashも2.1までは動きません。要するに前は動かなかったが、アップルがFlash禁止にしたので、iPhoneとの違いを強調するためにFlashを動くようにした、ということでしょう。

>なるべく簡単にわかりやすくなぜなのかをお教えいただけますとありがたく存じます。

わかりやすくいえば、「OSが違うから」です。MacではWindowsのソフトは動かず、WindowsではMacのソフトは動きません。またMacではObjective-Cという言語でプログラムを作りますが、Windowsでは今は.net対応の言語(Visual BasicとかC#とか)やC++といった言語を使います。

OSによって、どういう環境でどういうプログラムを動かすかということが違いますし、そもそも設計思想が違います。Androidは、「汎用のオープンソース(誰もが無償で使える)のOS」を目指して作りました。ですから、さまざまなハードで動作することを考えるとJavaベースでアプリを供給するという道を選んだのでしょう。実際、携帯以外にも、音楽プレーヤー、カーナビ、テレビなどがありますし、今後は更に幅広く使えるようにしていく(例えば、Android冷蔵庫とかAndroid電子レンジとか?)考えのようです。

iPhoneで使われているiOSは、もともとMac OS XのOSのコアをベースにして端末用のOSを作れないか?というところから始まっています。Mac OS Xは、これは歴史的な経緯がからんでくるのですが、もともとNeXT STEPというOSをベースにしています。これは、もともとObjective-Cという当時としては画期的だったプログラミング言語を活かすためにOSまで設計したようなもので、「Objective-CのためのOS」みたいな構造なのです。それをベースにしたMac OS XもそのままObjective-Cベースとなり、これをベースにしたiPhoneもObjective-Cベースで作る、ということになっているわけです。

アップルは、基本的に「よき独裁主義」を目指しています。アップルという1つの企業が世界中のすべてを支配するのがよい未来だ、という考えです。ですから、そこには基本的に「他の企業が提供する技術との連携や融合」はありえません。使用言語はObjective-C。知らないなら覚えろ。Flashは禁止。いやならアップルの世界からでていけ。そういうスタンスです。アップル以外のものはすべて悪なのです。

Androidを生み出したGoogleは「すべてをオープンに」が社是の会社です。どんなものもあっていい、それが基本方針。Androidを出してますが、iPhoneも否定しないしWindows PhoneもWebOSもなんでもありです。どんなものであっても、「そこにGoogleの広告が表示される」なら、全部OKなのです。Androidは、携帯端末に自社が主導していけるOSがあったほうが便利だから作ったようなもので、AndroidがコケてiPhoneの天下になってもGoogleは全然困りません。要するに、それぞれ競合してこの世界がにぎやかになってどんどん進化して、みんながどんどんGoogleの広告を見てくれればいいんです。

Objective-Cという非常にマイナーで独自色の強い言語を強要するアップルと、Javaという何にでも浸透して広がっていく言語を採用するGoogle、それぞれの企業の精神が反映されている、といえるのかも知れません。
    • good
    • 0
この回答へのお礼

>Objective-Cという非常にマイナーで独自色の強い言語を強要するアップルと、Javaという何にでも浸透して広がっていく言語を採用するGoogle

この辺が非常にわかりやすかったです。どうもありがとうございます。

お礼日時:2011/05/15 21:19

「なぜ」というところは内部の人にしか分からないところがあるので、もっと技術的に具体的(ObjCとかCocoa touchの使い方とかDalvikVMの実装の話だとか)なことを質問したほうが良いと思います。



ということで、参考となりそうなところの紹介だけ。

> iphoneだとC言語でないと動かないとききました。
iPhone(iOS)のベースとなっている、Mac OS X/NeXTstepの開発言語/フレームワークがObjective-C
を用いていることを指しているのかと。

ちなみにJavaScript+HTMLを用いたアプリケーションも開発できます。
http://www.oreilly.co.jp/books/9784873114613/
http://www.pitecan.com/iPhoneSamples/clock/
Andriodも同様。
http://www.google.co.jp/search?hl=ja&q=android+a …

Flash非搭載については、いろいろ:
http://www.apple.com/hotnews/thoughts-on-flash/
http://av.watch.impress.co.jp/docs/news/20100430 …
http://www.google.co.jp/search?hl=ja&q=iphone+fl …
http://topics.jp.msn.com/digital/gizmodo/column. …

> アンドロイドだとC言語がなくても動き、フラッシュも動くと聞きました。
そのとおり。Java自体もともと組み込み用途が始まりです。

それっぽいのを紹介しようと思ったけど、google検索でみつかったり、書籍がいくつか出てたりするので、そういうのをご覧になったほうが良いかと。
    • good
    • 0

> アンドロイドだとC言語がなくても動き、フラッシュも動くと聞きました。



アンドロイドでは標準の開発言語はJavaです。
フラッシュの開発元であるアドビ社によってアンドロイド用のフラッシュが提供されています (アンドロイドのバージョンによっては機能に制限がある)。

> iphoneだとC言語でないと動かないとききました。

この部分はやや不正確です。iPhone用の開発言語はObjective-Cです。http://ja.wikipedia.org/wiki/Objective-C
iPhone用のアプリケーションを他の言語で開発する手段をアップル社は提供していません。

> フラッシュが動かないとききました。

これは技術的な理由によるものではなく、アドビ社はiPhone用のフラッシュを提供するつもりでした。しかし、アップル社の方針でフラッシュは搭載しないと決まっています。

アップル社が上記のような方針にしているのはなぜか?という質問でしょうか。

この回答への補足

ご回答ありがとうございます。
アップル社がなぜあえてフラッシュを搭載しないのかには興味はありますが、今回の質問とは意味が違います。

……ジョブズが嫌いなんですかね。

補足日時:2011/05/15 12:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報