`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Игорь Дериев

Android без Java

+810
голосов

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

Между тем свет клином на Java не сошелся. Google якобы при проектировании Android рассматривала и вариант использования .NET, но довольно быстро от него отказалась. Возможно, из-за откровенного антагонизма с Microsoft. Хотя нынешняя история с Java/Sun/Oracle прекрасно демонстрирует относительность подобных понятий и отношений в бизнесе. Тем не менее, возможность такого решения можно считать принципиально доказанной: компания Xamarin портировала код Android на С#, так что прикладной уровень формируется не виртуальной машиной Java (Dalvik), а .NET, точнее Mono.

Xamarin – довольно интересная компания. Она создана в 2011 г. группой ключевых разработчиков Mono во главе с Мигелем де Икаса, и кроме того, что по-прежнему является главным участником этого проекта и держателем коммерческих лицензий на Mono, выпустила два продукта: Mono for Android и MonoTouch (для iOS). Основная идея состоит в том, чтобы обеспечить возможность кроссплатформенной разработки для Android, iOS, Windows Phone.

Кроме того, в Xamarin считают Dalvik достаточно сырой и недостаточно производительной, т.к. Java, в отличие от C#/.NET вообще тянет за собой большой груз совместимости, да и просто в силу сравнительной молодости реализации от Google. И вот в голову разработчикам пришла, как они сами говорят, безумная идея портировать Android на C#. Подобные задачи (а речь идет о более миллиона строк кода) вообще нетривиальны, а в данном случае нужно было учесть бурное развитие Android. Поэтому для этих целей был доработан Java-в-C# транслятор Sharpen, что и позволило начать проект над Android 2.х, а потом спокойно переключиться на версию 4.0. В результате, сегодня XobotOS («Android на Mono») доступна всем желающим и код работоспособен (хотя понятно, речь идет о прототипе).

Что имеем в результате? Во-первых, в отличие от Java, C# и .NET (CLI) стандартизованы ISO, а Microsoft официально пообещала не иметь претензий к тем, кто будет их использовать для каких бы то ни было целей. Т.е. ситуация как сейчас с Oracle исключена. Во-вторых, в некоторых важных моментах Mono действительно оказывается эффективнее Dalvik. Вот оценки производительности при работе с базовыми типами данных:

Android без Java

Вопрос: что дальше. Xamarin вряд ли будет сама заниматься XobotOS, это расходится с ее текущими целями (и, видимо, возможностями). Хотя, благодаря этому проекту компания наработала ряд решений, которые, в частности, позволят ей минимизировать участие Dalvik в работе Mono for Android и, конечно, была бы заинтересована в его дальнейшем развитии. Но может быть кто-то рискнет подхватить знамя – безумные идеи иногда оказываются весьма плодотворными. Во всяком случае, Мигель де Икаcа выразил некую надежду: «And who knows, maybe Google will thank us some day», хотя и поставил после этой фразы смайлик :)

+810
голосов

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT