Будет ли Apple включать среду выполнения Mono Touch в каждый iPhone?[закрыто]

StackOverflow https://stackoverflow.com/questions/1450436

  •  11-09-2019
  •  | 
  •  

Вопрос

Мне кажется хорошей идеей для Apple провести переговоры с Novell и включить среду выполнения Mono Touch (конечно, только среду выполнения) в каждый iPhone и iPod Touch.Возможно, даже сделать это «однократной установкой», которая автоматически загружается из App Store при первой загрузке сборки приложения с помощью Mono Touch, что делает загрузку каждого последующего приложения Mono Touch намного проще (без среды выполнения).

Это будет похоже на добавление Bootcamp в OS X:разработчикам C# будет легче присоединиться к партии, но это не будет означать, что все эти разработчики будут придерживаться C#...Что убедило меня купить Mac, так это Bootcamp: я решил, что всегда смогу установить Windows, если мне не нравится OS X (а аппаратное обеспечение мне понравилось, так что проблем нет).Спустя 6 месяцев я использую OS X постоянно…

Будут ли при этом какие-либо технические проблемы?Я вижу только преимущества для всех сторон и ни одного недостатка ни для кого (за исключением, может быть, нескольких несчастных сотрудников Apple, которым придется тестировать среду выполнения Mono Touch, прежде чем поставлять ее в комплект):

  • Novell побеждает, потому что Mono Touch становится намного более жизнеспособным (приложения Mono Touch внезапно становятся намного легче)
  • Разработчики выигрывают, потому что теперь в арсенале инструментов появился еще один инструмент.
  • Многим разработчикам C# это будет очень интересно.
  • Apple выигрывает, потому что это привлечет к платформе еще больше внимания, увеличит доход от гонораров разработчиков, увеличит количество потенциальных отличных приложений и т. д.
  • Пользователи выигрывают, потому что разные приложения используют меньше места, поскольку на их устройствах накапливаются копии одной и той же среды выполнения.

Возникнет ли серьезное техническое препятствие при объединении Mono Touch с iPhone OS?

Редактировать:Изменил заголовок с «Должен» на «Будет ли Apple объединять среду выполнения?». Я думаю, что консенсус в отношении прогнозирования этого очень много значит для тех, кто рассматривает возможность перехода на Mono Touch.

Это было полезно?

Решение

Нет, но и у Apple нет веской причины это делать.iPhone не особо вредит приложениям, в процессе разработки есть гораздо более серьезные проблемы, чем отсутствие Mono (например, перегруженные работой рецензенты приложений, выдающие странные отказы), и есть другие альтернативные языки, о которых Apple, скорее всего, позаботится в первую очередь. , такие как MacRuby и Python.Apple поддерживает оба этих языка для написания приложений Cocoa на Mac, поэтому я ожидаю, что они будут поддерживаться на iPhone раньше, чем такой необычный язык, как C#.

(Обратите внимание: я не совсем отвечаю на вопрос, является ли Apple должен комплект MonoTouch, что немного субъективно.Я просто объясняю силы, действующие на Apple и влияющие на то, сделают они это или нет.)

Другие советы

  1. Насколько я понимаю среду выполнения mono на iphone (которая может быть неверной), так это то, что на самом деле это не среда выполнения, как на других платформах - весь код (включая mono) компилируется в статический код.
  2. Это версия 1.0, и она еще не доказала свою эффективность.Вероятно, будет много версий, и предварительно загрузить все будет хлопотно.
  3. Это увеличивает затраты для разработчиков с 99 долларов до как минимум 498 долларов, поэтому внедрение может быть ограничено.
  4. Они уже создают отличную среду разработки и набор библиотек.
  5. Java и Flash недоступны — зачем им сосредотачиваться на чем-то гораздо менее устоявшемся.

Я надеюсь, что все будет хорошо, но Apple не стоит думать об уменьшении количества загрузок для значительно менее 1% приложений.

Есть очень веская причина не делать этого, потому что это приведет к фрагментации разработчиков.Кто-то изучит Objective-C, кто-то — Mono, и если бы Apple поддерживала Mono, им пришлось бы поддерживать оба.

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

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

В соответствии с Лицензионное соглашение программы разработчиков iPhone для будущего iPhone OS 4 SDK, MonoTouch фактически является нарушением и недопустим:

3.3.1 - Приложения могут использовать документированные API только в способе, предписанном Apple, и не должны использовать или вызывать какие -либо частные API. Приложения должны быть изначально записаны в Objective-C, C, C ++ или JavaScript, выполняемые двигателем iPhone OS Webkit, и только код, записанный в C, C ++, и Objective-C может компилировать и напрямую ссылаться на документированные API (Например, приложения, которые связаны с документированными API с помощью промежуточного перевода или уровня совместимости или инструмента, запрещены).

Поскольку C# не является одним из этих языков, он не будет разрешен.

Объединение фреймворка с ОС имеет серьезные последствия.В этом случае ответственность за поддержание безопасности и актуальности Mono Touch переложится непосредственно на плечи Apple.То есть любые проблемы с Mono Touch отразятся на Apple гораздо хуже, чем на Novell, а любые обновления инфраструктуры потребуют значительного тестирования, чтобы гарантировать, что существующие приложения Mono Touch не сломаются.Я уверен, что Apple не хочет и не нуждается в такой ответственности.

Что еще более важно, у Apple, похоже, нет проблем с привлечением разработчиков на платформу iPhone.И это помогает разработчикам перейти на огромную платформу OS X.Я не могу себе представить, что Apple хочет что-то изменить прямо сейчас.

Помимо того, что сказал Чак, Apple придется убедиться, что все в MonoTouch работает и не вызывает сбоев, которые могли бы выставить Apple в плохом свете.Это означало бы, что Apple придется тщательно тестировать и обеспечивать контроль качества не только MonoTouch сейчас, но и каждого последующего выпуска MonoTouch.

Даже если добавить поддержку MonoTouch тривиально, сделать это не так-то просто. верно.

BootCamp, вероятно, также был гигантским инженерным усилием по разработке и контролю качества для Apple, но оно того стоило, чтобы переманить пользователей Windows (гигантский рынок) на Mac.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top