25 October 2011

Смутное время

Недавно поковырял xap файл с игрой Angry Birds для Windows Phone 7. Все по-честному, никаких следов native кода, все было старательно переписано под .NET и тщательно обфусцировано (смейтесь, но многие себя такой ерундой даже не утруждают).


Честно говоря, меня, как программиста, нынешняя картина разработки под мобильные платформы несказанно печалит. Ключевые игроки на этом рынке -- Apple, Google, Microsoft -- прикладывают все силы, чтобы разыграть перед ошалевшими девелоперами сцену по легендарной крыловской басне о сбежавших из зоопарка лебеде, раке и щуке. 

Последствия такой политики очевидны -- кроссплатформенность приложения обходится очень дорого, так как если у вас есть, например, решение для iOS, то его перенос под WP7 фактически означает, что весь код надо полностью переписывать заново. И ладно, если просто один переписать, это фактически означает, что вы начинаете поддерживать две независимые ветки продукта и должны каким-то образом решать вопрос их более-менее симметричного развития. А если сюда добавить еще и тот факт, что на рынке очень мало универсальных специалистов широкого профиля, которые знают все языки и все платформы, картина вырисовывается не очень веселая. 

В случае Microsoft ситуация вообще складывается парадоксальная. 
Если бы они смогли обеспечить компиляцию C/C++ кода для своей платформы и поддержали бы OpenGL ES, то огромное число проектов было бы портировано под WP7 просто потому, что это было бы очень не сложно сделать. А так -- с одной стороны сделано все, чтобы перенос приложения для своей платформы превращался в тихий ужас, а с другой, тратятся огромные бюджеты на то, чтобы заинтересовать создателей успешных проектов в перенос их детищ на "молодую, но перспективную" платформу. 

Понятно, если платформа все-таки выстрелит и станет такой же сверхуспешной, как большой Windows, то такая вот ограниченная способность приложений к миграции начнет работать на Microsoft. Только вот дожить еще до этих времен надо...

Если бы я сегодня оказался у руля компании, которая собирается покрывать своими приложениями все существующие мобильные платформы, я бы определенно инвестировал много-много денег в разработку специальной среды, обладающей сверхпроводимостью переносимостью. Некий фреймворк, виртуальная машина + набор библиотек, ну а собственно код приложения пишется на каком-то своем языке, который компилируется под эту самую виртуальную машину. 
Для не игровых приложений, мне кажется, вопрос с этим ужасным зоопарком в области разработки, очень соблазнительно вообще закрывать какими-то web решениями. 

Как-то так. Похоже, я снова съехал в тему, о которой писал в сериале про мобильные приложения

***

Вообще отсекание любого C/C++ кода это слишком серьезное ограничение. В мире существует бесчисленное множество библиотек на этих языках, которые покрывают практически все мыслимые и немыслимые области применения, от интерпретаторов и компиляторов языков программирования, веб движков, IP телефонии, игровых движков, работы с мультимедиа форматами, алгоритмами в области математики, криптографии, сжатия данных. 
Ну как без всего этого?...

А еще меня очень печалит модная нынче философия: любое приложение это враг. Его надо садить в тесную клетку, бить кнутом и кормить сырым мясом, просовывая его вилами через толстые прутья клетки. Никакой плотной интеграции в систему, крайне ограниченный доступ к пользовательским данным, никакого доступа к файловой системе, работа в фоне -- исключительно в смирительной рубашке... Что это за фигня? Лично я вырос на десктопах, где на приложения всегда смотрели несколько под другим углом и выжимали из них максимум. 



Что стоит за этой философией? 

Боязнь вирусов и прочих зловредов? Так ведь дело в том, что если кто-то пожелает целенаправленно найти лазейку из клетки (aka песочницы), он обязательно это сделает. Дыры в безопасности браузеров обнаруживается чуть ли не еженедельно, и это все на фоне рассказов  их создателей о новых супер-пупер технологиях, которые повышают удой на 50%, и держат ваши вещи всегда белоснежными. 
Или добавьте сюда тот же джейлбрейк под iOS. Даже PS3 сломали. 

Может все эти ограничения это такая защита от дурака-пользователя, средний уровень которого с каждым годом катастрофически падает, по причине того, что информационные технологии затрагивают все новые и новые пласты населения? 
Или это борьба с варезом и разлочкой устройств? 
Или может это способ цензуры, когда только создатель платформы в праве решать каким программам и функциями в их ОС быть, а каким -- нет? 

Или все сразу?... Не знаю, в любом случае, лично меня этот тренд печалит просто до невозможности. Будем рассказывать внукам, как занимались сексом без презервативов и запускали программы с неизвестно кем принесенных пятидюймовых дискет. 

No comments:

Post a Comment