Как стать автором
Обновить

Комментарии 8

Очень медленное развитие. За 2018 год сделали 5 превью 4.х линейки — на macos без инсталлера и через homebrew собрать было невозможно — ocaml ругался на зависимости (сейчас возможно пофикшено). Теоретически интересная штука, на практике — полумертвое.
К сожалению, язык двигается лишь благодаря нескольким людям, которые, на сколько знаю, работают над ним в свободное время. Сам довольно много труда вложил в создание библиотек для haxe, но это капля в море того, что нужно сделать, чтобы языком можно было безболезненно пользоваться. Haxe пытается объять необъятное — быть обёрткой над кучей языков и их библиотек, которые сами по себе постоянно изменяются. Как результат — непомерное количество необходимой работы по поддержанию всего в актуальном состоянии.
Быть оберткой, это лишь одно из применений языка. Ничто не мешает, к примеру, сгенерировать общую кодовую базу с API и использовать ее с разными языками.
С функцией быть оберткой над языками кодогенерации язык справляется на 100%. И лучше чем тот же TypeScript и прочие решения.
Языком можно пользоваться вполне безболезненно. Если у вас что-то не получилось, возможно вы что-то не дополняли. Спрашивайте у других (haxe.ru или t.me/haxe_ru) и не спешите с выводами.
Для сборки используйте ocaml более старой версии (обновления ocaml не означают, что Haxe плохой, так с любыми проектами случается).
Как по мне технология развивается огромными шагами. Появляется более мощная поддержка со стороны IDE. Библиотеки, движки, редакторы.
Обертки над конкретными платформами писать достаточно просто и быстро.
>Ничто не мешает, к примеру, сгенерировать общую кодовую базу с API и использовать ее с разными языками.
Да, если вы пишете чистый алгоритм, не зависящий от внешних библиотек. Часто ли такое бывает? К сожалению, на haxe очень мало (по моим меркам) качественных библиотек. Т.е. много чего есть, но часто либо не удобно использовать, либо уже устарело и т.п.

>С функцией быть оберткой над языками кодогенерации язык справляется на 100%.
Помню весёлый случай, когда потратил несколько часов, пытаясь понять, почему не работает правильно мой код (проект был очень большой). Оказалось, haxe не сгенерил ";" в конце одной из строк при генерации в js :))

>и не спешите с выводами
Да, видимо, за три года активного использования я чего-то не понял…

>Обертки над конкретными платформами писать достаточно просто и быстро.
Согласен, довольно быстро. Проблема только в том, что на большом проекте в конце концов, только этим и начинаешь заниматься. Писать полезный код некогда, ибо библиотеки нужно обновлять :))
Да, если вы пишете чистый алгоритм, не зависящий от внешних библиотек. Часто ли такое бывает? К сожалению, на haxe очень мало (по моим меркам) качественных библиотек. Т.е. много чего есть, но часто либо не удобно использовать, либо уже устарело и т.п.

Я придерживаюсь MVC, и в моей практике логика абсолютно чиста и полностью отделена от платформы. У меня в основном так и бывает. А для остального кода есть стандартный минимальный набор функций, которого хватает для многих вещей. По мимо него есть очень качественные либы. К примеру, tink_json разбирает и валидирует json по описанной структуре. Это позволяет сэкономить невероятно много времени и отсеять ошибки связанные с некорректными данными от сервере или в конфигурационном файле. Можно пойти дальше и использовать HxBit, запаковывать данные в бинарном виде на nodejs, c++, java или другом сервере и распаковывать их на стороне клиента (js, c++, java и т. д.).
Данные в таком виде обрабатываются значительно быстрее и уменьшают трафик. И это решения только для обмена данными. Если интересует что-то еще спрашивайте.

Помню весёлый случай, когда потратил несколько часов, пытаясь понять, почему не работает правильно мой код (проект был очень большой). Оказалось, haxe не сгенерил ";" в конце одной из строк при генерации в js :))

А что за код вы писали? Вы использовали untyped __js__()? Как и в случае с ассемблерными в ставками в C++ с таким кодом нужно быть максимально внимательным, так очень легко «выстрелить себе в ногу». И это никак не может является недостатком С++ или Haxe.

Да, видимо, за три года активного использования я чего-то не понял...

Дело не только в активном использовании. Местами нужно суметь отказаться от подходов применяемых в других языках, а не пытаться «заставить» язык работать как в них (это не только Haxe касается).

Согласен, довольно быстро. Проблема только в том, что на большом проекте в конце концов, только этим и начинаешь заниматься. Писать полезный код некогда, ибо библиотеки нужно обновлять :))

Это какие библиотеки настолько активно изменяются?
Кстати, в случае с C# можно подключать dll файлы.
А в случае d.ts можно сгенерировать extern файлы (многие npm имеют их в наличии), правда некоторые правки им понадобятся.
Многие вещи активно поддерживаются сообществом: hxelectron, pixi-haxe
>Я придерживаюсь MVC… tink_json разбирает и валидирует json…
Это многое объясняет.

>Если интересует что-то еще спрашивайте.
Обязательно! :))

>А что за код вы писали?
Описание проектов есть в моих статьях, здесь, на Хабре. Два самых крупных проекта — социальная сеть и анимационный редактор.

>Вы использовали untyped __js__()
Нет, проблема была не в untyped. Всё, на что я наткнулся в своё время (в смысле проблем с компилятором и стандартной библиотекой) есть на баг трекере (27 issues).

>Это какие библиотеки настолько активно изменяются?
Тут я, каюсь, преувеличил. :) Помню только последние крупные, которыми занимался — treejs (каждые ~3 месяца) и babylonjs (~каждые 5 месяцев).
«Современный язык программирования Haxe хорошо известен в определенных кругах, но многие из читающих данный материал возможно никогда о нем и не слышали.»

Благодаря дружелюбному хакс комьюнити, которое всегда скажет, — «зачем тебе понятные уроки и статьи по хакс? Мозгов, что ли у тебя нет?». Или на худой вопрос «Ну ладно, задавай вопрос чётки и конкретный». И толкнёт разработчика в тысячи и один видеоурок на ютубе по юнити. И в чатики месенджеров по юнити, где народ в 10000й раз терпеливо объясняет новичкам как заставить вращать 3д объект по клику.
Зря вы так, комьюнити вполне дружелюбное.
На haxe.org/manual/introduction.html все хорошо объяснено. Но увы он доступен только на английском. В этом заключена некоторая проблема. Поскольку люди в чате ожидают, что человек задающий вопрос, ознакомлен с этим минимумом информации. А так же с основами программирования.
Человеку начинающему с нуля и не владеющего английским, действительно будет сложно разобраться. А если он в добавок не владеет терминологией и базовыми знаниями IT, помочь почти нереально.
Тут остается отправлять в самостоятельное обучение этим основам. Поскольку чат все-таки специализирован на самом языке, а не на основах программирования.
А еще у кого-то мог быть не самый удачный день и ответ мог быть в грубой форме (я против этого, нужно оставаться человеком в любой ситуации) и не нужно сразу все комьюнити по одному диалогу определять.
Кстати, если вы хотите использовать Haxe в месте с юнити, вам разумеется нужно изучить юнити. И если вас отправили на его изучения для использования с Haxe, то сделали все верно.
Вопросы тоже старайтесь задавать максимально понятно, люди все занятые и на угадывание чужой проблемы как правило, времени нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории