8

Ruby か Python で遊んでみたいと思っていましたが、同時に Cocoa プログラミングも少しやりたいと思っていました。

したがって、これらの両方の目標を達成する最善の方法は、Ruby または Python から Objective-C へのブリッジ (PyObjc または RubyCocoa) を使用して何かを開発することだと考えました。

最高の学習体験を得るには、各テクノロジを個別に学習するのが理想的ですが、時間がありません。:)

したがって、私の質問は、PyObc と RubyCocoa のどちらがより成熟したプラットフォームであるかということです。私が探している主なものは次のとおりです。

  1. API のドキュメント
  2. チュートリアル
  3. ツール
  4. 支援コミュニティ
  5. ブリッジを介して利用可能な Cocoa API の完全性

ポイント 5 に関しては、Cocoa API 全体がどちらのブリッジからも利用できるとは思っていませんが、機能するアプリケーションを開発するには十分な Cocoa API を利用できる必要があります。

4

5 に答える 5

12

テクノロジーを独自に学ぶ「時間がない」と言っても、Cocoaを学ぶための最速のルートは、母国語であるObjective-Cで学ぶことです。Objective-Cを理解し、Cocoaフレームワークの最初の学習曲線を理解すると、PyObjCまたはRubyCocoaのいずれかを簡単に習得できるようになります。

于 2009-01-09T01:08:54.463 に答える
7

私は Chris の評価に同意し、なぜ Cocoa を学ぶために Objective-C を学ぶべきなのかについて少し詳しく説明します。Chris が言うように、Objective-C は Cocoa の基盤でありネイティブ言語であり、そのパラダイムの多くはその系譜と密接に関連しています。特に、分散オブジェクトやバインディングなどの Cocoa テクノロジーを実装するには、セレクターと動的メッセージ解決、および実行時にクラスを変更する機能が必要です。これらの機能は Ruby や Python などの他の動的言語でも使用できますが、言語モデルには十分な不一致があり、Cocoa を理解するには少なくとも Objective-C を理解する必要があります。さらなる議論のために、この前の質問をご覧になることをお勧めします:プロの Mac 開発のために Objective-C を学ぶ必要がありますか?

幸いなことに、Objective-C は習得が非常に簡単です。私はよく、C/C++/Java、LISP、Scheme、または Ruby や Python などの「新しい」動的言語のいずれかから来る Objective-C を学ぶのに 1 日かかると人々に言います。少し視野を広げるだけでなく、少なくともほぼすべての Cocoa のドキュメントとサンプルで使用されているコードを読めるようになります。

Ruby と Python の場合、ブリッジ機能は非常に似ています。実際、どちらも Apple のBridgeSupport (Leopard に付属) を使用してブリッジの説明を提供しています。どちらも Apple がサポートしており、Leopard に同梱されています。どちらの言語を好むかは、個人の好みの問題です。Ruby を選択した場合は、MacRubyを指定することをお勧めします見て。これは、Objective-C ランタイムの上に Ruby ランタイムを再実装するため、OS X 上の Ruby の未来であることは間違いありません。これにより、いくつかの優れたパフォーマンスと概念上の利点が得られます (Objective-C ガベージ コレクション システムとの統合、ネイティブの python gc を使用する PyObjC に現在欠けている機能を含む)。MacRuby には、ブリッジされた Objective-C メソッドの構文を少し良くするカスタム パーサーも含まれています。MacRuby の欠点は、この記事の執筆時点 (2009 年 6 月) では、製品レベルで使用する準備が整っていないことです。これは学習プロジェクトのように聞こえるので、おそらく問題にはなりません。

于 2009-01-09T21:02:42.940 に答える
3

どちらもほぼ同等だと思います。良いところもあれば、悪いところもあります。しかし、私はどちらも Cocoa を学ぶことをお勧めしません。Chris が言ったように、Cocoa には Objective-C の理解が必要です。Ruby は Objective-C よりも好きですが、Ruby を使用して Cocoa を学習することはお勧めしません。Cocoa/Objective-C の強固な基盤 (しゃれは意図されていません) があれば、ブリッジが役に立ちます。

于 2009-01-09T01:25:52.667 に答える
1

Apple は、RubyCocoa ではなく、Cocoa の Ruby スクリプト作成に遅れをとっているようです。彼らはホスティングしており、私はMacRubyをサポートしていると信じています。MacRuby は、OSX プロトタイピング用の高水準言語に対する Apple の答えであり、アプリケーション開発に完全に対応しているのではないかとよく思います。

于 2009-01-09T02:41:13.967 に答える
1

ObjectiveC is nowhere near as much fun or as productive as either Python or Ruby. That is why people want to pick a python or ruby with good Objective C access. Advising them to learn Objective C first misses the point imo. I have really good things to say about pyobjc. Its ability to interoperate painlessly with Objective C frameworks is superb. I have less experience with Ruby Cocoa and that was partly because when I last looked it didn't seem to have as clean and relatively painless interoperability. I feel hesitant about MacRuby because it seems to go too far. In pyobjc you can write plain python and only subclass/use Foundation and Cocoa objects when you really want/mean to. From what I understand of MacRuby it is a Ruby on top of Cocoa. So a string is always an NSString. I am less happy with that. YMMV.

于 2010-10-14T06:19:39.593 に答える