В принципе уже все в курсе пункта 3.3.1 в новом девелоперском соглашении Apple, которое запрещает для разработки софта для iPhone/iPad использовать сторонние продукты кроме Xcode. Собственно основная причина введения этого пункта – отстранение Flash CS5 от возможности написания приложений. Основные причины которые были названы:
- Закрытость Flash
- Непомерная для мобильных девайсов жадность к ресурсам
Однако почему-то до сих пор никто не вспомнил почему происходит проблема со вторым пунктом…
А я вот попробую обьяснить. Все на деле очень просто.
- Flash по своей структуре очень сильно похож на Java – такая же монстрообразная виртуальная машина для исполнения небольшого бинарного кода. Точные цифры щас не приведу но идея такая что для того чтобы исполнить код размером 10 килобайт надо поднять виртуальную машину размером метров под 15.
- Flash кроссплатформенный. Что автоматически означает отсутствие нормальной оптимизации. По определению. Ибо быть не может.
- Flash не может быть оптимизирован в принципе.
А теперь главное объяснение почему оптимизация не возможна:
Вы когда-нибудь пробовали закрутить (вставить) маааааааленький винтик в наручные часы с помощью кувалды?
Думаю нет. А вот теперь представьте себе что Adobe именно это и делает. Точнее не она сама.
Все дело в том, что Flash писан не кем-нибудь, а индусско-пакистанскими программистами. А стиль ихней работы и ихнего кода знаком всем кто хотя бы раз сталкивался с зарубежными заказчиками. Для людей непосвященных – да, это именно “забивание маленького винтика в наручные часы с помощью кувалды”. Они в принципе не знают что такое компактный код и что такое оптимизация.
Так что до тех пор, пока Adobe не выгонит весь девелоперский отдел индусов, не наймет нормальных программеров и не перепишет весь Flash с нуля – “кина не будет”.
Original Message