Hvorfor er dokumentasjonen PyObjC så ille?

stemmer
18

For eksempel, http://developer.apple.com/cocoa/pyobjc.html er fortsatt for OS X 10.4 Tiger, ikke 10.5 Leopard .. Og det er den offisielle Apple dokumentasjon for det ..

Den offisielle PyObjC side er like ille, http://pyobjc.sourceforge.net/

Det er så ille det er uforståelig .. Jeg vurderer å lære Ruby først og fremst fordi RubyCocoa ting er så mye bedre dokumentert, og det er massevis av fine tutorials ( http://www.rubycocoa.com/ for eksempel), og på grunn av skoene GUI toolkit ..

Selv dette dårlig-auto-oversatt japansk opplæringen er mer nyttig enn resten av dokumentasjonen jeg kunne finne ..

Alt jeg vil gjøre er å lage ganske enkle Python-programmer med Cocoa GUI er ..
Kan noen kaste lys over fryktelig dokumentasjon, eller peke meg på noen tutorials som ikke bare gir deg store blokker av kode og forutsetter at du vet hva NSThread.detachNewThreadSelector_toTarget_withObject_(queryController, self, None)gjør .. ?

Publisert på 18/08/2008 klokken 10:23
kilden bruker
På andre språk...                            


9 svar

stemmer
28

Den viktigste årsaken til den manglende dokumentasjon for PyObjC er at det er en utbygger (meg), og som de fleste utviklerne jeg ikke spesielt liker å skrive dokumentasjon. Fordi PyObjC er et sideprosjekt for meg at jeg har en tendens til å fokusere på å arbeide på funksjoner og feilrettinger, fordi det er mer interessant for meg.

Den beste måten å forbedre dokumentasjonen er å frivillig til å hjelpe på PyObjC-dev postliste.

Som en side: den pythonmac-sig mailinglisten (se google) er en utmerket ressurs for å få hjelp på Python på MacOSX (ikke bare PyObjC).

Svarte 24/05/2009 kl. 08:08
kilden bruker

stemmer
21

For å være sløv:

Hvis du ønsker å være en effektiv Cocoa programmerer, må du lære Objective-C. Slutt på historien.

Verken Python eller Ruby er en erstatning for Objective-C via sine respektive broer. Du har fortsatt å forstå Objective-C APIer, atferd iboende til NSObject avledet klasser, og mange andre detaljer Cocoa.

PyObjC og RubyCocoa er en flott måte å få tilgang til Python eller Ruby funksjonalitet fra en Cocoa applikasjon, inkludert å bygge en Cocoa applikasjon for det meste - om ikke helt - i Python eller Ruby. Men suksessen der er grunnlagt på en grundig forståelse av Cocoa og Objective-C APIer det er sammensatt av.

Svarte 25/10/2008 kl. 21:07
kilden bruker

stemmer
21

Jeg er enig i at det tutorial er feil, kaster tilfeldig, uforklarlig kode rett foran øynene dine. Det introduserer begreper som autoutgivelsesutvalg og brukerstandarder uten å forklare hvorfor du ønsker dem ( "autoutgivelsesutvalg for minnehåndtering" er neppe en forklaring).

Med det sagt…

utgangspunktet alt jeg vil gjøre er å skrive Cocoa-programmer uten å måtte lære ObjC.

Jeg er redd for at for tiden, du vil trenge en grunnleggende forståelse av ObjC for å dra nytte av alle språk som bruker Cocoa. PyObjC, RubyCocoa, Nu og andre er nisjer i beste fall, og alle av dem ble utviklet av mennesker nært kjent med ins og outs av ObjC og Cocoa.

For nå, vil du dra mest hvis du realistisk ser disse broene som nyttig der skriptspråk virkelig skinne, heller enn å prøve å bygge et helt program med dem. Selv om dette har blitt gjort (med LimeChat, jeg bruker en RubyCocoa skrevet app akkurat nå), er det sjelden og sannsynligvis vil være for en stund.

Svarte 18/08/2008 kl. 12:18
kilden bruker

stemmer
7

Jeg snublet over en god tutorial på PyObjC / Cocoa:

http://lethain.com/entry/2008/aug/22/an-epic-introduction-to-pyobjc-and-cocoa/

Svarte 27/08/2008 kl. 11:12
kilden bruker

stemmer
7

Tom og Martin svar er definitivt sant (i omtrent enhver åpen kildekode, vil du finne at de fleste bidragsyterne er spesielt interessert i, vel, utvikle , ikke så mye i semi-relaterte saker som dokumentasjon), men jeg gjør ikke tror ditt spørsmål på slutten ville passe godt inne PyObjC dokumentasjon.

NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None)

NSThreader en del av Cocoa API, og som sådan dokumentert over på Apple , inkludert spesielle metoden + detachNewThreadSelector:toTarget:withObject:(jeg vil knytte det, men tydeligvis Stackoverflow har feil med parsing det). Den CocoaDev wikien har også en artikkel .

