PyObjc против RubyCocoa для разработки Mac: что более зрело?

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

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

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

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

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

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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
8
0
2 502
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

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

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

Тот же человек, что стоит за MacRuby, является основным разработчиком RubyCocoa, а Apple даже включает RubyCocoa как часть Mac OS X, поэтому я не думаю, что будет правильным утверждать, что Apple за этим не стоит. MacRuby - это будущее Ruby на Mac, но это не значит, что вы не можете использовать RubyCocoa сейчас.

Chuck 09.01.2009 09:00
Ответ принят как подходящий

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

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

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

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

Другие вопросы по теме