КОТ++
Прикладное программирование
Системное программирование
Программирование микроконтроллеров

Мы наблюдаем общество, которое все больше зависит от машин, но при этом использует их все неэффективнее. (с) Дуглас Рашкофф

Поиск по тегам

Опубликовано
Комментарии 0

Как-то много раз передо мной мелькали различные статьи по поводу языка Haxe, описывали его достаточно красочно, и я очень сильно загорелся попробовать что это такое собственно. Для тех кто совсем не в курсе: Haxe позволяет транслировать свой код в код других языков (php, javascript, flash, c++, java, c#). Тем самым достигается мультиплатформенность. На словах, конечно, очень всё красиво и замечательно. Но на деле всё несколько иначе.

Чтобы плотно познакомиться с этим языком, я решил, что возьму свой старый flash проект и попробую переделать на Haxe. Почему flash? Да потому, что синтаксис Haxe максимально близок к синтаксису ActionScript 3, так заявлено разработчиками, на деле же есть множество маленьких несостыковок, из-за которых пришлось конкретно промучаться при переделывании проекта. Обрадовало, что для Haxe есть очень хорошая среда HaxeDevelop, это практически копия среды FlashDevelop, за которой я создал несколько игр, так что было очень приятно увидеть уже знакомый интерфейс.

И так, я беру проект Hot Jihod и начинаю пытаться собрать его под Haxe. Также очень круто, что под Haxe есть библиотека OpenFL, которая практически повторяет Flash, что существенно упрощает работу по сборке проекта в Haxe. Но на деле я промучался с жутким синтаксисом языка Haxe, меня очень расстроили циклы, синтаксис циклов for очень стал далёк от синтаксиса циклов for в C/C++, я считаю, что такие циклы for как в Haxe очень понятны и удобны новичкам в программировании, а для тех кто выучил C/C++ такой синтаксис только раздражает.

for (var i: int = 0; i < rest.length; i++) //AS3 синтаксис 
for (i in 0…rest.length) //синтаксис Haxe, 1-ый вариант
for (item in rest) //синтаксис Haxe, 2-ой вариант

Кто-то скажет: «что в Haxe то лучше!». Возможно в каком-то смысле так и есть. Но мне не по душе такие циклы, да и к тому же пришлось ходить по всему коду и исправлять циклы на Haxe вариант. И ещё на самом деле очень много чего исправлять пришлось, по сути обещанный ActionScript подобный синтаксис я не особо получил.

Но и самое главное, что в итоге, когда проект собрался, то игра не заработала, она не заработала ни под одну платформу. Вывод графики напоминал то, что программа неправильно обрабатывает шейдеры. Хотя под некоторые платформы был какой-то проблеск того, что вроде какая-то там графика пытается нарисоваться, но например под HTML5 вообще пусто, чёрный экран. А я то ведь уже замечтался, что у меня в руках хороший инструмент, который почти Flash, и с помощью него я смогу делать игры и под Windows и под HTML5, используя по сути всё тот же Flash. В общем я проверил отрисовку через GPU, правильные ли остались шейдеры от прежней программы, потратил на это несколько часов. В итоге пришёл к выводу, что эта OpenFL очень сырая, отрисовка через GPU содержит много ошибок и не повторяет того как работает Flash.

Но может быть Haxe применим в чём-то другом? Я попробовал поискать вакансии на hh.ru с ключевым словом Haxe, но он нашёл ровно 0 результатов. Мой вывод: Haxe и библиотеки под него работают достаточно криво, сфера использования этого языка очень ограничена (если вообще существует), изучать и копаться в нём нет смысла, так как он никому не нужен, а для самостоятельного использования не даёт нужного результата.

Теги , ,
Автор