Porque é que a documentação PyObjC tão ruim?

votos
18

Por exemplo, http://developer.apple.com/cocoa/pyobjc.html ainda é para OS X 10.4 Tiger, 10.5 Leopard não .. E isso é a documentação oficial da Apple para ele ..

A página oficial PyObjC é igualmente ruim, http://pyobjc.sourceforge.net/

É tão ruim que é desconcertante .. Eu estou considerando aprender Ruby principalmente porque o material RubyCocoa é muito melhor documentados, e há muitos tutoriais decentes ( http://www.rubycocoa.com/ por exemplo), e por causa dos sapatos kit de ferramentas GUI ..

Mesmo este tutorial Japonês-mal-auto traduzido é mais útil do que o restante da documentação que eu poderia encontrar ..

Tudo que eu quero fazer é criar aplicações Python bastante simples, com Cacau GUI do ..
Alguém pode lançar luz sobre a documentação horrível, ou apontar-me a alguns tutoriais que não apenas dar-lhe enormes blocos de código e assumir que você sabe o que NSThread.detachNewThreadSelector_toTarget_withObject_(queryController, self, None)faz .. ?

Publicado 18/08/2008 em 11:23
fonte usuário
Em outras línguas...                            


9 respostas

votos
28

A principal razão para a falta de documentação para PyObjC é que há um desenvolvedor (me), e como a maioria dos desenvolvedores eu não gosto particularmente escrever documentação. Porque PyObjC é um projeto paralelo para mim, eu tendem a se concentrar em trabalhar em recursos e correções de bugs, porque isso é o mais interessante para mim.

A melhor maneira de melhorar a documentação é ser voluntário para ajudar na lista de discussão PyObjC-dev.

Como um aparte: a mailinglist pythonmac-sig (ver google) é um recurso excelente para a obtenção de ajuda em Python no Mac OS X (e não apenas PyObjC).

Respondeu 24/05/2009 em 09:08
fonte usuário

votos
21

Para ser franco:

Se você quer ser um programador Cacau eficaz, você precisa aprender Objective-C. Fim da história.

Nem Python ou Ruby são um substituto para o objectivo-C, através de suas respectivas pontes. Você ainda tem que compreender as APIs Objective-C, os comportamentos inerentes à NSObject derivado classes, e muitos outros detalhes de cacau.

PyObjC e RubyCocoa são uma ótima maneira de acessar a funcionalidade Python ou Ruby a partir de um aplicativo de cacau, incluindo a construção de um aplicativo de cacau em sua maioria - se não totalmente - em Python ou Ruby. Mas o sucesso nele é fundada sobre uma compreensão completa de Cacau e as APIs Objective-C que é composto.

Respondeu 25/10/2008 em 22:07
fonte usuário

votos
21

Concordo que esse tutorial é falho, jogando código aleatório, inexplicável bem na frente de seus olhos. Ele apresenta conceitos tais como a piscina disparo automático e padrões do usuário sem explicar por que você gostaria que eles ( "Autorelease piscina para gerenciamento de memória" não é uma explicação).

Dito isto…

basicamente tudo que eu quero fazer é escrever aplicações Cocoa sem ter que aprender ObjC.

Tenho medo de que, de momento, você vai precisar de uma compreensão básica de ObjC, a fim de beneficiar de qualquer linguagem que utiliza cacau. PyObjC, RubyCocoa, Nu e outros são nichos na melhor das hipóteses, e todos eles foram desenvolvidos por pessoas intimamente familiarizado com os meandros de ObjC e Cacau.

Por agora, você vai beneficiar mais se você realisticamente ver essas pontes como útil quando linguagens de script realmente brilhar, ao invés de tentar construir um aplicativo inteiro com eles. Embora isso tenha sido feito (com LimeChat, estou usando um aplicativo RubyCocoa-escrito agora), é raro e provavelmente será por um tempo.

Respondeu 18/08/2008 em 13:18
fonte usuário

votos
7

Me deparei com um bom tutorial sobre PyObjC / cacau:

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

Respondeu 27/08/2008 em 12:12
fonte usuário

votos
7

A resposta de Tom e Martin são definitivamente verdadeiro (em praticamente qualquer projeto de código aberto, você verá que a maioria dos contribuintes são particularmente interessado em, bem, desenvolvimento ; não tanto em matéria semi-relacionados, tais como documentação), mas eu não faço acha que sua pergunta em particular no final se encaixaria bem dentro documentação PyObjC.

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

NSThreadfaz parte da API Cocoa, e como tal documentado ao longo da Apple , incluindo o método particular + detachNewThreadSelector:toTarget:withObject:(eu ligar lá, mas aparentemente stackoverflow tem bugs com analisá-lo). O wiki CocoaDev também tem um artigo .

Eu não acho que seria uma boa idéia para PyObjC para tentar documentar cacau, excepto alguns exemplos básicos de como usá-lo de dentro do Python. Explicando selectores é também provável fora do âmbito da PyObjC, como aqueles que, também, são uma característica de Objective-C, não PyObjC especificamente.

Respondeu 18/08/2008 em 12:38
fonte usuário

votos
5

Tudo que eu quero fazer é criar aplicações Python bastante simples, com Cacau GUI do .. Alguém pode lançar luz sobre a documentação horrível, ou apontar-me a alguns tutoriais que não apenas dar-lhe enormes blocos de código e assumir que você sabe o que NSThread.detachNewThreadSelector_toTarget_withObject_ ( "queryController", auto, None) faz ..?

[...]

basicamente tudo que eu quero fazer é escrever aplicações Cocoa sem ter que aprender ObjC.

Embora eu basicamente de acordo com a resposta do Soeren, eu ia levá-la ainda mais longe:

Será um longo tempo, se alguma vez, antes que você pode usar Cacau sem alguma compreensão da Objective C. Cacau não é uma abstração construída independentemente do Objective C, que seja explicitamente vinculados a ela. Você pode ver isso no exemplo linha de código que você citou acima:

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

Esta é a maneira Python de escrever a linha C Objectivo:

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

Agora, é importante notar aqui que esta linha pode ser visto de duas maneiras: (1) como uma linha de Objective C, ou (2) como uma invocação dos quadros de cacau. Vemos isso como (1) pela sintaxe. Vemos isso como (2), reconhecendo que NSThread é um quadro de cacau que oferece um conjunto de funcionalidades úteis. Neste caso, este quadro de cacau particular está tornando mais fácil para nós ter um objeto começar a fazer algo em um novo segmento.

Mas o kicker é esta:. O quadro de cacau aqui (NSThread) está nos oferecendo este serviço acessível de uma forma que é explicitamente ligada à linguagem do quadro foi escrito em Ou seja, NSThread nos deu uma característica que se refere explicitamente a "seletores" . Seletores são, na verdade, o nome para algo fundamental sobre como Objective C funciona.

Então, aí está a dificuldade. Cacau é fundamentalmente uma criação Objective-C, e seus criadores construíram-lo com Objective C em mente. Não estou dizendo que é impossível traduzir a interface para o Cacau apresenta em uma forma mais natural para outras línguas. É só que, logo que você alterar o quadro de cacau para parar referindo-se a "seletores", não é realmente o quadro de cacau mais. É uma versão traduzida. E uma vez que você começar a ir por esse caminho, eu estou supondo que as coisas ficam realmente confuso. Você está tentando manter-se com a Apple como eles atualizar Cacau, talvez você bater algumas partes do cacau que simplesmente não traduzem bem para a nova linguagem, seja qual for. Então, ao invés, coisas como PyObjC optar por expor Cacau diretamente, de uma forma que tem uma correlação muito clara e simples. Como se costuma dizer na documentação:

A fim de ter um sem perdas e tradução inequívoca entre mensagens Objectivo-C e métodos Python, o nome do método Python equivalente é simplesmente o selector com dois pontos substituídos por sublinhados.

Claro, é um pouco feio, e isso não significa que você precisa saber algo sobre Objective-C, mas isso é porque a alternativa, se realmente existe, não é necessariamente melhor.

Respondeu 23/09/2008 em 15:24
fonte usuário

votos
4

Eu não sabia nada sobre Objective C ou cacau (mas muito sobre Python), mas agora estou escrevendo um aplicativo bastante complexo em PyObjC. Como eu aprendi? Peguei Cacau programação para OSX e passou por todo o livro (um processo muito rápido) usando PyObjC. Simplesmente ignorar qualquer coisa sobre o gerenciamento de memória e você vai praticamente ser fino. A única ressalva é que muito ocasionalmente você tem que usar um decorador como endSheetMethod (na verdade eu acho que é o único que eu hit):

@PyObjcTools.AppHelper.endSheetMethod
def alertEnded_code_context_(self, alert, choice, context):
    pass
Respondeu 29/12/2008 em 00:05
fonte usuário

votos
3

Tom diz tudo realmente. Lotes de projetos de código aberto têm desenvolvedores dedicados e alguns que estão interessados ​​em documentar. Ele não é ajudado pelo fato de que postes pode mudar em uma base diária que significa que a documentação não só tem que ser criada, mas mantidos.

Respondeu 18/08/2008 em 11:41
fonte usuário

votos
3

Esta resposta não vai ser muito útil, mas, como um desenvolvedor eu odeio fazer documentação. Sendo este um projeto opensource, é difícil encontrar pessoas para fazer a documentação.

Respondeu 18/08/2008 em 11:27
fonte usuário

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