Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×
Software engineer
  • Что такое Haxe и почему он может быть вам интересен

    Верно. HaxeDevelop — это его форк. Пока там отличий практически нет, но в дальнейшем HaxeDevelop планируют сделать кроссплатформенным.

    Підтримав: minodvesP Vasya
  • Что такое Haxe и почему он может быть вам интересен

    IDE для Haxe — это HaxeDevelop, но только под Windows. Вот тут есть примеры возможностей:
    Редактирование: haxedevelop.org/editing.html
    Кодогенерация: haxedevelop.org/code-generation.html
    Для JS разработки есть еще минифер для Css, на лету компилирует Less, Sass.Тут детальнее: haxedevelop.org/language.html

    Для других редакторов есть плагины:
    haxedevelop.org/other-haxe-editors.html

    А что именно разочаровало? Может я смогу пролить свет на какие-то моменты.

    PS. Есть еще такие интересные вещи:
    github.com/...​heckstyle/haxe-checkstyle
    bitbucket.org/yar3333/haxe-refactor

  • Что такое Haxe и почему он может быть вам интересен

    Приведенный JS — сгенерированный JS ES5 из Haxe, а не руками написанный мною. Babel делает тоже самое.
    Поддержка генерации ES6 будет добавлена в Haxe в следующей версии (во всяком случае так планируется).

    Підтримали: Bohdan Shulha, minodvesP Vasya
  • Что такое Haxe и почему он может быть вам интересен

    Як заміну ні, не зовсім, бо реакт — це фреймворк, а Haxe — це інструмент для написання фреймворків (мова + компілятор + бібліотека классів для всіх платформ).
    Тож з одного боку так, бо можна написати свій реакт, проте це буде важче, ніж просто взяти react.

    На данний момент як доповнення — легко, оскільки Haxe дуже добре інтегрується з JS, то його можна використовувати саме з React Native напряму. Хтось вже, навіть, зробив біндінги:
    github.com/...​e-react/haxe-react-native

    Я саме займаюсь фреймворком, який заміняє мені реакт і який написаний за допомогою Haxe. Трохи згодом я віддам його в опенсорс і обов’язково напишу статтю про це на DOU.

  • Что такое Haxe и почему он может быть вам интересен

    Якщо мова про live reloading, то саме для JS можна користуватись якимись NodeJS модулями, наприклад watchify. Якщо мова про щось інше, то розшифруйте абревіатуру :)

  • Что такое Haxe и почему он может быть вам интересен

    Этими примерами демонстрируются некоторые базовые возможности Haxe по оптимизации кода на каждой платформе, не более. Не вижу смысла усложнять примеры в данном контексте.
    У меня есть идея интересного, более сложного примера под JS, но это тянет на отдельную статью. Надеюсь, напишу её когда-то.

    Підтримав: Владимир Кожаев
  • Что такое Haxe и почему он может быть вам интересен

    Я как раз в теле статьи описал свой опыт применения Haxe вне игр. Мобильное приложение с нативным UI. Оно еще в стадии разработки, а не продакшена, так что пока без ссылки на стор.
    Скриншот с андроида: i.imgur.com/ILLzV50.png
    Практически аналогично выглядит под iOS.

    Підтримав: Denys Poltorak
  • Что такое Haxe и почему он может быть вам интересен

    Чуть ниже я скидывал скриншот с использованием Qt:
    i.imgur.com/Tqn42LB.png
    Есть еще биндинги к wxWidgets, но не мои.

    Но в целом, да. Это проблема неширокой известности Haxe — отсутствуют биндинги для многих полезных вещей.

    Підтримали: minodvesP Vasya, anonymous
  • Что такое Haxe и почему он может быть вам интересен

    Я нигде не говорил, что сгенерированный С++ будет быстрее вручную написанного.
    Я говорил только то, что он дает вменяемую производительность.
    Дело ведь не только в производительности и скорости, потому что в 95% софта такого рода оптимизации не нужны вообще.
    Но даже если сгенерированный С++ будет не сильно обходить JVM по тестам, это все равно не отменяет того факта, что ты можешь запустить сгенерированный С++ на консолях, где джавы нет, например. Даже на QNX, где джава если и заработает, то это будет pain in the ass. Ты можешь общаться напрямую к С++ библиотеками, там, где для джавы нужен будет JNI. Ты можешь написать руками оптимизированный С++ бекенд для высоконагруженной задачи, а логику отдать Haxe. Применений на самом деле великое множество.

  • Что такое Haxe и почему он может быть вам интересен

    Звучит как челлендж и хорошая тема для статьи ;)

    Підтримав: Denys Poltorak
  • Что такое Haxe и почему он может быть вам интересен

    Я не хорчу сказать, что С++ когда-то умрет, но лоу-левел постепенно уходит на второй план. Haxe, как раз таки, дает возможность писать под С++, не прибегая к низкоуровневому программированию (если его можно так называть в данном контексте).
    С++ программисты бородаты и суровы, если они пишут на С++ и другие языки их не интересуют впринципе, то переходить на Haxe смысла особо то и нет, действительно. Лучше продолжать писать оптимизированный, ручной код.
    Но такой подход с автогенерацией особенно выгоден как раз таки тем, кто не хочет тратить десяток лет на глубокое изучение С++. И получать при этом, вменяемую нативную производительность, а не фантики, мимикрирующие под натив, а-ля Electron. Используя при этом мощный язык, к слову говоря.
    Если разделять эти две группы специалистов, то атосгенерированный С++ стает не таким уж страшным делом :)

  • Что такое Haxe и почему он может быть вам интересен

    Как я и писал в самом начале статьи, изначально Haxe начали использовать в основном для игр. Т.к. сама по себе парадигма трансляции кода, повзоляет запускать игру сразу на всех современных платформах. Это изначально поставило цель перед авторами делать высокопроизводительный инструмент. С++ таргет, как раз, один из самых востребованных в этой области, потому, его развитие не прекращается.
    Из реальной жизни, я могу привести примеры работы с графикой, т.к. и сам пришел к Haxe через игры.
    PBR рендер:
    i.imgur.com/jfuUfU4.png
    Игра, которая делается ради фана:
    i.imgur.com/LAfxDd8.gif
    Мой пример коннекта Haxe с Qt:
    i.imgur.com/Tqn42LB.png
    Нет скриншотов, но я так же успешно пользуюсь С++ библиотеками Assimp, ImGui, Bullet physics вместе с кодом на Haxe.

    Постараюсь раскрыть эту тему в будущих статьях и уделить особое внимание С++ таргету.

  • Что такое Haxe и почему он может быть вам интересен

    Отвечая сразу на вопрос — да, регулярно дебажу и профилирую студией. Стоит сказать, что в случае чего, Haxe позволяет сопостовлять строку кода в сгенерированном С++ со строкой в исходниках. То есть, если что-то идет не так, вы сможете знать, в каком месте это происходит на стороне Haxe. Хотя специфические ситуации бывают, ведь мы говорим о С++, где и вручную написанный код может вести себя странно, если писать его недостаточно внимательно.

    С++ один из самых сложных таргетов в силу своей специфики. Что есть, то есть, код на выходе получается сложнее, чем с JS и менее производительный чем вручную написанный. Однако, Haxe развивается в этой области и с каждым новым релизом сгенерированный С++ стает чище, целостней и производительней. Есть даже свой дебаггер, но с той же VS студией не сравнится, конечно. В любом случае, если говорить о десктопных либо мобильных приложениях, С++ на выходе даст вменяемую производительность. В данном контексте, я сравнивал Java со сгенерированным C++ для игр под Android, разница более чем ощутима.

    Я попробую описать С++ таргет подробнее, расскажу о нюансах работы с ним в будущих статьях, если они будут, конечно.

    Підтримали: minodvesP Vasya, anonymous
  • Что такое Haxe и почему он может быть вам интересен

    Это ведь очень простые примеры, статья призвана только рассказать о том, что такое Haxe.
    Но в сравнении, он значительно мощнее, как язык, чем JS.
    Если я буду продолжать писать о Haxe, то постараюсь раскрыть побольше нюансов, приведу более сложные примеры. Может напишу программу, которая будет работать под всеми мажорными платформами.

    Підтримав: anonymous
  • Муки выбора ЯП

    Сейчас такое время, что знать одного языка недостаточно, имхо. Иначе не поспеешь за поездом.
    Более того, опытному программисту неважно, на каком языке писать: стоит ему лишь почитать немного про синтаксис, как можно начинать с ним работать.
    Я это к тому, что неважно, какой ты выберешь язык. Он все равно не будет твоим единственным, если ты продолжишь развиваться как программист.

    Задай себе вопрос по-другому: что я хочу, для начала, сделать? Исходя из этого, выбирай язык.
    Хочешь веб приложение? Попробуй начать с JS.
    Что-то из софта под Windows? Попробуй C# (или Qt, но там C++, зато не только Windows)
    Под андроид? Бери Java или Kotlin.
    Под iOS? Swift (или Objective-C, если нравится синтаксис)
    С игр не начинай, имхо. Писать грамотно игры — это значит разбираться в лоу-левел вещах, а-ля GL или D3D, понимать работу видеокарты и как вообще устроен графический пайплайн. На изучение этого ты потратишь 5+ лет. Со своими знаниями ты сможешь писать только скрипты в существующих движках, а это будет только отуплять тебя как программиста.

    И не парься по-поводу говнокода. Ты все равно будешь говнокодить, потому что нельзя не говнокодить, не имея достаточного опыта.
    Так что пиши так, чтобы работало. А строить архитектуру и вылизывать код научишься со временем. Если пойдешь обратным путем и начнешь с «правильного кода», то там и застрянешь.

    Ну а потом ты сам поймешь что тебе надо, чего хочется и на каком языке тебе комфортнее кодить. Сейчас об этом сильно не думай, просто пиши код.

  • «Строгий» JavaScript: зачем и кому это надо

    Я вот думаю, статью может чиркануть... А то уж через чур мало людей о нем знают.

  • Выбор между С# и Java (для разработки игр)

    Это само собой, любые сетевые данные нужно проверять всеми возможными способами, но опять же, если кто-то мимикрирует под твой сервер, создав эмулятор — это никак не скажется на целостности твоего сервера. Если это не ААА тайтл, никто этого делать не станет ибо это очень сложно. Более того, пиратам для этого придется пропатчить и игру, а, соответственно, оригинал игры будет продолжать работать с твоим, надежным сервером. И если кто-то осознанно скачает пиратку, так это абсолютно не твои проблемы.
    Проблемы — это когда на оригинальном сервере читы и кража денег. Читов не избежать никак, но поскольку все расчеты на сервере — это позволяет сразу банить негодников.
    Ну а если же есть шанс, что кто-то попросту получит доступ к оригинальному серверу — это абсолютно другая тема, не из области нашего обсуждения.

  • Выбор между С# и Java (для разработки игр)

    Конечно. Но если оппонет соизволит подключить логику, то сможет догадаться, что огромная масса джавистов набралась тогда, когда альтернатив было не столько, сколько их есть сейчас.
    JVM продолжает прекрасно работать, соответственно и массе джавистов нет смысла спрыгивать на всякие скалы и новомодные котлины. Убери JVM и джависты будут ненужны. А Котлин останется, например, т.к. умеет в JS и LLVM.

  • Выбор между С# и Java (для разработки игр)

    Да никакой обфускатор не поможет, никогда. Если цель сделать чит, его сделают, т.к. можно не только код игры вытянуть, а и сетевые пакеты подделать. Единственное, что нельзя пропатчить — это сервер, так что логика важных расчетов никогда не доверяется клиентам.
    Вернее, сделать это все на клиентах, конечно же, можно, никто не отрицает, полно игр, которые работают по данной модели.
    Но тут вопрос в проффесианализме и правильном выборе подхода к решению задачи. Доверять любым расчетам клиентов — неправильный подход, игры с таким решением обязательно обзаводятся читами. Инфа сотка.

  • Выбор между С# и Java (для разработки игр)

    Включив диванного аналитика, подключусь к треду и скажу, что Java удерживает позиции, в основном, за счет JVM, которая и является тем зёрнышком, имхо. У меня все :)

← Сtrl 1... 121314151617 Ctrl →