Seite 1 von 1
PyObjc
Verfasst: Mittwoch 27. Februar 2008, 10:40
von The Spirit
Hi.
Wollte mal fragen, ob schon jemand mit PyObjc gearbeitet hat und mir eine gute deutsche Anleitung, Tutorial, ... oder dergleichen für mich hat.
Über Links würde ich mir auch freuen (kenne halt nur die Originalpage).
Thx
Verfasst: Samstag 1. März 2008, 12:49
von sma
Hatte auch mal über Cocoa-Programmierung auf dem Mac nachgedacht, doch da die Doku quasi nicht-existent war, mein Wissen über Cocoa gleich 0 und da zu Objective-C nur unwesentlich größer ist (ich kann aber Smalltalk, wo die Sprache 1986 abgespalten wurde) und die Sourceforge-Seite veraltet schien, habe ich das Thema wieder ad acta gelegt.
Google findet aktuell
dieses halbe Tutorial.
Auch zu Ruby-Cocoa gibt es nur sehr wenig Infos - und das obwohl doch eigentlich das Gros der Ruby-Entwickler Mac User sind und Apple eigentlich Scriptsprachen wie Python und Ruby durchaus in aktueller Version direkt bei Leopard mitliefert.
Mich persönlich stört etwas, dass die Sprachanbindungen nicht die von Smalltalk geerbte Eigenschaft von Objective-C, bei Schlüsselwortnachrichten die Argumente *in* die Nachricht zu schreiben, übernehmen (können) und so das Ergebnis immer irgendwie häßlich aussieht. Vielleicht würde ich mich mit
FScript wohler fühlen.
Wenn's nur um GUI-Programmierung auf dem Mac geht, wäre vielleicht auch wxWindows eine Alternative. Diese Bibliothek liegt auch bei und ist plattformübergreifend. Dafür kann man nicht mehr mit dem InterfaceBuilder native Anwendungen bauen.
Es bleibt unbefriedigend...
Stefan
Verfasst: Samstag 1. März 2008, 16:37
von Darii
sma hat geschrieben:Mich persönlich stört etwas, dass die Sprachanbindungen nicht die von Smalltalk geerbte Eigenschaft von Objective-C, bei Schlüsselwortnachrichten die Argumente *in* die Nachricht zu schreiben, übernehmen (können) und so das Ergebnis immer irgendwie häßlich aussieht.
Naja, was erwartest du? Das PyObjC die Syntax von Python ändert?
@The Spirit: Also die Suche nach irgendwelchen Deutschen Dokus würde ich aufgeben, da wirst du nichts finden. Viel Dokumentation zu dem Thema gibt es zur Zeit leider nicht, dazu kommt auch, dass sich die bestehenden nicht auf PyObjC 2 beziehen. Am hilfreichsten wird es wohl sein sich die PyObjC-Beispiele im Developer-Ordner anzugucken und für den Rest die Cocoa-Doku zu bemühen.
Verfasst: Sonntag 2. März 2008, 11:02
von sma
Darii hat geschrieben:Naja, was erwartest du? Das PyObjC die Syntax von Python ändert?
Nein, aber missfallen darf's mir doch trotzdem, oder? Ich finde halt
häßlicher als
was mich allgemein an dem Versuch, Cocoa mit etwas anderem als Objective-C (oder F-Script) programmieren zu wollen, zweifeln lässt. Die ganze Klassenbibliothek ist auf Schlüsselwortnachrichten abgestimmt.
Man könnte sich ja auch einen Präprozessor überlegen, der tatsächlich ein "Objective-Python" erzeugt und Nachrichtenausdrücke in Python einmischt, so wie es mit C passiert. Die "[]" beißen sich dann mit Listen und man müsste entweder auf `list(...)`als einzige Form zurückgreifen oder aber z.B. ein "$" voranstellen.
Stefan
Verfasst: Sonntag 2. März 2008, 11:58
von Darii
sma hat geschrieben:Darii hat geschrieben:Naja, was erwartest du? Das PyObjC die Syntax von Python ändert?
Nein, aber missfallen darf's mir doch trotzdem, oder?
Natürlich, wollte ich dir auch nicht verbieten.
Man könnte sich ja auch einen Präprozessor überlegen, der tatsächlich ein "Objective-Python" erzeugt und Nachrichtenausdrücke in Python einmischt, so wie es mit C passiert.
Aber wozu, Python kennt im Gegensatz zu C schon Nachrichten/Objekte, da muss man nichts hinzufügen. Nur damit es schöner aussieht? Die Schreibweisen sind doch isomorph.
Verfasst: Sonntag 2. März 2008, 12:34
von sma
Darii hat geschrieben:Nur damit es schöner aussieht? Die Schreibweisen sind doch isomorph.
Ja, Syntax ist extrem wichtig. Sonst könnte man Python ja auch so schreiben:
Code: Alles auswählen
class Foo extends Bar {
/**
* Adds given arguments.
*/
def baz($a,$b) {
return "$a+$b=" . $a + $b
}
}
Stefan
Verfasst: Sonntag 2. März 2008, 14:06
von BlackJack
Wie wär's mit so einer API?
Funktioniert natürlich nicht, wenn es auf Objective-C-Seite Nachrichten gibt, die die gleichen Schlüsselworte aber in anderer Reihenfolge verwenden.
Verfasst: Sonntag 2. März 2008, 18:14
von sma
BlackJack hat geschrieben:
Wie's bei Cocoa aussieht weiß ich nicht, aber bei Smalltalk ist #with:with: oder #value:value:value: nicht ungewöhnlich. Das ließe sich nicht abbilden.
Über einen speziellen codec (PEP 263) könnte man aber einen Präprozessor installieren, der z.B. diesen ansonsten syntaktisch falschen Code transformiert:
Code: Alles auswählen
array.(concatenate: '*' withSeparator: ',')
=>
array.concatenate_withSeparator_('*', ',')
Stefan
Verfasst: Sonntag 2. März 2008, 19:08
von Leonidas
sma hat geschrieben:Über einen speziellen codec (PEP 263) könnte man aber einen Präprozessor installieren
Das wird aber ab Python 3.0 nicht mehr möglich sein, dort werden die Codecs einzig dazu da sein, Bytestrings in Unicode zu wandeln.