Apple, Flash и Adobe
IT мир последнюю неделю полнится флеймом на тему Apple и Adobe. Если кто не следит за процессом, поясню — очередная версия iPhone OS так и не собралась поддерживать Flash, при этом в очередной редакции соглашения разработчика специально внесен пункт об обязательном использовании стандартных средств разработки
Мы, собственно, уже обсуждали в последнем
Главный пункт, который, видимо, кажется вполне приемлемым разработчикам, но который задел меня сильнее всего, вот:
Чем возможности аппаратуры HTC Hero отличаются от iPhone? А от Nokia N900? Только прошу не сравнивать операционки, размеры экранов или наличие клавиатуры. Я прошу задаться вопросом «Что может делать iPhone такого, чего технически не мог бы сделать телефон на базе Android?». Правильный ответ — возможности аппаратуры идентичны.
А раз так, то каждый разработчик, создавший приложение для iPhone (например), просто обязан подумать о выпуске его на других мобильных платформах с минимальными телодвижениями.
Это же совершенно ясно! Идеальный вариант для разработчика — написать приложение, тыкнуть кнопку «получить версии для разных устройств», и счастливо зарабатывать на результате. Любые различия платформ порождают массу проблем с разработкой и поддержкой кода! Только представьте, что вам приходится переписывать вашу игру с Actionscript на
С++ , Java,Objective-C … а потом ещё и сопровождать все четыре версии кода, параллельно улучшая, исправляя ошибкии т. д. Поэтому индустрия разработки ПО всегда поощряла создание инструментов для быстрого переноса приложений с одной платформы на другую с минимальными доработками. Примеров — масса: Java, Mono, OpenGL, Qt, HTML, CSS, Javascript… этот список можно продолжать очень долго.
Что мы видим в процитированном отрывке? Я вижу простую вещь — желание разработчика сделать поменьше, а получить побольше. Я это желание вполне понимаю, но одобрить не могу. Идея разработчика «не сравнивать операционки, размеры экранов или наличие клавиатуры» вообще представляется крайне странной — предлагается не учитывать при разработке приложения аппаратные особенности или стандартный интерфейс ОС? Поправьте меня, но ведь в результате мы получим приложение, которое будет работать под Android, iPhoneOS, Symbian, Windows Mobile — и ни в одной из систем пользователи приложения не увидят привычного для указанной системы интерфейса. Я видел такое у Opera Mini и мне кажется весьма символичным, что новая версия Opera Mini под Android — это не кроссплатформенная
Индустрия ПО, конечно, всегда
Повторю еще раз главную мысль — идея написать приложение один раз и просто нажатием кнопки получать версии для разных систем означает, что вы получите приложение, которое одинаково плохо работает на разных системах. Если разработчиков это устраивает, то я рад, что Apple в этой ситуации больше думает об интересах пользователей.