PyObjc vs RubyCcoaco für Mac-Entwicklung: Was ist reifer?

8

Ich wollte mit Ruby oder Python spielen, während ich gleichzeitig etwas Cocoa-Programmierung machen wollte.

Also dachte ich, der beste Weg, um diese beiden Ziele zu erreichen, ist die Entwicklung von etwas, das entweder eine Ruby- oder Python-Objective-C-Brücke (PyObjc oder RubyCocoa) verwendet.

Ich weiß, dass ich im Idealfall, um die beste Lernerfahrung zu bekommen, jede Technik unabhängig lernen würde, aber ich habe keine Zeit. :)

Also meine Frage ist, was ist eine ausgereiftere Plattform, PyObc oder RubyCooco, die wichtigsten Dinge, nach denen ich suche:

  1. Dokumentation der API
  2. Tutorials
  3. Werkzeuge
  4. Unterstützende Gemeinschaft
  5. Komplettierung von Cocoa API verfügbar durch die Brücke

In Bezug auf Punkt 5 erwarte ich nicht, dass die gesamte Cocoa-API über beide Brücken verfügbar sein wird, aber ich muss genug Cocoa-APIs zur Verfügung haben, um eine funktionierende Anwendung zu entwickeln.

    
hhafez 09.01.2009, 00:16
quelle

5 Antworten

7

Ich würde Chris 'Beurteilung wiederholen und ein wenig darauf eingehen, warum Sie Objective-C lernen sollten, um Kakao zu lernen. Wie Chris sagt, ist Objective-C die Grundlage und Muttersprache von Kakao und viele seiner Paradigmen sind untrennbar mit dieser Linie verbunden. Insbesondere sind Selektoren und die dynamische Nachrichtenauflösung sowie die Fähigkeit zur Änderung von Klassen zur Laufzeit erforderlich, um Cocoa-Technologien wie verteilte Objekte und Bindungen zu implementieren. Obwohl diese Funktionen auch in anderen dynamischen Sprachen wie Ruby und Python verfügbar sind, gibt es in den Sprachmodellen genug Unterschiede, dass Sie Objective-C zumindest verstehen müssen, um Cocoa zu verstehen. Ich schlage vor, Sie werfen einen Blick auf diese vorherige Frage zur weiteren Diskussion: Muss ich Objective-C für die professionelle Mac-Entwicklung lernen?

Glücklicherweise ist Objective-C sehr einfach zu erlernen. Ich sage den Leuten oft, dass sie einen Tag brauchen werden, um Objective-C aus C / C ++ / Java oder LISP, Scheme oder einer der neueren dynamischen Sprachen wie Ruby und Python zu lernen. Zusätzlich dazu, dass Sie Ihre Gedanken ein wenig erweitern, lernen Sie, zumindest den Code zu lesen, der in praktisch allen Cocoa-Dokumenten und Beispielen verwendet wird.

Wie bei Ruby vs. Python sind die Bridge-Fähigkeiten sehr ähnlich. Beide verwenden Apples BridgeSupport (im Lieferumfang von Leopard enthalten), um die Bridge-Beschreibung bereitzustellen. Beide werden von Apple unterstützt und mit Leopard ausgeliefert. Es ist eine Frage des persönlichen Geschmacks, welche Sprache Sie bevorzugen. Wenn Sie sich für Ruby entscheiden, schlage ich vor, dass Sie MacRuby einen Blick darauf werfen. Es ist definitiv die Zukunft von Ruby unter OS X, da es die Ruby-Laufzeit zusätzlich zur Objective-C-Laufzeit neu implementiert. Dies bietet einige nette Leistungs- und konzeptionelle Vorteile (einschließlich der Integration in das Objective-C-Speicherbereinigungssystem, ein Merkmal, das derzeit in PyObjC fehlt, das das native Python-GC verwendet). MacRuby enthält auch einen benutzerdefinierten Parser, der die Syntax von überbrückten objective-c-Methoden ein wenig schöner macht. Der Nachteil von MacRuby ist, dass es zum Zeitpunkt der Erstellung dieses Artikels (Juni 2009) noch nicht für den Einsatz auf Produktionsebene bereit ist. Da es sich anhört, dass dies ein Lernprojekt für dich ist, ist das wahrscheinlich kein Problem.

    
Barry Wark 09.01.2009, 21:02
quelle
12

Während Sie sagen, dass Sie "keine Zeit haben", Technologien unabhängig zu lernen, ist der schnellste Weg, Cocoa zu lernen, immer noch, es in seiner Muttersprache zu lernen: Objective-C. Sobald Sie Objective-C verstanden haben und die anfängliche Lernkurve der Cocoa-Frameworks überwunden haben, können Sie PyObjC oder RubyCcocoa viel einfacher aufheben.

    
Chris Hanson 09.01.2009 01:08
quelle
3

Beide sind ungefähr gleich, würde ich sagen. Besser an manchen Orten, schlimmer an anderen. Aber ich würde nicht empfehlen, Kakao mit beiden zu lernen. Wie Chris sagte, benötigt Cocoa etwas Verständnis von Objective-C. Ich mag Ruby besser als Objective-C, aber ich empfehle es immer noch nicht, Kakao zu lernen. Sobald Sie eine solide Grundlage (kein Wortspiel beabsichtigt) in Cocoa / Objective-C haben, können die Brücken für Sie nützlich sein.

    
Chuck 09.01.2009 01:25
quelle
1

Apple scheint hinter Ruby Scripting für Cocoa, aber nicht für RubyCocoa zurück zu sein. Sie hosten und ich glaube, MacRuby zu unterstützen. Ich frage mich oft, ob MacRuby Apples Antwort auf eine höhere Programmiersprache für OSX-Prototypen und vollständige Anwendungsentwicklung ist.

    
hacintosh 09.01.2009 02:41
quelle
1

ObjectiveC ist nicht annähernd so unterhaltsam oder so produktiv wie Python oder Ruby. Deshalb wollen Leute einen Python oder Rubin mit gutem Objective-C-Zugriff auswählen. Wenn Sie sie beraten, das Ziel C zu lernen, fehlt zuerst der Punkt imo. Ich habe wirklich gute Dinge über pyobjc zu sagen. Seine Fähigkeit, schmerzfrei mit Objective-C-Frameworks zu interagieren, ist hervorragend. Ich habe weniger Erfahrung mit Ruby Cocoa und das war teilweise, weil, als ich das letzte Mal geschaut habe, es nicht so sauber und relativ schmerzlos Interoperabilität schien. Ich bin zögerlich über MacRuby, weil es zu weit geht. In pyobjc können Sie plain python schreiben und nur Unterklassen / Foundation- und Cocoa-Objekte verwenden, wenn Sie wirklich wollen / wollen. Von dem, was ich von MacRuby verstehe, ist es ein Rubin auf Cocoa. Ein String ist also immer ein NSString. Ich bin weniger glücklich damit. YMMV.

    
Samantha Atkins 14.10.2010 06:19
quelle

Tags und Links