Gama11
In practice, there are things about Haxe I miss in Kotlin, but also things about Kotlin I miss in Haxe. Just to name a few examples:
- I'm missing Haxe's pattern matching and macros in Kotlin
- I'm missing Kotlin's level of IDE support and robust null safety (with ?: and ?. operators) in Haxe
(Haxe does have experimental opt-in null safety, but it doesn't seem production-ready yet)
https://github.com/HaxeFoundation/haxe/tree/development/src/...
https://github.com/vshaxe/vshaxe/wiki/Debugging
Other than that, if really you need to debug some target-specific issue on a target without debugging support, there's usually still the option of debugging the generated code.
- LDtk: https://ldtk.io/
- Ogmo 3: https://ogmo-editor-3.github.io/
Haxe 4.1.0 is released – JVM target, improved exception handling, TRE
Introduction to the technology stack used at Shiro Games (Evoland, Northgard)
Flash in 2020 (and Beyond)
10 years of evolution together with Haxe
Haxe Review: Haxe 4 Features and Strengths
Getting Started with Haxe
> [...] Neko is very slow. The main reason for this is that it's dynamically typed. So every "value" in the VM can be either an Int, a Float, a Bool, some Bytes, an Array, a Function or Object, etc. And because this value needs to be recognized at run-time, its type together with its data need to be stored in the memory. [...]
[1] Though in JavaScript's case, there isn't really anything Haxe-specific about it, it just uses sourcemaps generated by the compiler like other languages compiling to JS.
See https://haxe.org/documentation/introduction/compiler-targets... for a full list of targets.
For instance, the Haxe VSCode extension itself is a Node project written in Haxe.
Btw, a JVM target (generating JVM bytecode directly) was recently merged into the Haxe compiler. Previously there was already a target that generates Java source code, but that had some issues like slowing down compile times with the native Java compilation step that needed to be done.
- unlike Neko, the bytecode is strictly typed, allowing it to be much faster
- there are two different ways to use it:
- HL/JIT, compiling to bytecode and using the VM
- HL/C, compiling to raw C code to gain an extra bit of performance and allow it to run on devices that don't allow JIT (mobile / consoles)
- the successful indie games Northgard (by the Haxe / HashLink creator himself) and Dead Cells use HashLink as their runtime- there is a VSCode breakpoint debugger for it (https://marketplace.visualstudio.com/items?itemName=HaxeFoun...)
- in the future, support for hot-reloading bytecode is coming (https://github.com/HaxeFoundation/hashlink/issues/145)