Delphi XE5 дает возможность создавать нативные приложения и для десктопа и мобильных платформ (пока что Android и iOs). Единый код, UI, все дела.
Но зачем мне для этого покупать Delphi, воскликнет искушенный читатель? Я возьму какой-нибудь бесплатный мобильный Javascript фреймворк (Cordova, PhoneGap и другие) и сделаю то же самое. Не спеши, читатель, отвечу ему я. Ведь Javascript может оказаться слиииииишком медленным.
И вот одна статья на эту тему. Только сегодня! Только на нашей арене! Javascript против нативного кода! Сравнение производительности и предсказании будущего! Статья опубликована на Хабре 8 августа 2013.
Почему веб-приложения на мобильных платформах работают медленно
Статья по ссылке реально большая. И я позволю себе скопировать сюда выводы.
Вот что следует помнить:
* в 2013 году JavaScript является слишком медленным, чтобы его можно было использовать на мобильных устройствах для создания приложений типа обработки фотографий и пр.:
— он в 5 раз медленнее нативного кода;
— он сравним с IE8;
— он медленнее, чем x86 C/C++, примерно в 50 раз;
— он медленнее, чем серверные Java/Ruby/Python/C# примерно в 10 раз, если программа выделяет не больше 35 Мб памяти и резко замедляется при дальнейшем выделении памяти;
* Наиболее реальный способ его разогнать — это увеличить производительность процессора до уровня десктопа. Возможно это и произойдет, но не в ближайшем будущем;
* Сам язык последнее время нисколько не ускорился и его разработчики утверждают, что при сохранении языка и API, производительность никогда не догонит нативный код;
* Сборщик мусора сильно тормозит при ограниченном количестве доступной памяти. Он ведет себя сильно хуже, чем на декстопах или серверах;
* Каждый мобильный разработчик, независимо от того — использует он сборку мусора или нет — тщательно продумывает работу с памятью;
* JavaScript в настоящий момент фундаментально против того, чтобы даже попробовать оценить расход памяти на мобильных устройствах;
* Даже если они захотят дать эту возможность, опыт подсказывает, что сделать это будет очень трудно;
* Есть надежда на asm.js, но он, скорее, напоминает C\C++, чем что-то динамическое типа JS.
чесно говоря и не знал раньше что на яваскрипте можно под андроид писать. думал это прерогатива чистого явы.
ОтветитьУдалитьи опять же а не проще взять чистую яву или руби под андроид?
Не под андроид, а под браузер.
УдалитьПриложения на яваскрипте под андроид по сути представляют собой мобильный броузер, в котором и выполняется встроенный JS-app. Для конечного пользователя выглядит как обычное приложение.
УдалитьЭто конечно верно, но надо смотреть под задачу. Я игры не пишу, мне скорость не нужна. Нужна стабильность. Надежность яваскриптового рантайма и распространенность веб-технологий предпочту скорей вместо ОС-нативной разработки (Java для Android) и уж тем более псевдо-нативной (процессор-нативной), которую предлагает EMB.
ОтветитьУдалитьЛично наблюдал на своем смарте ситуацию, когда после включения свапа, начинали нормально работать программы, которые до этого страшно тормозили либо вообще падали. Так что я согласен на все 100% с претензиями к сборщику мусора в оригинальной статье. И очень рад, что этого костыля нету в мобильной делфи.
ОтветитьУдалитьAleksey, спасибо за пост. Очень вовремя
ОтветитьУдалитьНа моем смартфоне также стоит програмное обеспечение которое написано именно на этом языке и глюков немного потому что все програмное обеспечение стоит на операционной системе Android. Так что все это еще зависит от ОС которая стоит на смарте.
ОтветитьУдалить