С удивлением для себя узнал, что Java приложения в Android-е работают на собственной (т.е. Google-овской) виртуальной машине – Dalvik VM. Главное отличие этой виртуальной машины от традиционных в том, что ее работа основана не на стеке (что является родным для Java от Sun), а на регистрах. Соответственно, Dalvik VM использует на Sun-овский байт-код для Java, а свой собственный: готовые class-файлы обрабатываются специальным инструментом и на выходе получаются dex-файлы. Это и есть байт код для Dalvik VM.
Но суть, собственно, не в этом. Дело в том, что недавно компания MIPS (один из крупнейших производителей микропроцессоров и прочего) анонсировала собственный вариант Dalvik VM под названием Dalvik Turbo VM. Этот Dalvik Turbo заточен под MIPS. И обеспечивает, по словам MIPS-овцев, ускорение в пять раз для т.н. real-world (надо понимать самых обычных, повседневных) Java-приложений.
Сдается мне, дело тут в том, что у исходной Dalvik VM не было JIT-компилятора для MIPS-ов, а был только интерпретатор байт-кода (что не удивительно, если учесть, что я слышу о продвижении Android-ов только на ARM-ах и, местами, на x86). Посему Java на Dalvik VM и MIPS-ах тормозила. MIPS-овцам это не понравилось и JIT для MIPS-ов они прикрутили. Получившемуся же результату дали громкое имя – Dalvik Turbo VM.
Зацепила меня эта новость. Во-первых, она холиварная ;) Отличная демонстрация к спорам о том, что Java не тормозит :)) Да, на некоторых платформах теперь уже не тормозит :)))
Во-вторых, проникновение Android-а на разные платформы располагает к тому, чтобы запастись попкорном и понаблюдать, что же будет дальше. Интересно и то, как Android будет соперничать с MS-овскими и другими платформами (вот, скажем, HP после покупки Palm-а может вывести на рынок производное от webOS). И то, как Java (JVM) будет бороться с .NET-ом. Вроде как Java (JVM) уже старая, а .NET пока молод и активно обрастает новыми плюшками. Но Java есть везде. И ее активно поддерживают. Тот же MIPS написал Dalvik Turbo именно для Java, а не для какого-нибудь Mono.
В-третьих, сдается мне, что мобильные платформы становятся очередным мейнстримом на моем трудовом веку. Сначала были десктопы под MS-DOS, OS/2 и Windows и программирование для персоналок. Потом пришло Web-программирование. Теперь вот приходят мобильные платформы (iPhone/iPad, Android-ы, MeeGo и пр.). Что не может не радовать, т.к. Web-программирование, на мой взгляд – это то еще занятие ;)
PS. Новость была найдена в рассказе о Linux-овых новинках на Computex 2010 на OpenNET.ru. Рекомендую туда заглянуть, там есть интересные новости и грядущих iPad killer-ах планшетах от самых разных производителей.
> Что не может не радовать, т.к. Web-программирование, на мой взгляд – это то еще занятие ;)
ОтветитьУдалитьЯ думаю Вы зря так расстраиваетесь ;). Думается мне ещё годика два-три, и веб-программирование (точнее, оно будет уже не совсем веб... надеюсь) останется относительно простым способом сидеть на всех стульях сразу, кхе-кхе, то есть, поддерживать не слишком требовательный продукт на всех платформах.
Потому что с некоторой долей уверенности можно сказать, что браузер... будет... у всех. Возможно даже иногда с интернетом. И.т.д. и.т.п. ещё несколько оговорок:).
Думаю, это будет уже совсем не то Web-программирование, что несколько лет назад.
ОтветитьУдалить