Может ли MacRuby / HotCocoa заменить необходимость знать Objective-C? - PullRequest
8 голосов
/ 19 апреля 2010

Я только что обнаружил MacRuby / HotCocoa и мне действительно нравится то, что они делают.

Я, по сути, обесценил перспективу создания приложений с графическим интерфейсом Cocoa самостоятельно, потому что у меня есть отвращение к тому, чтобы тратить время и силы на изучение еще одного языка на основе C, Objective-C. Я не говорю, что это плохо, только не для меня.

Является ли это случаем сейчас или в вероятном будущем, что кто-то сможет создавать приложения с графическим интерфейсом Cocoa существенного и первоклассного характера только с помощью MacRuby / HotCocoa, полностью игнорируя Objective-C?

(Изменить: Настольный Mac, а не iPhone)

Ответы [ 6 ]

13 голосов
/ 29 июля 2010

"Цель MacRuby - включить создание полноценного Mac OS X приложения, которые не приносят в жертву производительность для того, чтобы насладиться Преимущества использования Ruby. " - MacRuby README

Как говорит Роб, MacRuby - это не «слой перевода». Это Ruby в той же объектной системе, что и Cocoa. С его помощью вы можете создавать «первоклассные» приложения, а также выполнять задачи, которые неудобны для Objective-C.

Будьте осторожны, чтобы не перепутать MacRuby с RubyCocoa. Apple не «вытянула все шаблоны» для MacRuby, потому что они никогда не поставлялись по умолчанию.

Более того, интеграция LLVM с платформами Apple растет с каждым выпуском. В следующем выпуске XCode будет использоваться LLVM для расширенного дополнения кода, проверки и компиляции. Если Apple что-то преуменьшает, то это GCC.

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

5 голосов
/ 19 апреля 2010

Будет очень сложно создавать первоклассные приложения через слой перевода. Достаточно сложно получить ту производительность и поведение, которые вам нужны изначально. Я впечатлен подходом MacRuby и особенно впечатлен тем, что они способны управлять такими вещами, как Core Animation (ключевой элемент первоклассных приложений для Mac) и Core Data (что непросто). Я действительно впечатлен их использованием более идиоматического Ruby, а не безобразия RubyCocoa. Но есть причины, по которым Apple «преуменьшает» (как они это называют) свои многоязычные связи в Java, Ruby, Python и т. Д. Достаточно сложно написать этот материал на одном языке. Достаточно сложно понять это правильно, когда вы не проходите через полуподдерживаемый уровень перевода. На практике вам все еще нужно изучить синтаксис ObjC, чтобы иметь дело с документацией и всем существующим кодом. На практике вам все равно придется изучать шаблоны ObjC для разработки достойных приложений для Mac.

MacRuby интересно. Даже будучи опытным программистом ObjC, я мог бы рассмотреть HotCocoa для взлома прототипов и опробования интерфейсов. Но это не та вещь, которую я использовал бы для создания, как вы говорите, «приложений с графическим интерфейсом Cocoa существенного и первоклассного характера».

Как разработчики, часть нашей работы - иметь пакет инструментов. Подобно тому, как у хорошего плотника есть несколько разных молотков, плюс монетки, наборы гвоздей, несколько видов квадратов и дюжина других инструментов, программист должен быть знаком с различными языками, парадигмами программирования, платформами и средами. Затем она должна быть в состоянии выбрать правильные инструменты для работы и использовать их эффективно. В случае программирования на Mac правильные инструменты для работы включают Xcode, IB, ObjC и Cocoa. Избегать их - все равно что плотник избегать обрамляющего молотка и квадрата скорости. Они просто часть работы.

1 голос
/ 19 апреля 2010

Можно написать приложение на Ruby, используя каркас Apple, который выглядит как нативное приложение ObjC.

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

1 голос
/ 19 апреля 2010

Я потратил некоторое время на RubyCocoa, но что заставило меня взглянуть на Obj-C, так это то, что в итоге вся документация по Cocoa и другим фреймворкам была написана в синтаксисе Obj-C.Само по себе Obj-C не очень большой язык IMO, и он не должен занимать много времени, если у вас есть некоторый опыт работы с другим языком на основе C и ООП.Что довольно велико, так это то, что фрейм работает, Какао и т. Д. И, по крайней мере, с rubyCocoa вам все равно придется изучать фреймворки.Кроме того, мне трудно поверить, что такой язык сценариев, как Ruby, может дать такую ​​же производительность, как и скомпилированный язык Си.

0 голосов
/ 19 апреля 2010

Эй, я попробовал это и сдался, потому что, увидев, что это всего лишь замена ObjC, ObjC вдруг показался мне фантастическим языком. Я изучаю ObjC, и мне это нравится.

0 голосов
/ 19 апреля 2010

MacRuby - чей-то любимый проект. Если этот кто-то соберет компилятор, который выбрасывает собственные двоичные файлы из кода Ruby, то вполне вероятно, что он когда-нибудь получит некоторые успехи. Если они просто продолжат делать то, что делают сейчас, то нет, он останется нишевым продуктом до тех пор, пока кто-нибудь не уйдет или не будет уволен и не похоронит свою работу вместе с привязками Java Cocoa и WebObjects.

...