Как стать автором
Обновить

Android vs Maemo: сравнение двух платформ

Время на прочтение 6 мин
Количество просмотров 7K
Автор оригинала: Pavlo Zahozhenko aka buru

Технически, обе платформы работают на ядре Linux. Однако, Maemo — это настоящий дистрибутив Linux, основанный на Debian, в то время как Android всего лишь ядро с некоторыми надстройками и программами (виртуальная машина Davlik и база данных SQLite). Все приложения, написанные под Android, запускаются при помощи виртуальной машины Davlik (сильно оптимизированная и модифицированная JVM). Я попробовал проанализировать преимущества обеих платформ с точки зрения разработчика, а также их стратегию развития на текущий момент. Если у вас нет времени читать весь текст в деталях, то вы можете ознакомиться с краткими выводами в конце каждой подтемы.


Android vs Maemo с точки зрения разработчика ПО



Разработка.



SDK Maemo существует только для Linux платформ. Для меня это не проблема (так как Linux — мой выбор в качестве десктопной ОС), но это может стать существенной проблемой для многих разработчиков. SDK просто отлично работает на Debian или на дистрибутивах, базирующихся на нём (например, Ubuntu). Maemo также основан на Debian, поэтому пакет программ для кросскомпиляции Scratchbox легко используется SDK для компиляции на обеих платформах (x86 или ARM).
Приложения Maemo разработаны под GTK+ с использованием фреймворка Hildon. Естесственно, С — основной язык для разработки приложений. Конечно же другие языки (такие как C++, Java, C# и т.п.) точно также могут быть использованы благодаря тому, что GTK имеет к ним различные привязки (bindings). Однако, большинство приложений разрабатываются на чистом C, главным образом из-за ограничений производительности, которые характерны для мобильных устройств. На текущий момент, сам GTK+ немного архаичен, и не смотря на то, что Hildon направлен на работу с сенсорными устройствами, ещё много работы приходится делать через GTK+ и старый добрый C. Таким образом, удобство разработки на порядок ниже чем iPhone SDK, Android SDK, или Palm WebOS Mojo SDK. Есть шанс, что с выходом Maemo 6 (кодовое имя «Harmattan») такое положение дел изменится, так как в состав системы войдут библиотеки Qt и она станет официальным фреймворком для разработки приложений в Maemo. Но это случится только
ближе к 2011 году, а пока удобство разработки под Maemo уступает тому же под Android.
UPDATE: Как было отмечено в комментариях (не здесь, а у автора в блоге, прим. пер.), Qt уже должен использоваться для разработки под Maemo. Современное направление — это разработка кросс-платформенных приложений, которые будут работать и на Maemo, и на Symbian OS(точно также как на Windows/Mac OS X/Linux, хотя может быть не практично использовать похожий пользовательский интерфейс под десктопы и мобильные устройства).Чем раньше Qt станет официальным фреймворком для разработки приложений под Maemo, тем лучше.

Android SDK доступен для Windows, Linux, и Mac OS X. В его функции входит простое создание интерфейсов с помощью XML (DSL), лёгкая интернационализация строк, хранение приложений в пределах базы данных SQLite, управление фоновыми процессами и т.д. Другими словами именно так должно выглядеть современное SDK для разработки приложений. Единственный недостаток заключается в том, что все приложения работают под Java, а для некоторых разработчиков Java — синоним медлительности (хотя она не такая медленная на Android, так как Davlik оптимизирован на запуск именно под этой ОС). Именно для таких разработчиков существует возможность использовать нативный Android SDK, но его возможности очень ограниченны, особенно доступ к оборудованию.

Портирование существующих приложений



В этой области Maemo имеет огромное преимущество над Android, так как она полностью основана на Debian. С помощью пакета кросскомпиляции Scratchbox множество приложений с открытым исходным кодом могут быть скомпилированы под ARM архитектуру. Многие консольные утилиты могут быть портированы просто с помощью перекомпиляции, для приложений с графическим интерфейсом обычно требуется переписать UI, но в любом случае намного легче портировать приложение с открытым исходным кодом, чем писать с нуля. Некоторые популярные программы уже портированы на Maemо: MPlayer, Pidgin, Gnumeric, Abiword.
Портировать x86 приложение на Android так же сложно, как и на любую другую платформу: весь интерфейс и логику необходимо переписать с нуля.

Вывод: разработка проще под Android, в то время как на Maemo проще портировать существующее приложение.

Стратегия развития.



Обе платформы нацелены на рынок смартфонов, мобильных интернет-устройств и нетбуков. Maemo поддерживатся только Nokia, в то время как Android поддерживается OHA (Open Handset Alliance), в чей состав входят такие игроки как: Google, Samsung, LG, Motorola, HTC, Acer и другие. Nokia может быть крупнейшим производителем телефонов и смартфонов на планете (в первоисточнике написано именно так, но по другим данным Nokia уже является крупнейшим производителем смартфонов и телефонов, прим. пер.), но противостоять им она не в силах. Таким образом, очевидно, что в ближайшем будущем число устройств, работающих на Android намного превысит число устройств на Maemo. К концу 2009 года появилось целых 18 Android устройств, а Nokia выпустила всего 4 Maemo устройства (Nokia N770, N800, N810, N900). Даже если N900, новые интернет-планшеты и нетбуки будут продаваться лучше Android девайсов, то общее число Android'ов будет расти быстрее, чем Maemo. Чем шире распостранена платформа, тем больший интерес она предоставляет для разработчиков. Главные конкуренты Nokia — Samsung и LG — будут использовать Android как конкурентное преимущество и бросят все свои усилия именно на эту платформу. Motorolla пытается спасти себя с помощью MOTOCLIQ (агрессивная ценовая политика) и MOTOBLUR (ПО для Android), и, надо сказать, они имеют шансы на успех! При таком раскладе, Maemo становится основным конкурентоспособным преимуществом Nokia, поэтому компания должна бросить все силы на неё или уступить место другому лидеру. Жёсткая конкуренция обеспечивает красочное и яркое будущее для обеих платформ. Другой вопрос в том, какая из них окончательно выиграет, и это самое интересное. Потенциальным победителем является Android: у него будет большая потребительская база в будущем, больше разработчиков пишут свои приложения под Android, он поддерживается мощнейшими корпорациями, среди которых присутствует Google. Тем не менее, существует сила, способная поддерживать «на плаву» Maemo, а в долгосрочной перспективе возможно сделать её лидером: сообщество open-source. Вы можете возразить: «Но ведь обе платформы имеют открытый исходный код!». Это не важно. Важно, что Maemo может использовать усилия всего open-source сообщества чтобы закончить то, что может занимать много человеко-лет. Android может использовать только небольшое число open-source проектов, все приложения должны быть переписаны с нуля. Вопреки этому, любой open-source проект, работающий на Linux, теоретически может быть запущен на Maemo (поскольку его относительно легко портировать). Maemo надо использовать это в своих интересах чтобы не проиграть Android. Таким образом, разработчики ядра Maemo должны сделать это преимущество ещё больше путём облегчения процесса портирования
open-source приложений на эту платформу.

Другое преимущество Maemo в том, что она больше Android'а подходит для относительно крупных устройств — интернет-планшетов и нетбуков. Она была разработана для интернет-планшетов и уже доказала свою эффективность в этой области. Будучи основанной на Debian, Maemo вероятно будет пригодна на нетбуках с сенсорным экраном. Android хорош на смартфонах, но нам только предстоит увидеть, будет ли его функционала достаточно для нетбуков. Есть шанс, что Android займёт рынок смартфонов, в то время как Maemo будет преобладать на рынке нетбуков и интернет-планшетов.

Вывод: на текущий момент Android имеет более выгодную позицию: в ближайшем будущем эта платформа будет более распостранена, чем Maemo, также под неё будет больше разработчиков (разработка удобнее + больше аудитория). Тем не менее, Maemo может выиграть благодаря open-source сообществу, используя его огромную работу (в благих целях, прим. пер.). Другое преимущество Maemo в том, что она больше подходит для интернет-планшетов и нетбуков.


PS: Не важно, Android или Maemo, в любом случае победит Linux :)

