- ベストアンサー
Cocoaアプリの利点は?
Cocoaアプリの利点というか、Carbonより優れている点は何なのでしょうか? ちょっと調べてみましたが今一つ分かりません。 私が考えられるのはアプリのインターフェイスがきれいでOSXによく合っている気がする。 テキストを打つ時、欧文フォントをデフォルトに設定していてもそのまま日本語を入力出来る。(Carbonでも出来るものもあるらしいですが) ぐらいしか分かりません。 逆に、ボールドに出来るフォントが限られていて、好きなフォントが使えない時がある。 Carbonより重い気がする。(これは必ずしもそうではないかもしれませんが。) 等、使い勝手が悪く感じる部分もあります。 宜しく御教示下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Carbon = Mac OS 9とMac OS Xどちらの環境下でも起動・動作可能なソフトウェア。 Cocoa = Mac OS Xのみの環境下でのみ起動・動作可能なソフトウェア。 Appleは当初このような定義をしていましたが、いまは健忘症に陥ったごとく口にしなくなりました。100%同一のプログラムコードで両OSで使えるソフトウェアがけっきょくひとつもなかったのですから、無理もないでしょう。 現在Carbonでプログラムしている人は、Mac OS 9のことはまったく念頭にないでしょうし、Mac OS 9のプログラムを書いている人は、昔ながらのCodeWarriorでコンパイルし、Mac OS Xのことは念頭にないでしょう。 現時点での実質的なCarbonとCocoaの定義は: Carbon = CやC++で書かれたソフトウェア。 Cocoa = Objective Cで書かれたソフトウェア。 ということになります。 Objective CはCをオブジェクト指向に拡張した言語で、完全にCと混在可能なプログラムを書くことができます。ということは、CocoaからCarbonのFramework(AppleはAPIのことをこう呼びます)を自由に呼び出すことができるので、じっさいのCocoaプログラマは、ほとんどCocoaとCarbonの違いを意識せずに作業しているのではないでしょうか。 (1) CはObjective Cより高速に動作する。 (2) Carbon FrameworkはCocoa Frameworkよりいろんなことができる。たとえば、Cocoaには文章を縦書きにするFrameworkがない、など。 このような理由で、適宜CocoaとCarbonを使い分けてプログラムしています。 また、Cocoaにはソフトウェアを容易に多言語仕様にすることができるという点など、Cocoaならではの利点があります。Carbonプログラマにとっても、これらを使わない手はないので、純粋なCarbonプログラムにしたてることは少ないでしょう。 CarbonとCocoaの区別は、「情報を見る」で言語切り替えができるかどうかで調べるという方法がありましたが、Carbonアプリケーションでも多言語仕様のものも多数あるので、決定打ではありません。 そういうわけで、いまどきのMac OS XのソフトウェアでCarbonとCocoaを明確に区別できることはできなくなっています。比較すること自体あまり意味を持たなくなっています。 ところで、フォントをボールドにするとかいう話は、PostScriptの新しいフォント技術のことではないかと思われます。Mac OS Xはグラフィック技術にPDFを採用していますが、PostScriptは使っていません。(Mac OS Xの前身Next StepはPostScriptをライセンスを受けて採用していた)
その他の回答 (3)
- Sitosi
- ベストアンサー率42% (16/38)
aufwind1009> Sitosi> “ボールドにできるフォントが限られている” aufwind1009> Sitosi> という意味はちょっと理解できません。 aufwind1009> aufwind1009> これはCocoaだと例えばヒラギノ角ゴシックは aufwind1009> ボールドに出来ますが、Osakaでは出来ません。 あ、これは、ちと誤解があるようです。例えば、欧文フォントの場合、Times New Roman を例に取りますと、フォントのファイルに見えるもの、実は、フォント・スーツケースと言うのですが、Mac OS X の“パッケージ”のようなものです、その中に4種類のフォントファイルが収録されています。「Times New Roman Regular」、「Times New Roman Italic」、「Times New Roman Bold」、「Times New Roman Bold Italic」です。これは他の欧文フォントでも同じです。通常は、フォントメニュー等で「Times New Roman」を選ぶと、実際には「Times New Roman Regular」が選ばれます。そのフォントを選択して「ボールド」を選ぶと、「Times New Roman Regular」が太字になるのではなく、全く別の「Times New Roman Bold」でフォントが置き換えられるのです。InDesign 等のようにフォントを厳密に管理する必要のあるソフトでは、最初からこれらのフォントがバラバラに(個別に)選択するようになっています。 で、日本語フォントにはそのようなバリエーションがなく、1フォント1スタイルなので、例えば「OSAKA」を選んで「ボールド」を選んでも、何も起こらないのです。ところが、例えば「ヒラギノ角ゴ W3」で入力した文字列を選んで「ボールド」を指定すると、フォントフォルダの中に同じ系列で「ヒラギノ角ゴ W6」というより太いフォントが存在した場合には、「ヒラギノ角ゴ W6」で置き換えられるのです。つまり、ボールド・フォントが存在しない場合には、フォントはボールドにはできないというわけです。(同様に、ヒラギノの場合はイタリックにはできない。)ところが、Mac OS 9 だけではなく、Mac OS X でも、フォントが存在しなくても日本語フォントがボールド体やイタリック体に“できる”(ように見える)ソフトが存在しています。Microsoft Word 2004 等がその代表例ですね。これは、Mac OS 9 時代でもそうだったのですが、画面でボールド体に見えても、実際に印刷すると、ほとんど太く見えません。理由は、独自のボールド体のフォントを使うのではなく、見掛け上、同じフォントを重ねることで太めに見せているだけだからです。確か1ドット分幅を広げているのではなかったかしら? で、解像度の低い画面だと1ドットの差は結構太く見えるのですが、解像度の高いプリンターで印刷すると、1ドットの差はほとんど見えなくなってしまうのです。つまり、Mac OS 9 でも一見ボールド体が指定できるように見えても、専用のフォントが用意されていないと、印刷では効果がなかったので、多分、Mac OS X は最初から無意味でユーザーに混乱させるようなことは選択できないように標準ではしているのだと思います。(で、Microsoft のソフトは相変わらずそういう指針を無視していると...。と言うか、善意に解釈すれば、他のOSで作成されたファイルとの互換性を大事にしていると。) Unicode に関しては色々批判はありますが、とりあえず、これまでの文字コードシステムと比べると千倍以上有用です。将来、より優れたシステムが導入されたとしても、Unicode は現在世界標準のコードシステムですから、ファイルの移行も簡単になることでしょう。Unicode が問題があるからと言って、より酷いシステムを支持する理由にはなりません。(日本語と英語しか使わない人に Unicode 批判派が多いような気がするのは、気のせいかもしれません (^-^;)ゞ。こちとら、より理想的なシステムが導入されるまで待っていたら、寿命が尽きちゃうよというのがあります。仕事はいましなければならないので。) Cocoa が Carbon よりも遅いのは、(雑誌の記事の受け売りですが)Cocoa がまだ最適化されていないのではなく、Cocoa のプログラミングの性質から言って、どうしても Carbon よりも遅くなる宿命なんだそうです...。そこら辺は詳しい方の説明を待ちましょう (^^)!
お礼
詳しく教えていただき、ありがとうございます。 >例えば、欧文フォントの場合...つまり、ボールド・フォントが存在しない場合には、フォントはボールドにはできないというわけです。 はい。私も同じ意味で言ったつもりなんですが。 でも、下記の事と合わせて考えると、より分かる様になりました。 >画面でボールド体に見えても、実際に印刷すると、ほとんど太く見えません。... なるほど。Jedit4で試してみてなんとなく分かりました。 Jedit4ではヒラギノ角ゴW3を「ボールド」にしたものと、ヒラギノ角ゴW6でははっきり違いますね。ヒラギノ角ゴW6の方がはっきり太いです。ヒラギノ角ゴW3を「ボールド」にしたものは「ボールド」にしないものとの差がはっきりしませんね。 >見掛け上、同じフォントを重ねることで太めに見せているだけだからです。確か1ドット分幅を広げているのではなかったかしら? というのはこの事だったんですね。 あの、もう一つ、上記御回答で「ボールド」に出来る、出来ないをOS9とOSXで分けて説明されていますが、これはCarbonとCocoaと言う事なのでしょうか?私の知っているかぎりでは、Carbonのアプリは全てのフォントを(見掛け上)ボールドに出来ると思うのですが。これでいいのでしょうか? >Cocoa が Carbon よりも遅いのは、...Cocoa のプログラミングの性質から言って、どうしても Carbon よりも遅くなる宿命なんだそうです...。 なるほど。そうだったんですね。
フォントバリエーションの『ボールド』は標準のフォント を太くする事により表現していました。 現在はフォントファミリーとして用意されている以外は 表示されなく成ってます。 ちなみにPSフォントはバリエーションとして専用に作成して ますので、表示は奇麗です。 ユニコード化は賛否が分かれる所ですが、特定のキーを利用しなくても各国語が利用出来るのは良いのでは? Carbon対応はOSXから起動可能にOS9のソフトを変更した物です。 Cocaソフトは先程のソフトをOSX用に書き直した物なので まだ最適化されていないため遅いかもしれません。
お礼
ありがとうございます。 >現在はフォントファミリーとして用意されている以外は 表示されなく成ってます。 ファミリー内にボールド用のフォントが無いとボールドの表示は出来なくなっているという事ですね。 PSフォントは奇麗なのですね。 >ユニコード化は賛否が分かれる所ですが、特定のキーを利用しなくても各国語が利用出来るのは良いのでは? 確かにそうですよね。
- Sitosi
- ベストアンサー率42% (16/38)
我々素人には「何でぇ!?」となるのですが、Carbon よりも Cocoa の方が動作は多少重くなるようです (^^;)。とは言え、ユーザーの条件にもよるのでしょうが、私のように、日本語と英語以外の言語を色々多用するユーザーには Cocoa は涙が出るほどありがたいものです。理由は、Apple の提供するテキストエンジンを使って文書作成ソフトを作れば、完全に Unicode に対応したものが簡単に作れることです。Carbon では難しいようです。Cocoa だと、ヒラギノのような日本語フォントでも、世界中のほとんどの文字がそのまま入力できてしまいます。(Mac OS 9 までだと、リュウミンライト-KL や OSAKA、平成明朝等のまま補助記号の付いたアルファベット等を入力することは不可能でしたよね?)1つの文書ファイルの中に、日本語だろうが、英語だろうが、ハンガリー語だろうが、アラビア語だろうが、ヘブライ語だろうが、朝鮮語だろうが、中国語だろうが、タイ語だろうが、発音記号だろうが、そのまま混在させて簡単にファイルが作れてしまうのは、Cocoa だからです。現在日本におけるマックの標準エディタの地位を確立している Jedit も、Carbon の Jedit 4 から Cocoa の Jedit X に替わった段階で、飛躍的に使い勝手がよくなりました。とりあえず、Unicode 完全対応が私にとっての Cocoa のメリットです。(Carbon だと Unicode が使えないというようなわけではないようです。ただし、色々制約が多くなってしまうようです。Microsoft Word 2004 とか Excel 2004 は Unicode に対応しましたが ― お陰で使い勝手が飛躍的に向上しました ― Carbon のようです。そのために、一部問題もあるようです。) “ボールドにできるフォントが限られている”という意味はちょっと理解できません。リュウミンライト-KLや中ゴシックBBB等のような古い形式の一部のフォントを除けば、使えるフォントは同じはずですが?(個人的にはリュウミンライト-KL-等幅や中ゴシックBBB-等幅が使えなくなったのは非常に困りものです。Mac OS X では OSAKA-等幅 以外に日本語の等幅フォントがなくなってしまったからです。OSAKA-等幅 は非常に汚らしいので、好きにはなれません。中ゴシックBBB-等幅 は非常に奇麗で、上品でした。ヒラギノ明朝 Pro やヒラギノ角ゴ Pro の等幅フォントが欲しいところです。)
お礼
Sitosiさん、他の質問でもお世話になりました。 >Carbon よりも Cocoa の方が動作は多少重くなるようです やはりそうですよね。 >Cocoa だと、ヒラギノのような日本語フォントでも、世界中のほとんどの文字がそのまま入力できてしまいます。 そうですね。私もこれがありがたいです。私も日本語と英語以外の言語をたまにあつかいます。 >“ボールドにできるフォントが限られている”という意味はちょっと理解できません。 これはCocoaだと例えばヒラギノ角ゴシックはボールドに出来ますが、Osakaでは出来ません。 JeditXでOsakaで文字を入力したあと、それを選択して選択部分をメニューからボールドにしようとしても出来ません。 これはCocoaの仕様で、ヒラギノ角ゴシックの様に、フォントの種類としてボールドのフォントが独立してあるものだけが出来るとJeditXのサポートに質問して教えてもらいました。 >OSAKA-等幅 は非常に汚らしいので、好きにはなれません。 私もです。私は代わりにTokyoというのを購入して使っている事があります。
お礼
詳しい説明、ありがとうございます。 >現時点での実質的なCarbonとCocoaの定義は: >Carbon = CやC++で書かれたソフトウェア。 >Cocoa = Objective Cで書かれたソフトウェア。 >ということになります。 私はプログラムの事は全く分からないのですが、頭に入れておきます。 >(1) CはObjective Cより高速に動作する。 (2) Carbon FrameworkはCocoa Frameworkよりいろんなことができる。たとえば、Cocoaには文章を縦書きにするFrameworkがない、など。 なるほど、こういう特徴もあるんですね。 >Cocoaにはソフトウェアを容易に多言語仕様にすることができるという点など、Cocoaならではの利点があります。 これはCocoaの利点の一つなのですね。 >いまどきのMac OS XのソフトウェアでCarbonとCocoaを明確に区別できることはできなくなっています。比較すること自体あまり意味を持たなくなっています。 なるほど。分けて考えるという事があまり意味をなさなくなって来たのですね。 >フォントをボールドにするとかいう話は、PostScriptの新しいフォント技術のことではないかと思われます。... ここのところ、少し調べてみましたが、よく分かりませんでした。OSXではPostScriptのフォント技術を使っていないという事なのでしょうか?