Мог MacRuby / HotCocoa вытесняют потребность знать Objective C?

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

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

Имеет место это теперь, или в вероятном будущем, что каждый сможет сделать Какао приложениями GUI существенной и первоклассной природы с MacRuby / HotCocoa один при игнорировании Objective C полностью?

(Редактирование: Рабочий стол Mac, не iPhone)

8
задан xyz 19 April 2010 в 01:37
поделиться

6 ответов

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

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

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

5
ответ дан 5 December 2019 в 08:51
поделиться

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

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

1
ответ дан 5 December 2019 в 08:51
поделиться

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

1
ответ дан 5 December 2019 в 08:51
поделиться

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

0
ответ дан 5 December 2019 в 08:51
поделиться

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

-1
ответ дан 5 December 2019 в 08:51
поделиться

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

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

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

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

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

13
ответ дан 5 December 2019 в 08:51
поделиться