Все новости от 15 июля 2005 г. Идея «написал однажды, работает везде» — не для сотовых телефонов
Когда появилось ПО Sun Microsystems Java для сотовых телефонов, предполагалось, что оно позволит разработчикам писать программы, работающие в любой трубке.
Спустя половину десятилетия так называемый профиль мобильных информационных устройств (MIDP) используется для загрузки другого ПО в половине из 1,4 млрд телефонов. Но написать программу, которая работала бы в любой трубке, по-прежнему нельзя.
Как ни странно, это побочный результат успеха Java на рынке сотовых телефонов. Оттачивание деталей такого ПО, как MIDP, требует времени, а у производителей сотовых телефонов и поставщиков услуг нет желания ждать, когда они могут продавать по 700 млн трубок в год.
Вместо этого Nokia, Motorola и другие производители трубок внесли в MIDP собственные поправки.
Это можно понять — им приходится удовлетворять текущие потребности рынка, но такие действия порочат идею MIDP «написал однажды, работает везде». Они ведут к более высоким ценам и увеличению времени разработки из-за необходимости создавать множество версий одного и того же ПО и влияют почти на каждый аспект индустрии сотовых телефонов, от стоимости трубок до цены загружаемой мелодии звонка.
«Фрагментация — серьезная преграда, которая для разработчиков, обслуживающих этот рынок, может означать разницу между успехом и провалом», — пишет в статье, опубликованной в отраслевом издании Java World, главный технолог Tira Wireless Аллен Ло.
На недавней конференции JavaOne в Сан-Франциско разработчики язвили: «То, что должно было стать оазисом, превратилось в зыбучие пески». Громче всех выступали представители Nokia, которая продает почти треть всех сотовых телефонов в мире, и почти все они содержат Java.
«Дефрагментация остается серьезной проблемой, — сказал главный технолог Nokia Пертти Коронен, выступая перед разработчиками Java. — Нам необходимо ослабить эффект фрагментации, так как для современных массовых устройств совместимость жизненно важна. Мы должны упростить стандарт и использовать открытые, справедливые и предсказуемые условия лицензирования технологии».
Директор Sun Эрик Чу, сыгравший большую роль в разработке MIDP, заявил, что несмотря на гигантские успехи индустрии сотовых телефонов за последнюю пару лет, для инженеров Sun становится очевидным: конечная цель — «написал однажды, работает везде» — может оказаться недостижимой просто из-за слишком большого разнообразия сотовых телефонов.
Усилия Sun по решению проблем фрагментации пока недостаточны. Почти каждый год компания изобретает новый способ борьбы. Последняя попытка включает предложенную несколько месяцев назад программу сертификации ПО для сотовых телефонов Java Verified, призванную гарантировать его работоспособность на аппаратах разных компаний.
Она радикально отличается от предыдущих программ, когда приложения должны были тестироваться каждым производителем трубок на отсутствие ошибок и соответствие определенному уровню качества. Однако об эффективности новой программы судить пока рано.
Большие надежды, противоречивые результаты
Стандарт MIDP, основанный на Java 2 Micro Edition (J2ME), разработан Sun совместно с двадцатью с лишним производителей сотовых телефонов. Целью было обеспечить индустрию сотовых телефонов стандартом для загрузки ПО в аппараты, что должно было позволить единственной версии любой программы, будь то трехмерная игра или программа обмена сообщениями, работать на любом телефоне.
Однако быстро возникли проблемы фрагментации. Первоначальная версия MIDP имела ограниченный набор встроенных функций, так что если производитель хотел, например, добавить поддержку 3D-игр, ему приходилось делать это самостоятельно. В результате, если 3D-игра предназначена, скажем, для телефонов Motorola, то она не будет нормально работать в трубках Nokia.
Тем временем производители аппаратуры активно выпускали сотовые телефоны, подобные снежинкам: ни одной одинаковой пары. Одни с большим экраном и мелкими кнопками, другие наоборот. Производителям приложений приходится учитывать все нюансы, иначе они рискуют существенно ограничить рынок для своих продуктов.
По существу, это означает, что для каждого телефона разработчики должны вносить в свое ПО что-то новое. А создание множества версий программ выливается в лишние месяцы работы.
«На разработку игрового приложения может уйти до девяти месяцев, — жалуется вице-президент IBM по маркетингу продуктов для операторов связи Крейг Хейман. — Но ведь это срок жизни сотового телефона на рынке».
Sun, Nokia и другие все еще пытаются решить проблему. Сейчас используется вторая версия MIDP, в которой есть почти все, чего только могут пожелать потребители, так что потребность в нестандартном ПО уменьшилась, говорит Чу.
Есть также намерение стандартизовать способы взаимодействия разных функций сотовых телефонов. По замыслу производителей трубок и поставщиков услуг, поддерживающих эту идею, проект стандарта Mobile Service Architecture (MSA) должен служить дополнением к MIDP.
Однако на скорое решение проблем рассчитывать не стоит.
«На сегодняшний день в MIDP можно видеть проблему, а можно — невероятный прогресс, — говорит Джейсон Гусман, вице-президент калифорнийской компании Seven, специализирующейся на беспроводной передаче сообщений, которая конкурирует с Research in Motion, Good Technology и другими. — Замечательно, что теперь, благодаря Java, можно работать с телефоном за $99. Но до „написал однажды, работает везде” еще далеко».
Предыдущие публикации:
|
|
| Terol 15 Jul 2005 5:39 PM |
На самом деле, даже если отбросить библиотеки вендоров, к сожалению один и тот же код пусть написанный для generic phone на MIDP не будет работать одинаково. Всё это побуждает разработчиков мобильных приложений (а самые требовательные и как самые популярные - игрушки ) - писать кучу версий одной игры под разные модели телефонов. |
|
| t-Axist 15 Jul 2005 5:45 PM |
Да блин, а где вообще работает эта идея: "Write Once, Run Anywhere"? В Enterprise серверах? Не-а! На мобильниках? Не-а! На десктопе? Вообще должна, но фактически работает так, что кроме IntelliJ IDEA никаких более-менее приемлимых аппликух на жабе не написано! Что же мы имеем? А ничего, пук, реклямный слоган! |
|
| Anal-It 15 Jul 2005 5:48 PM |
2t-Axist: Правильно понимаешь обстановку, зачот! |
|
| caustic 15 Jul 2005 6:16 PM |
жопа, ты и тут вылез? неугомонный. я бы даже сказал, отчаянный. |
|
| Anal-It 15 Jul 2005 6:19 PM |
2caustic: Да ты тоже не отдыхаешь, я посмотрю |
|
| caustic 15 Jul 2005 6:20 PM |
У меня последний рабочий день перед отпуском. Развлекаюсь. |
|
| Anal-It 15 Jul 2005 6:24 PM |
Так и я тоже развлекаюсь, хотя отпуск в сентябре. |
|
| caustic 15 Jul 2005 6:53 PM |
Я бы сказал, что Java приложения переносимы лучше, чем считают злопыхатели, но хуже, чем представляют маркетологи Sun. Приложения, в разработке которых я участвовал, работают и под венду, и на MacOS, и на Linux/Solaris/AIX. Чаще всего портирование проходит без проблем, иногда возникают мелкие легко разрешимые проблемы, типа поменять обратные слэши на прямые в путях к файлам. Ну а иногда, как у меня было в случае с AIXом, изза какой то специфичной фичи приходится повозится. В этом случае дело было в конфигурации AIXa. Типа это серверная система и графический контекст отсутсвует. А репорты, использующие графические библиотеки, делать надо. Вот и настраивалои, как могли. C мобильниками связываться не пробовал, тут сказать нечего. Опытные товарисчи говорили, что проблем больше. |
|
| earl 15 Jul 2005 7:34 PM |
Я вот несколько дней назад пробовал обычный тетрис и diamondmine2 (рулезная игрушка еще на PC была, вроде Rocford называлась). Так они пошли на Nokia 3220 и Simens C65 без проблем. |
|
| Чр 15 Jul 2005 7:51 PM |
что знаит просто рекалмы слогнах? ведь все же хоть кака никак совестимость есть. А понлко совеместимо даже однго проиводителя не добъешся у одного мобильника экран 100x100 у дргуо 130x130. так что проблемы есть конечно. НО сделать УНЕВЕРСАЛЬНЫМ И эфФективным одновременно ЕЩЕ НИКоГДА НЕ ПОлучалось. это как с персловым выбирите только два пункта из трех 1.быстро 2. дешево 3.надежно. насчт MIDP можно сказать так. 1.красиво 2.удобно 3.быстро
|
|
| Автор 15 Jul 2005 10:01 PM |
Гонят все, плохому танцору всегда че-то мешает. Все мои программы (http://www.mjsoft.nm.ru) работают без проблем на ВСЕХ мобилах, т.к. используют только MIDP1.0. Нефиг использовать новомодные 3D API или какое-нибудь проприетарное Nokia API. Основная пробема "фрагментации" - разный размер экрана, нужно рисовать свои картинки для каждого размера, чтобы все хорошо смотрелось. |
|
| Black Bat 15 Jul 2005 11:40 PM |
_Замечательно, что теперь, благодаря Java, можно работать с телефоном за $99_ ага, а без явы - можно было бы за $20 нафиг ява на телефоне!!! |
|
| Temp - temptemp.com 16 Jul 2005 1:34 AM |
Пишите на BREW и будет - "Write Once, Run Anywhere" |
|
| - 16 Jul 2005 10:44 PM |
Black Bat >> ... работать с телефоном за $99_ Black Bat >> ага, а без явы - можно было бы за $20 не знаю как работать, а звонить уже дешевле - за 5 ойро и жаба с фотоаппаратом не мешаются
|
|
| Alex 16 Jul 2005 11:45 PM |
to t-Axist: >а где вообще работает эта идея: "Write Once, Run Anywhere"? На любой платформе, где реализована java. >В Enterprise? Да. Крупная Workflow система личной многой развертывалась на Windows, Linux, Solaris и везде работала одинаково хорошо. >На мобильниках? Если писать под определенный стандарт - да. >На десктопе? Да >что кроме IntelliJ IDEA никаких более-менее приемлимых аппликух на жабе не написано Что же мы имеем? Лучший torrent клиент -Azureus. Лучшего RSS reader' - RSSOwl. Одна из лучщих IDE - Eclipse Мне нравится easyPhoto и Qnext (imho лучший IM) Постепенно переходя на Linux, удобно использовать уже привычный софт и там и там.
|
|
| zenith 17 Jul 2005 6:38 AM |
2Alex >На любой платформе, где реализована java. Тем не менее, надо обеспечивать совместимость платформ именно в коде приложения, типа проверок вроде если вынь, то это, если unix, то это. Такое положение вещей никак не назовёшь "Write Once, Run Anywhere". Да, в случае с PC - всё довольно просто. Но в случае с мобильниками - не совсем. Об этом и идёт речь в статье.
|
|
| Alex 17 Jul 2005 9:20 AM |
to zenith re:>Тем не менее, надо обеспечивать совместимость платформ именно в коде приложения, типа проверок вроде если вынь, то это, если unix, то это. Например? |
|
| Igor - igorhotmail.com 17 Jul 2005 10:35 AM |
Реально мешает только различные размеры экрана и то только для тех приложений, которые имеют много графики. Да и то это решаемый вопрос при использовании сторонних препроцессовор для Java. А впечатление от статьи - автор сам не писал и строчки на Java под MIDP & CLDC
|
|
| С грехом пополам 18 Jul 2005 3:56 PM |
2 t-Axist: чуствуется великий опыт работы с Java платформой.. великий и абсолютно бесполезный и кривой.. потому жаль, Вас. 2 zenith: Советую почитать Thinking in Java, а потом не давать дурацких примеров которые отражают убогое понимание ООП в Java. Для примера могу сказать так, практически каждое приложение, в разработке которого я участвовал имело бОльшая часть pure java которая переносилась куда угодно без чущественных проблем и маленькая native которая переписывалась под каждую платформу (Linux, MacOS 8/9/10, win32 и т.д. Как несложно догадаться, pure java с помощью элементарного знание ООП отлично без изменений работала с самыми разными native и портирование приносило массу удовлетворения разработчикам и заказчикам. Про мобильные телефоны не знаю. Но имея хороший и успешный опыт работы с java платформой под разными операционками и устройствами очень быстро начинаю доверять словам "используйте MIDP 1.0 и все будет совместимо". несогласным - учить мат. часть. |
|
| sm4 - post314mail.ru 18 Jul 2005 4:39 PM |
Да не надо тут копья ломать и представлять Java как первый (и последний) платформенно независимый язык. Первая попытка освободиться от платформы была реализована в языке ...- ассемблер. Потом более решительная в языках высокого уровня - фортран, бейсик, алгол. А уж как мечтали освободиться в языке С , даже мобильную операционку написали. Действительно трудозатраты по переносу на другие платформы снизились , но не до нуля. И уж в первой же реализации java пообещали - теперь уж всё , точно освободились. Да что-то всё никак. Может сама идея "освобождения " порочна ???? |
|
| Dzianis Koshkin - k5yandex.ru 18 Jul 2005 6:15 PM |
Идея освобождения светлая :) А идея быстринько написать программу под текущий телефон, это порочно. Да пару месяцов экономится, зато потом каждый раз придется для нового телефона программу переписывать. Ну это же потом :) Скажем так - "Для выживание на рынке светлые идеи самоубйственны" |
|
| iZEN - izenmail.ru 18 Jul 2005 10:14 PM |
* Больше всего меня позабавило в этом обсуждении то, что caustic'у пришлось переписывать код и заменять слэши на бэкслэши в путях к файлам. Учить матчасть не пробовали? public static final String FILESEPARATOR = System.getProperty("file.separator"); в качестве константы для ВСЕГО приложения уже не помогает? * На самом деле в J2ME проблемы есть. Но эти проблемы лежат в АППАРАТНОЙ плоскости и программной реализации виртуальных машин производителей телефонов, а не на прикладных программистах. Хотя последние с большей долей вероятности игнорируют стандарты "безопасного" программирования и клепают несовместимые между собой версии ПО под разные платформы. Не нужно закрывать глаза на это. Телефоны различаются не только размерами экранов, но и числом и расположением кнопок, быстродействием центрального процессора (у кого-то 220МГц, а у кого-то всего 30МГц - разница по быстродействию в ДЕСЯТЬ раз). Реализация необходимых для работы приложения API, полностью соответствующих спецификациям JSR-n (http://jcp.org) тоже далека от завершённости. Каждый производитель долгое время трактовал спецификации по-своему, выпускал проприетарные API, внешне похожие на стандарт (Nokia UI API, Siemens PIM и FileConnection API), но (не)работающие по-другому на разных телефонах даже одного производителя. Пришёл MIDP2.0 и стало лучше. Проблемы остались в другой плоскости - плоскости реализации необходимых системных API, которые физически не может написать или переписать прикладной программист. Ну не может на телефоне запуститься игра, которая работает с интерфейсом Bluetooth, и который не поддерживается самим телефоном или для этого нет необходимого API для доступа к нему из J2ME-приложений (SE T610/T630). Телефоны и платформы настолько РАЗНЫЕ, что пришлось пойти на фрагментацию технологии и как-то управлять этой стихией, создав чётко определённые спецификации - JSR'ы для каждой функциональной возможности. Чем универсальный телефон, тем больше он поддерживает прикладных API, тем большее число J2ME-приложений будет на нём работать! |
|
| Iskanderus - iskanderbgpu.ru 24 Aug 2005 5:08 PM |
Со статьёй согласен. Чистая правда. Java для PC - мощная вешь (есть косяки - но исправимые). Програмирование для телефонов на Java - обидное извращение. Обидное , потому что хочется (ибо опыт богатый), и потому что недоделана Java на конкретных телефонах (например Sony Ericsson доделает конкретные вещи, если забашляешь в долларах - наглый идиотизм). Нужно, чтобы делали телефоны под стандарт, а не стандарт под телефоны. Может тогда получится? |
|
|