PPS: Вы можете предпочитать Android, Maemo или любую другую мобильную ОС, идеальная ситуация для рынка смартфонов — это конкуренция между несколькими ведущим платформами, а не доминирование какой-либо одной. Обе платформы являются хорошими операционными системами, так что пусть они обе доминируют на рынке в равновесии, не убивая друг друга, ведь только тогда будут появляться всё новые и новые инновации.

Update: Для дополнительных идей и мнений по теме, пожалуйста, прочитатайте комментарии на Reddit и Maemo Talk. Суммируя мнения и подводя итоги, я ниже перечислил некоторые преимущества каждой платформы:

update: Как заметил хабраюзер sommer, возможно аргументы, которые сейчас вы прочитаете, не верны. Они являются субъективным мнением автора оригинального текста.
Преимущества Android:
  • Бинарная совместимость между релизами. Технически это совместимость байт-кода. Maemo упускает этот момент, что означает лишнюю «головную боль» для разработчиков с каждым новым релизом.
  • Android имеет большие возможности на рынке среднеценовых смартфонов, где он будет конкурировать с Symbian OS.

Преимущества Maemo:
  • Более простая разработка игр, особенно кросс-платформенная разработка.
  • Qt может (и должен!) быть использован для кросс-платформенной разработки под обе платформы (Maemo и Symbian OS), что означает разработку с помощью современного фреймворка для использования огромной потребительской базы.
Теги:
Хабы:
+53
Комментарии 182
Комментарии Комментарии 182

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн