Альтернативные языки с MonoTouch
-
19-09-2019 - |
Вопрос
MonoTouch всегда упоминается вместе с C#.Действительно ли фреймворк и набор инструментов ограничены C# или другие языки CLR, такие как IronRuby и F#, тоже работают?
Решение
Это не ограничивается C#, но есть несколько предостережений при запуске других языков:
- динамическая генерация кода (эмитирование отражения) невозможна на iPhone, поэтому IronPython и IronRuby не будут работать
- если компилятор генерирует код, который зависит от API, которых нет в MonoTouch, например от библиотеки времени выполнения VB.NET, эти API/библиотеки необходимо будет портировать.
- Компилятор должен иметь возможность нацеливаться на специальную платформу/corlib - хотя основные эффекты MonoTouch такие же, как у silverlight, поэтому любой компилятор, ориентированный на SL, должен работать «из коробки».Я уверен, что вы могли бы выполнить тривиальное перенаправление ссылок на сборки с помощью такого инструмента, как Cecil.
Известно, что Delphi Prism работает — их надстройка MonoDevelop даже поддерживает MonoTouch.Другие статически скомпилированные языки .NET, как правило, достаточно легко портировать.
Другие советы
Novell несколько расплывчато высказывается по этому поводу: они говорят: «MonoTouch — это комплект разработки программного обеспечения для Mac OS X, который позволяет использовать языки программирования .NET».
Кажется, что простые программы F #, такие как Hello-world, работают, см. этот пост: http://jamesmoorecode.blogspot.com/2009/09/f-running-on-iphone.html
А поскольку IronRuby построен на основе DLR и поскольку Novell не поддерживает DLR для MonoTouch, IronRuby не должен работать.