2010-11-24 3 views
4

Несколько лет назад, желая написать программное обеспечение Mac и имея большой опыт работы с Java WebObjects, я попробовал Java-мост, но решил укусить пулю и изучить Objective-C (к счастью, поскольку я бы ненавидел, когда мое программное обеспечение устарело от моста). Позже я обманул RubyCocoa. Я узнал Ruby (нашел это действительно интересно), но обнаружил, что мост был далеко не зрелым или стабильным, и в конце концов я закончил переносить код обратно в Objective-C.PyObjC/Ruby bridge. Это стоит?

С годами прошло, мне интересно, стоит ли потратить некоторое время на MacRuby или даже изучить Python для использования PyObjC. Насколько мне нравится Objective-C, я помню, что был более продуктивным с мостом Ruby, когда он не разбился. Мне просто не хотелось бы тратить время на то, чтобы снова оказаться в аварийном ПО.

ответ

3

Я бы сказал, что MacRuby - это путь, если вы хотите попробовать один из мостов. Он разрабатывается Лораном Сансонетти, который является старшим инженером-программистом в Apple, работающим над Ruby.

В настоящее время это вполне функционально и прекрасно сочетается с родными фреймами. Стоит посмотреть, особенно если у вас уже есть опыт Ruby.

+0

MacRuby - это полная трата времени для тех, кто хочет научиться программированию какао.Это удивительно хорошо написанный мост - лучший из множества на данный момент - но он по-прежнему нравится брать французский класс и предпочитает писать все ваши документы на испанском языке только потому, что. – bbum 2010-11-24 19:29:53

+2

Да, но когда я прочитал вопрос, это не тот человек, который спрашивает, как изучать Какао (или Obj-C), а скорее тот, у кого уже есть этот опыт, и задается вопросом, может ли он быть более продуктивным на другом языке. – paulbailey 2010-11-25 09:31:24

0

Мое личное мнение - использование ObjC для родных приложений Mac.

Использование Ruby/Python, где они должны работать нормально, без ненадежных интерфейсов с сомнительной поддержкой.

1

Если вы хотите изучить программирование какао, игнорируйте мосты. Они только затруднят писать приложения для какао, и вы будете тратить кучу времени на то, чтобы ускориться.

В частности, вам нужно будет изучить Objective-C, чтобы понимать как API, так и шаблоны проектирования системных фреймворков. Кроме того, вся документация и инструменты написаны специально для поддержки Objective-C.

Основная часть вашего времени в обучении Программирование какао будет потрачено на указанные API и шаблоны проектирования; фактическая языковая часть относительно небольшая, для сравнения.

Обратите также внимание на то, что мосты обязательно должны иметь несоответствие импеданса в попытке сопоставить не совсем то же функциональность с одного языка на другой.

Честно говоря, если вы знаете Ruby, то Objective-C должен быть тривиально простым; объектные модели очень похожи.

0

Вот почему это не пустая трата времени. В некоторых случаях Ruby и Python имеют потрясающие и хорошо развитые библиотеки, недоступные в Objective-C, и вряд ли это произойдет. Это один из лучших вариантов использования.

Пример: вы не захотите переопределять Rails в Objective-C (некоторые могут быть), но вы можете легко использовать его, чтобы его использовать для запуска приложения Cocoa с помощью MacRuby.

Хорошо, что MacRuby мертв. Существует коммерческий RubyMotion.

Есть еще PyObjc, RubyCocoa и mruby.

Одним из других интригующих прецедентов является предоставление возможности сценария, которая не воняет, как AppleScript и OSA.

Имеются веские причины.