Спасибо за статью, к сожалению не могу голосовать.
Если, честно заинтересовался, так как приходилось использовать ActionScript. Но есть ряд вопросов, один из которых доступные среды разработки, а второй производительность.
«Родная» среда разработки — FlashDevelop. Полная поддержка автодополнения через вызов компилятора, которая на данный момент ещё и работает довольно быстро даже для больших проектов. Из минусов — нет дебаггера. Производительность, как и сказал SerafimArts, зависит от целевой платформы. Практика показала, что код для C++ не очень эффективный (слишком много обвязки и допущений — например, int-ы могут хранить и null — отсюда невозможность использования простого типа данных), а вот код для других платформ очень даже неплох.
За исключением JS. Помнится была демка с «мячиками» прямо в каталоге с примерами и для отрисовки каждого мячика использовался отдельный канвас, а поворот и всякие издевательства осуществлялись средствами CSS.
Но это было около года назад, как сейчас дело обстоит — не в курсе, может быть что-то поменялось.
Вы сейчас говорите про библиотеку OpenFL — да, использование её для HTML5-игр пока не оправдано, вы правы. Я лично склоняюсь к использованию easeljs, например.
Увы, любовался хаксом довольно продолжительное время назад и своего рода полюбил, по крайней мере синтаксис — он великолепен, даже для человека (меня), приверженца динамических языков со слабой типизацией. Решил подождать когда компиль станет код покачественнее генерировать и попробовать запилить какую-нибудь игрушку (именно по этому скорее всего OpenFL тогда смотрел).
Вариант 1. Не использовать OpenFL. Для canvas в самом деле есть очень много фреймворков, а haxe, как я понял, может работать с ними всеми.
Вариант 2. Залезть в OpenFL и переписать. Не зря же он Open, в самом деле.
Лично для сейчас меня фаворитом является VSCode.
Со списком самых популярных можно ознакомиться тут: haxe.org/documentation/introduction/editors-and-ides.html
По поводу генерации С++. Теперь используется как-раз простой тип.
И при попытки присвоение null к int haxe выдаст ошибку.
Да, так и есть, но это довольно сомнительный плюс. Я слабо представляю себе проект, в котором возможность в любой момент сменить целевую платформу важнее, чем обилие и качество готовых библиотек под конкретный язык — а под Haxe их, смею предположить, минимум на порядок меньше чем под PHP или JS.
Думаю, что для ряда случаев вы правы, однако могу привести контпример: пару лет назад написали с другом ряд онлайн-игр на haxe с компиляцией в php, а через некоторое время перекомпилировали их в neko. В результате смогли снизить расходы, избавившись от половины серверов.
Решил не нарушать традицию: в англоязычной документации везде используется «compiler». Кроме того, haxe всё же имеет встроенную поддержку компиляции в байт-код машины nekovm.
Так ведь изначально он и был только компилятором. Первой целью была именно компиляция в байт-код swf. И только вторым добавился js, в который уже нужно было транслировать. И до сих пор swf — один из самых взрослых таргетов, так что не nekovm единым.)
Haxe: конвертируем исходный код