8

私はMacRuby /HotCocoaを発見したばかりで、彼らがやっている音が本当に好きです。

私は、Cocoa GUIアプリケーションを自分で作成する可能性を本質的に無視していました。なぜなら、私は時間と労力を費やしてさらに別のCベースの言語であるObjective-Cを学ぶことに嫌悪感を抱いているからです。私はそれが悪いと言っているのではなく、私にとってだけではありません。

Objective-Cを完全に無視しながら、MacRuby / HotCocoaだけで、実質的でファーストクラスの性質のCocoa GUIアプリケーションを作成できるようになるのは、現在、または将来的にはそうなるのでしょうか。

(編集:iPhoneではなくデスクトップMac)

4

6 に答える 6

13

「MacRubyの目標は、Rubyを使用するメリットを享受するために、パフォーマンスを犠牲にしない本格的なMacOSXアプリケーションの作成を可能にすることです。」 -MacRuby README

Robが言うように、MacRubyは「翻訳レイヤー」ではありません。これは、Cocoaが使用しているのと同じオブジェクトシステム上のRubyです。あなたは確かにそれを使って「ファーストクラス」のアプリケーションを構築することができ、Objective-Cで不便なことを達成することもできます。

MacRubyとRubyCocoaを混同しないように注意してください。Appleは、MacRubyの「すべてのテンプレートをプルする」ことはしませんでした。これは、デフォルトで出荷されたことがないためです。

さらに、LLVMとAppleのプラットフォームとの統合は、リリースごとに拡大します。XCodeの次のリリースでは、高度なコードの完了、チェック、およびコンパイルをLLVMに依存します。Appleが何かを強調していないのなら、それはGCCです。

また、MacRubyにはObjective-Cと同様のAPIカバレッジの制限があることに気付くかもしれません。たとえば、認証済みアプリの作成やキーチェーンへのアクセスには、両方の言語のラッパークラスが必要です。

于 2010-07-29T04:00:26.240 に答える
5

翻訳レイヤーを介してファーストクラスのアプリを構築することは非常に困難です。必要なパフォーマンスと動作をネイティブに取得するのは十分に困難です。私はMacRubyのアプローチに感銘を受けました。特に、Core Animation(一流のMacアプリの重要な部分)やCore Data(難しいもの)などを管理できることに感銘を受けました。RubyCocoaの醜さではなく、より慣用的なRubyを使用していることに本当に感銘を受けました。しかし、Appleが(彼らがそれを呼んでいるように)Java、Ruby、Pythonなどの多言語ダリエンスを「強調しない」理由があります。このようなものを1つの言語で書くのは十分に難しいです。半サポートされている翻訳レイヤーを通過していない場合、それを正しく行うのは十分に困難です。実際には、ドキュメントと既存のすべてのコードを処理するには、ObjC構文を学習する必要があります。実際には、まともなMacアプリを開発するには、ObjCパターンを学ぶ必要があります。

MacRubyは面白いです。経験豊富なObjCプログラマーとしても、プロトタイプをハッキングしてインターフェイスを試すためにHotCocoaを検討するかもしれません。しかし、あなたが言うように、それは私が構築するために使用するようなものではありません。「実質的で一流の性質のCocoaGUIアプリケーション」。

開発者としての私たちの仕事の一部は、ツールの袋を用意することです。優れた大工がいくつかの異なるハンマーに加えて、バール、ネイルセット、いくつかの種類の正方形、およびその他の12のツールを持っているように、プログラマーはさまざまな言語、プログラミングパラダイム、プラットフォーム、および環境に慣れている必要があります。そうすれば、彼女はその仕事に適したツールを選択し、それらを効果的に使用できるはずです。Macプログラミングの場合、このジョブに適したツールには、Xcode、IB、ObjC、Cocoaなどがあります。それらを回避することは、大工がフレーミングハンマーとスピードスクエアを回避するようなものです。彼らは仕事の一部にすぎません。

于 2010-04-19T01:43:22.083 に答える
1

私はRubyCocoaにしばらく時間を費やしましたが、Obj-Cを調べたのは、最終的にCocoaやその他のフレームワークのすべてのドキュメントがObj-C構文で記述されていたということです。それ自体では、Obj-Cはそれほど大きな言語IMOではなく、他のCベースの言語とOOPの経験があれば、理解するのにそれほど時間はかからないはずです。かなり大きいのはフレームワークですが、Cocoaなどです。少なくともrubyCocoaを使用すると、フレームワークを学習する必要があります。これに加えて、Rubyのようなスクリプト言語がコンパイルされたC言語と同じパフォーマンスを提供できるとは信じられません。

于 2010-04-19T01:14:40.467 に答える
1

ネイティブのObjCアプリのように見えるAppleのフレームワークを使用してRubyアプリを作成することができます。

しかし、私の言葉を信じないでください。そのようなアプリの例をここで探してください。それらは、ネイティブユーザーがネイティブRubyとネイティブObjCを区別できないほど十分にネイティブに見え、実行されます。

于 2010-04-19T03:03:54.260 に答える
0

ねえ、私はそれを試して、あきらめました。なぜなら、それがすべてObjCの単なる代替品であると見てから、ObjCは突然私には素晴らしい言語のように見えたからです。私はObjCを学び、それが好きです。

于 2010-04-19T06:09:02.997 に答える
-1

MacRubyは誰かのペットプロジェクトです。その誰かがRubyコードからネイティブバイナリを吐き出すコンパイラをまとめた場合、それがいつか何らかの根拠を得る可能性があることは明らかです。彼らが今していることを続ければ、いや、誰かがやめるか解雇されて、Java CocoaバインディングとWebObjectsと一緒に仕事が埋もれるまで、それはニッチな製品のままになるでしょう。

于 2010-04-19T01:12:01.440 に答える