skiminok: (!int)
skiminok ([personal profile] skiminok) wrote2010-11-07 01:01 am

Когнитивный диссонанс мобильных платформ


Небольшой поток сознания.

После того, как я в целях эксперимента установил на свой HTC Touch Cruise на энное время поиграться Android, моя чувствительная душа разработчика ушла в полный когнитивный диссонанс, фрустрацию, шизофрению и аннигиляцию. Потому что эта платформа действительно прекрасна: удобная, быстрая, с интуитивно понятным и согласованным подходом к софту, с нормально заточенным под пальцы UI, и еще тоннами плюшек, плюшечек и тульских пряников. Фрустрацию создает набор факторов в придачу.

Во-первых, я последние три года (сознательная студенческая жизнь) программирую исключительно в стеке Microsoft. Однако в их последнее создание — Windows Phone 7 — я попросту не-ве-рю! Не верю, что на рынке займет достойное место это аляповатое создание, с безвкусными квадратными хабами, с неинтуитивной горизонтальной прокруткой и обрезкой в стиле "Мы не нашли другого способа показать пользователю, что справа еще что-то есть", с жесткой обрезкой нативных приложений (даже у вендоров руки по локоть кастрированы), с ненужной социнтеграцией, зато без многозадачности... в общем, вы уловили суть. Зато под него можно писать на Silverlight. Это, конечно, очень круто, я действительно люблю Silverlight, но виндофоновская система UI, общий вид элементов и идеология километрового скроллинга убивает напрочь все желание писать в ТАКОМ стиле приложения.

Во-вторых, что важнее: для нормальной разработки под Андроид нужен телефон на Андроиде. Любительские прошивки, портированные на левые девайсы, как показал мой опыт, имеют тенденцию в самый неподходящий момент внезапно умирать без предупреждения. А полагаться на один только эмулятор — глупо. Но, в силу того, что я много знаю, отчего нигде не работаю :) — купить еще один HTC не представляется возможным.

В-третьих, разработка под Андроид ведется на Java, которой я как бы классовый враг. Причем реальной основой нелюбви остается именно синтаксис языка и базовые библиотеки, ибо небазовые библиотеки — SDK, которое там очень продумано, ну а run-time вообще не касается обычной Java, приложения перекомпилируются в специальный андроидовский байткод, под их же виртуальную машину. MonoDroid еще пилится, и в любом случае будет платным. Нехорошо.

Но, с другой стороны, я прекрасно понимаю, куда ветер дует. Причем дует уже пару лет как, с момента появления первого iPhone. Вон и Вконтакте подал клич о поиске добровольца на Андроид-разработку, и конкурсы всякие везде объявляют... Да и самому хочется удобный нормальный телефон с полной свободой и горой функциональности. До сих пор идеальным вариантом в этом плане оставался Windows Mobile, несмотря на кучу его сопутствующих косяков. Теперь вектор сместился на новый идеал :) И я в тяжелых затруднениях...

[identity profile] odysseos.livejournal.com 2010-11-06 11:38 pm (UTC)(link)
Также будучи до недавнего времени идеологическим противником Java (будучи Delphi'стом с многолетним стажем) - на новой работе (на которую я пришел именно как Delphi'ст с перспективой перехода на .Net) - сам же вызвался написать мобильную версию выпускаемого компанией софта под Android (специализированного разработчика брать все равно не хотели) - и, что занятно, мне эту тему отдали. Чем я счас с удовольствием и занимаюсь :) Java оказалась вовсе не страшной.

[identity profile] alexey-rom.livejournal.com 2010-11-07 08:45 am (UTC)(link)
> В-третьих, разработка под Андроид ведется на Java, которой я как бы классовый враг. Причем реальной основой нелюбви остается именно синтаксис языка и базовые библиотеки

Scala?

[identity profile] sharpc.livejournal.com 2010-11-13 11:34 pm (UTC)(link)
+1

[identity profile] rub-aka.livejournal.com 2010-11-07 11:00 am (UTC)(link)
Как стоит заметить я туда же мечу. Друг купил телефон на WM, я купил на Андроиде, как думаете кто выиграл? Ответ очевиден. А рынок со временем все будет расти и расти в сторону Андроида, даже опережая айфоны и тем более ВМ с симбианом...
Пора учить Java :D

[identity profile] anton-irinev.livejournal.com 2010-11-07 11:03 am (UTC)(link)
Что такое базовые библиотеки джавы? Всё, что не SDK? Значит сторонние? Базовый != стандартный? Ты меня запутал своей терминологией.

[identity profile] skiminog.livejournal.com 2010-11-07 12:35 pm (UTC)(link)
Стандартная библиотека языка. "Фреймворк".

[identity profile] anton-irinev.livejournal.com 2010-11-07 01:04 pm (UTC)(link)
Ок. Я правильно понимаю, что андроидный байткод несовместим с вражеским и уже существующие java-библиотеки при разработке под android использовать нельзя? Тогда непонятно слово "перекомпиляция", что уже скомпилированное перегоняют в андроидный байткод?

[identity profile] skiminog.livejournal.com 2010-11-07 01:08 pm (UTC)(link)
Я неудачно выразился.
Что касается существующих third-party библиотек — насколько я понимаю, их можно разве что скомпилировать в байткод Dalvik из исходников, если таковые имеются в наличии.

[identity profile] anton-irinev.livejournal.com 2010-11-07 01:30 pm (UTC)(link)
Ну значит ещё не всё так плохо. Самая сильная сторона java - это open-source сообщество и огромное количество полезных библиотек и фреймворков. Сам по себе язык, конечно, убог.