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

Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать. (с) Николай Безруков

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

Опубликовано
Комментарии 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 и библиотеки под него работают достаточно криво, сфера использования этого языка очень ограничена (если вообще существует), изучать и копаться в нём нет смысла, так как он никому не нужен, а для самостоятельного использования не даёт нужного результата.

Теги , ,
Автор