PyObjc против RubyCocoa для Mac: что является более зрелым? - PullRequest
8 голосов
/ 09 января 2009

Я хотел поиграть либо с Ruby, либо с Python, в то же время я хотел немного по программированию на Какао.

Поэтому я подумал, что лучший способ достичь обеих этих целей - это разработать что-либо с использованием моста Ruby или Python-Objective-C (PyObjc или RubyCocoa).

Я знаю, что в идеале, чтобы получить лучший опыт обучения, я бы изучал каждую технику независимо, но у меня нет времени. :)

Итак, мой вопрос: какая более зрелая платформа, PyObc или RubyCocoa, основные вещи, которые я ищу:

  1. Документация по API
  2. Обучение
  3. Инструменты
  4. Сообщество поддержки
  5. Полнота API Какао доступна через мост

Относительно пункта 5 Я не ожидаю, что весь API-интерфейс Cocoa будет доступен через любой из мостов, но мне нужно иметь достаточно API-интерфейсов Cocoa для разработки работающего приложения.

Ответы [ 5 ]

12 голосов
/ 09 января 2009

Хотя вы говорите, что «у вас нет времени» на самостоятельное изучение технологий, самым быстрым путем изучения какао будет изучение его на его родном языке: Objective-C. Как только вы поймете Objective-C и преодолеете начальную кривую изучения фреймворков Cocoa, вам будет гораздо проще выбрать PyObjC или RubyCocoa.

7 голосов
/ 10 января 2009

Я бы повторил оценку Криса и немного подробнее расскажу, почему вы должны изучать Objective-C, чтобы изучать какао. Как говорит Крис, Objective-C является основой и родным языком какао, и многие из его парадигм неразрывно связаны с этой линией. В частности, для реализации технологий Какао, таких как Распределенные объекты и привязки, требуются селекторы, динамическое разрешение сообщений и возможность изменять классы во время выполнения. Хотя эти функции доступны в других динамических языках, таких как Ruby и Python, в языковых моделях достаточно несоответствия, что вам придется хотя бы понимать Objective-C, чтобы понимать какао. Я предлагаю вам взглянуть на этот предыдущий вопрос для дальнейшего обсуждения: Нужно ли изучать Objective-C для профессиональной разработки Mac?

К счастью, Objective-C очень прост в освоении. Я часто говорю людям, что им понадобится день, чтобы выучить Objective-C на C / C ++ / Java или LISP, Scheme или любом из «более новых» динамических языков, таких как Ruby и Python. Помимо того, что вы немного расширите кругозор, вы научитесь хотя бы читать код, который используется практически во всей документации и примерах по какао.

Что касается Ruby и Python, возможности моста очень похожи. Фактически, они оба используют Apple BridgeSupport (поставляется с Leopard), чтобы предоставить описание моста. Оба поддерживаются Apple и поставляются с Leopard. Это вопрос личного вкуса, какой язык вы предпочитаете. Если вы выбираете Ruby, я предлагаю вам взглянуть MacRuby . Это определенно будущее Ruby на OS X, поскольку оно переопределяет среду выполнения Ruby поверх среды Objective-C. Это обеспечивает хорошую производительность и концептуальные преимущества (включая интеграцию с системой сборки мусора Objective-C, которая в настоящее время отсутствует в PyObjC, использующем нативный Python gc). MacRuby также включает в себя собственный синтаксический анализатор, который делает синтаксис мостовых методов target-c немного приятнее. Недостатком MacRuby является то, что он не совсем готов к использованию на производственном уровне на момент написания этой статьи (июнь 2009 года). Поскольку это звучит так, как будто это учебный проект для вас, это, вероятно, не проблема.

3 голосов
/ 09 января 2009

Оба примерно равны, я бы сказал. Лучше в одних местах, хуже в других. Но я не рекомендовал бы изучать Какао с любым из них. Как сказал Крис, Какао требует некоторого понимания Objective-C. Мне нравится Ruby лучше, чем Objective-C, но я все еще не рекомендую использовать его для изучения какао. Если у вас есть прочная основа (без каламбура) в Cocoa / Objective-C, мосты могут быть вам полезны.

1 голос
/ 14 октября 2010

ObjectiveC далеко не так интересен и продуктивен, как Python или Ruby. Вот почему люди хотят выбрать питона или рубина с хорошим доступом к Objective C. Консультирование их, чтобы изучить Цель C сначала пропускает пункт imo. У меня есть действительно хорошие вещи, чтобы сказать о Pyobjc. Его способность безболезненно взаимодействовать с платформами Objective C превосходна. У меня меньше опыта с Ruby Cocoa, и это было отчасти потому, что когда я в последний раз смотрел, у него не было такой чистой и относительно безболезненной совместимости. Я чувствую нерешительность по поводу MacRuby, потому что он заходит слишком далеко. В pyobjc вы можете писать простой python и только создавать подклассы / использовать объекты Foundation и Cocoa, когда вы действительно этого хотите. Из того, что я понимаю о MacRuby, это Ruby поверх какао. Таким образом, строка всегда является строкой NSString. Я менее доволен этим. YMMV.

1 голос
/ 09 января 2009

Apple, кажется, отстает от сценариев Ruby для Какао, но не RubyCocoa. Они хостинг, и я считаю, что поддерживает MacRuby . Я часто задаюсь вопросом, является ли MacRuby ответом Apple на язык более высокого уровня для прототипирования OSX и полностью на разработке приложений.

...