2010-11-24 17 views
4

何年も前にMacのソフトウェアを書いて、Java WebObjectsの経験が豊富で、私はJavaのブリッジを試しましたが、Objective-Cを学ぶことにしました(幸いにも、私のソフトウェアはブリッジで廃止されたことが嫌なので)。後で私はRubyCocoaに騙されました。私はRubyを学んだ(実際に興味深い)が、ブリッジが成熟していないか安定していないという難しい方法を見つけ出し、最後にコードをObjective-Cに移植し終わった。PyObjC/Rubyブリッジ。それは価値がありますか?

年が経つにつれ、私はMacRubyに多少の時間を投資したり、PyObjCを使うためにPythonを学ぶことさえ価値があるのだろうかと思います。 Objective-Cが好きなだけ、私はRubyブリッジがクラッシュしなかったときに、より生産的な方法であることを思い出します。私はちょうどcrashyソフトウェアで終わる時間を投資することを嫌うだろう。

答えて

3

私は、MacRubyがあなたがブリッジの1つを試したいと思ったら行く方法だと言います。これはAppleの上級ソフトウェアエンジニア、Rubyを担当しているLaurent Sansonettiによって開発されています。

これはかなり機能的で、ネイティブフレームワークとうまく統合されています。もしあなたが既にRubyの経験を持っているなら、特に価値があります。

+0

MacRubyは、誰かがココアプログラミングを学ぶのに時間の無駄です。それは驚くほどよく書かれた橋です - 現時点では最高ですが、フランス語のクラスを取ってスペイン語ですべての書類を書くのが好きなのは残念です。 – bbum

+2

はい、私は質問を読んでいて、これはCocoa(またはObj-C)を学ぶ方法を尋ねる人ではなく、すでにその経験を持っていて、別の言語でより生産的かどうか疑問に思う人です。 – paulbailey

+1

Macソフトウェア(MacのGUIソフトウェアを前提としています)を書きたい場合は、RubyやPythonの経験に関係なく、ブリッジを使用するのは時間の無駄です。 API、ドキュメンテーション、デザインパターンはすべてネイティブObjective-Cです。いずれにしても、最もシンプルなアプリケーションを構築する方法を理解するためのコードを記述するだけで十分です。ブリッジのインピーダンス不一致との戦いは、それだけの価値はありません。 – bbum

0

私の個人的意見は、Macネイティブアプリケーション用のObjCを使用しています。

疑わしいサポートが付いた信頼性の低いインターフェイスなしでネイティブで正常に動作するはずのRuby/Pythonを使用します。

1

Cocoaプログラミングを学びたい場合は、ブリッジを無視してください。彼らはココアの執筆をより困難にするだけで、スピードアップには時間が掛かります。

具体的には、システムフレームワークのAPIとデザインパターンの両方を理解できるようにObjective-Cを学習する必要があります。さらに、すべてのドキュメンテーションとツールはObjective-Cをサポートするために書かれています。

Cocoaプログラミングを学ぶ上での大部分は、前述のAPIやデザインパターンに費やされます。比較すると、実際の言語部分は比較的小さい。

ブリッジは必ずしも全く同じではない機能をある言語から別の言語にマッピングしようとすると、インピーダンスの不一致が発生することに注意してください。

あなたがRubyを知っていれば、Objective-Cは自明です。オブジェクトモデルは非常に似ています。

+0

私は、フレームワークが書かれている言語を学ぶ代わりに橋を選ぶという点に同意します。 – uchuugaka

0

これは時間の無駄ではない理由です。場合によっては、RubyとPythonには、Objective-Cでは利用できない素晴らしいライブラリとよく開発されたライブラリがあります。 これは、最適な使用例の1つです。

例:Objective-CでRailsを再実装したくない人もいますが、MacRubyを使用してCocoaアプリケーションを強化するために、その一部を簡単に使用できます。

MacRubyが死んでいます。商用のRubyMotionがあります。

PyObjc、RubyCocoa、mrubyがあります。

他の興味深い使用ケースの1つは、AppleScriptやOSAのような悪臭のないスクリプト機能を提供することです。

有効な理由があります。

関連する問題