Jeg tror ikke det ville være en god idé for PyObjC å forsøke å dokumentere Cocoa, annet enn noen få grunnleggende eksempler på hvordan du bruker den innenfra Python. Forklare velgere er også sannsynlig utenfor omfanget av PyObjC, som de også er en funksjon i Objective-C, ikke PyObjC spesielt.

Svarte 18/08/2008 kl. 11:38
kilden bruker

stemmer
5

Alt jeg vil gjøre er å lage ganske enkle Python-programmer med Cocoa GUI er .. Kan noen kaste lys over fryktelig dokumentasjon, eller peke meg på noen tutorials som ikke bare gi deg store blokker av kode og forutsetter at du vet hva NSThread.detachNewThreadSelector_toTarget_withObject_ ( "queryController", selv, Ingen) gjør ..?

[...]

utgangspunktet alt jeg vil gjøre er å skrive Cocoa-programmer uten å måtte lære ObjC.

Selv om jeg i utgangspunktet er enig med Soeren svar, vil jeg ta det enda lenger:

Det vil være en lang tid, om noensinne, før du kan bruke Cocoa uten noen forståelse av Objective C. Kakao er ikke en abstraksjon bygget uavhengig av Objective C, er det eksplisitt knyttet til den. Du kan se dette i eksempelet linje med kode du sitert ovenfor:

NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None) 

Dette er Python måte å skrive på Objective C linje:

[NSThread detachNewThreadSelector:@selector(queryController:) toTarget:self withObject:nil];

Nå er det viktig å legge merke til her at denne linjen kan sees på to måter: (1) som en linje av Objective C, eller (2) som en påkallelse av Cocoa rammer. Vi ser det som (1) av syntaksen. Vi ser det som (2) ved å erkjenne at NSThread er et Cocoa rammeverk som gir et sett med praktiske funksjoner. I dette tilfellet, er dette spesielt Cocoa rammeverk som gjør det enkelt for oss å ha et objekt begynne å gjøre noe på en ny tråd.

Men kicker er dette:. The Cocoa-rammeverket her (NSThread) gir oss denne praktiske tjenesten på en måte som er eksplisitt knyttet til språket rammeverket er skrevet i Nemlig NSThread ga oss en funksjon som eksplisitt refererer til "velgere" . Velgere er, i punkt faktisk, navnet på noe fundamentalt om hvordan Objective C fungerer.

Så det er gni. Kakao er fundamentalt en Objective-C skapelse, og dens skapere har bygget den med Objective C i tankene. Jeg er ikke hevde at det er umulig å oversette grensesnittet til Cocoa har til en form mer naturlig for andre språk. Det er bare det at så snart du endrer Cocoa rammeverk for å slutte å henvise til "velgere", er det ikke egentlig Cocoa-rammeverket lenger. Det er en oversatt versjon. Og når du begynner å gå ned den veien, jeg gjetter det blir veldig rotete. Du prøver å holde tritt med Apple som de oppdaterer Cocoa, kanskje du treffer noen deler av Cocoa som bare ikke oversette godt inn i det nye språket, uansett. Så i stedet, ting som PyObjC velger å eksponere Cocoa direkte, på en måte som har en veldig klar og enkel korrelasjon. Som de sier i dokumentasjonen:

For å ha en tapsfri og entydig oversettelse mellom Objective-C-meldinger og Python metoder, er det Python metode navnet ekvivalent ganske enkelt velger med koloner erstattet med strek.

Jada, det er en litt stygg, og det betyr ikke at du trenger å vite noe om Objective-C, men det er fordi alternativet, hvis man virkelig eksisterer, er ikke nødvendigvis bedre.

Svarte 23/09/2008 kl. 14:24
kilden bruker

stemmer
4

Jeg visste ikke noe som helst om Objective C eller Cocoa (men mye om Python), men jeg nå skriver en ganske komplisert program i PyObjC. Hvordan fikk jeg lære? Jeg plukket opp Cocoa Programming for OSX og gikk gjennom hele boken (en ganske rask prosess) ved hjelp PyObjC. Bare overse noe om minnehåndtering, og du vil ganske mye være i orden. Den eneste innvendingen er at en sjelden gang må du bruke en dekoratør som endSheetMethod (faktisk jeg tror det er den eneste jeg har truffet):

@PyObjcTools.AppHelper.endSheetMethod
def alertEnded_code_context_(self, alert, choice, context):
    pass
Svarte 28/12/2008 kl. 23:05
kilden bruker

stemmer
3

Tom sier alt egentlig. Mange åpen kildekode-prosjekter har dedikerte utviklere og noen som er interessert i å dokumentere. Det blir ikke bedre av det faktum at goalposts kan skifte på en daglig basis som betyr dokumentasjon ikke bare har som skal opprettes, men opprettholdt.

Svarte 18/08/2008 kl. 10:41
kilden bruker

stemmer
3

Dette svaret er ikke til å være svært nyttig, men som en utvikler jeg hater å gjøre dokumentasjon. Dette blir et opensource prosjekt, er det vanskelig å finne folk til å gjøre dokumentasjon.

Svarte 18/08/2008 kl. 10:27
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more