Взгляд на HAXE, как на платформу для разработки веб приложений

В процессе работы над нашим приложением, некоторые, ненужные сложности в разработке большого приложения заставили задуматься в целесообразности использования php. Собственно поэтому я посматриваю на языки-фреймворки, на которые максимально безболезненно сможет перейти команда php программистов.

Сразу скажу что php язык хороший, и написать на нем можно всё, но не всё можно написать одинаково хорошо, быстро, и без лишних проблем в перспективе развития проекта. Т.е. для домашней странички-форума-блога, — да, шикарное решение, а для разработки сложного корпоративного софта, с большим количеством частоизменяющихся бизнес требований, веб приложений под нагрузками, как мне кажется, можно найти более подходящий инструмент. Конечно, идеально использование java/.net, но поскольку не все проекты у нас большие, а технологии эти довольно тяжелы для «подъёма» в эту сторону пока смотреть не хочется. В этом цвете мне и приглянулся haxe. С одной стороны — шикарный язык, в лучших традициях java/c#, с другой, — не перегруженный, простой для понимания и освоения php программистами. Главная идея haxe, — это различные платформы на выходе: c++, neko, javascript, php, flash, что дает массу гибкости и при хорошо организованной архитектуре позволит безболезненно переводить уже написанное приложение с платформы на платформу, в зависимости от нужд. Со списком преимуществ haxe можно познакомится здесь. Это в теории, на практике, конечно же нужно что-то делать с платформозависимыми библиотеками, либо писать заведомо ограниченные приложения.

Ну чтож, перейдем к самому интересному, — бенчмаркам. Ничего особо сложного тестировать я не хотел, написал простой тест, который включает в себя создание локальных переменных, простейшие операции, циклы, сравнения. Это то что мы чаще всего пишем в коде. Мне было интересно сравинить скорость выполнения чистого php, разницы в скорости вызовов функций перед статическими методами класса, разницы выполнения в консоли и через модуль apache, haxe кода скомпилированного в php и производительности nekovm.

Вот что получилось:

10000 циклов 20000 циклов
pure php console 0.724 1.433
pure php apache 0.747 1.708
php with class console 0.867 1.733
php with class apache 0.862 1.731
hexephp (-debug) 4.91 9.816
haxephp 0.887 1.73
nekovm (mod_neko2) 0.013 0.097
pure neko 0.011 0.027

Выводы: скомпилированный php код не намного уступает обычному php коду. Вполне очевидно что код nekovm выполняется быстрее чем php, благодаря строгой типизации и прочим фичам. Разница в выполнении из консоли или через апач видна только в nekovm, из-за того что скорость выполнения значительно выше чем php. Несмотря на то что haxe платформа довольно молодая, перспективы у неё огромные. Возможность относительно легко мигрировать приложеня с php в nekovm мне кажется пока усложнена отсутствием высокопроизводительного движка шаблонов (в php с этим отлично справляется pure php), но уже сейчас стоит обратить внимание на такие возможности как SPOD (объектная работа с базой данных), многопоточное программирование, интеграция с кодом на C

Исходный код тестов

Site Footer

Sliding Sidebar

About Me

About Me

For whom this blog for?

For those who are interested in modern Internet technologies, IT business, startups, management, quality control, personal effectiveness, motivation. Here I write about what is interesting, about problems I faced and solutions I found. I hope it will be interesting to you either.

What motivates me to write?

The desire to improve, to study deeper topics that interest me. Find people with similar problems and tasks, together look for ways out and solutions.

Feel free to contact if you have anything to say to me

Old Flash site with my artistic works and misuc.