Я не использовал MacRuby, но сомневаюсь, что его можно использовать для разработки iPhone, потому что он построен поверх среды выполнения Mac OS X Objective-C и использует сборщик мусора Objective-C 2.0 (вместо того, чтобы использовать его своя). Хотя iPhone OS имеет Objective-C 2.0, в нем отсутствует сборщик мусора (вам все еще нужно использовать управляемую память в стиле retain
/ release
), поэтому я ожидаю, что MacRuby не будет работать из коробки.
Кроме того, MacRuby не будет полезен для разработки для App Store, поскольку использование интерпретаторов (кроме тех, которые поставляются Apple) является верным.
Порт iPhone для Ruby может работать на взломанном телефоне, но устройство имеет очень ограниченные ресурсы ОЗУ и ЦП, поэтому я не уверен, насколько успешным будет такой порт. Я ожидаю, что MRI слишком медленный и требует много памяти для iPhone, но один из альтернативных интерпретаторов Ruby мог бы работать хорошо - MacRuby с собственным GC, возможно.
Конечно, я вижу, что MacRuby имеет много преимуществ для разработки под Mac OS X. Вот некоторые вещи с моей головы:
- В качестве языка Ruby его приятно использовать. Блоки прекрасны. Он очень динамичен и имеет отличную поддержку метапрограммирования, что позволяет быстро создавать очень компактный, но все же читаемый код.
- Objective-C может быть достаточно высокого уровня, когда он является Objective, но может быть раздражающе низким уровнем, когда он является C. В Ruby меньше C-ness.
- ИМХО, Objective-C имеет очень странный синтаксис. Вы привыкаете к этому через некоторое время, но это пугает новичков. В Ruby гораздо более распространенный синтаксис, особенно если вы используете
foo.bar('baz')
вместо foo.bar 'baz'
.
- Objective-C использует заголовочные файлы. Меня раздражают прототипы метода cut'n'pasting между файлами
.h
и .m
. У Руби этого нет.