[HN Gopher] Haxe 4.3
       ___________________________________________________________________
        
       Haxe 4.3
        
       Author : MokaAkashiya
       Score  : 104 points
       Date   : 2023-04-07 17:29 UTC (2 days ago)
        
 (HTM) web link (haxe.org)
 (TXT) w3m dump (haxe.org)
        
       | qsort wrote:
       | Does anyone have a good non-gaming use case for Haxe? It feels
       | very nice to have multiple compilation targets and the language
       | is great, but I never found an excuse to use it.
        
         | internetter wrote:
         | Maybe some library for codebases in multiple languages at a
         | company? I wonder what the performance story is...
        
         | hyuuu wrote:
         | same here, it's a forever top of mind but never to be
         | practically used. The thought of having one language but can
         | dish out frontend in JS, backend in python, jobs in C has been
         | a dream of mine.
        
         | JoeyJoJoJr wrote:
         | I'd say it's pretty good for touch screen kiosks, digital
         | signage, and certain interactive creative works.
        
         | catach wrote:
         | A statically typed javascript with pattern matching can be
         | nice.
        
         | vr46 wrote:
         | It was used for Smart TVs quite a bit.
        
         | Hi_Everyone wrote:
         | The creator of http://haxeui.org/ makes a lot of (closed)
         | projects for the health sector. I personally like to use to
         | make some wxwidgets utilities apps with it. (And being able the
         | html5 js target and android/ios (with openfl) target.
        
       | MokaAkashiya wrote:
       | There is also review of new features
       | https://www.elitemastereric.com/Haxe-430/
        
         | klibertp wrote:
         | Last time I checked on master - 2-3 months ago - ?. was
         | implemented, but ?? was still missing. Good to see the
         | implementation finalized. I also saw `overload` for inlines,
         | that's really nice, having to expose functions taking Any and
         | dispatching on dynamic type was one of the pain points in Haxe
         | for me. A shame it's only for inline functions for now. Local
         | static vars is something I didn't see, it looks like static
         | variables in functions in C, right? I'm not quite sure how
         | useful that would be. I guess the scopes are not shared, so
         | `static var instance` in one method is different than
         | `instance` declared the same way in another function. Still,
         | the properties with getters also work. Better errors are always
         | welcome, custom defines... I know I wanted these at some point,
         | but can't recall right now what for. Stdlib got a bit more of
         | concurrency support with Condition and Semaphore - good, my
         | target doesn't do threading, but has coroutines, so having more
         | options to control concurrency is nice.
         | 
         | All in all, very nice release with null-related operators being
         | the feature I missed the most. I'm not sure about default type
         | parameters, and numerical suffixes don't matter on my platform
         | (everything is a double on runtime), but numerical separators
         | are nice. Steadily, Haxe gets easier to use and safer. Macros
         | are becoming more ergonomic, too, which is great, as they're
         | essential to effective Haxe programming.
        
         | 542458 wrote:
         | Good post. That safe navigation operator is very cool and
         | something I wish you could do in JS.
        
           | zhawn wrote:
           | Not sure if I'm missing some sarcasm but JavaScript has had
           | the equivalent Optional chaining operator for years now
           | 
           | https://developer.mozilla.org/en-
           | US/docs/Web/JavaScript/Refe...
        
             | 542458 wrote:
             | No, I honestly didn't know about it! I should have googled
             | it before making my comment... Thanks for letting me know.
        
           | johnfn wrote:
           | You can!
           | 
           | https://developer.mozilla.org/en-
           | US/docs/Web/JavaScript/Refe...
        
       | _benj wrote:
       | I'm very curious about Haxe. From using ldtk and looking into
       | haxeui and openfl, it looks like it could be good for multi
       | platform gui apps. I've used godot for that purpose before but
       | all the game stuff and limited libraries gets in the way of
       | making it easy for gui development.
       | 
       | And seems like with hashlink I can compile to a single binary
       | instead of the nightmare of electron or Python gui apps packaging
        
       | fayten wrote:
       | I really love Haxe. A truly multi-paradigm language with good
       | support for GADTs, OOP, structural and nominal types, lambdas,
       | and a lot of practical sugar on top. The macro system and
       | abstract types add enormous flexibility that I miss when going
       | back to C# or Java.
       | 
       | The language is a bit verbose, but I prefer it and generally add
       | type annotations instead of using type inference (unless I'm
       | dealing with a super gnarly generic type).
       | 
       | The language shines in the graphics space since some of the Flash
       | community gravitated to Haxe. I've found that it works great as a
       | client/server language similar to a typescript frontend/backend
       | stack. The benefit with Haxe is that the backend isn't limited to
       | Node, it can run on JVM, bare metal with C++, Openresty with Lua,
       | and anywhere Python runs. It's pretty easy to implement F# style
       | type providers with the macro system as well.
       | 
       | There is also a C# target, however, there are talks of
       | deprecating. Hopefully we will see a revival with Reflaxe,
       | another way to make new targets, or maybe even a CLR target.
       | https://github.com/RobertBorghese/reflaxe
       | 
       | Lastly, I'm very excited about Ammer the universal FFI for Haxe
       | by Aurel. https://aurel300.github.io/ammer/ My hope is that the
       | community will rally around Ammer and bring in a lot of native
       | libraries to all targets.
        
       | sieabahlpark wrote:
       | I looked at Haxe but have trouble figuring out what real benefits
       | it would have over something like Godot at this point.
        
         | Dwedit wrote:
         | Dead Cells was written in Haxe.
        
           | skywal_l wrote:
           | Paper Please too.
        
             | rickstanley wrote:
             | To add to this, the creator also used Haxe to port to
             | Unity: https://dukope.com/devlogs/papers-please/mobile/
        
         | Herval_freire wrote:
         | I mean it's like why does one brand of automobiles is better
         | than another brand of automobiles? Should we just have one
         | brand?
        
         | karpierz wrote:
         | Haxe has been, and continues to be, used to ship commercially
         | successful games.
        
           | hutzlibu wrote:
           | Could you share some examples?
        
             | roblabla wrote:
             | Dead cells is the most recent and prominent example.
        
             | paraboul wrote:
             | All games by Shiro games (founded by Nicolas Cannasse,
             | creator of Haxe) :
             | https://en.wikipedia.org/wiki/Shiro_Games
        
               | illiarian wrote:
               | Oh wow. _Dune: Spice Wars_ is also in Haxe:
               | https://www.youtube.com/watch?v=pZcKyqLcjzc
        
             | [deleted]
        
             | karpierz wrote:
             | Dead Cells, Papers Please, Dicey Dungeons
        
             | rickstanley wrote:
             | Northgard, not an _amazing_ game to me, but successful
             | nonetheless.
        
         | capableweb wrote:
         | Being able to cross-transpile (cross-compilation basically) to
         | other languages is a huge selling point. You can, in one
         | language, output libraries that are compatible with:
         | JavaScript, Flash, Neko, PHP, C++, Cppia, Java, JVM, C#,
         | Python, Lua, HashLink
         | 
         | For example, wanna deploy a validation library that checks
         | something and have it available in a ton of language directly?
         | Using Haxe, you can get this very cheap.
        
           | klibertp wrote:
           | In practice, this is hard. The problem is that you need to
           | either have all the functionality you use written in Haxe -
           | which is rarely if ever possible - or you have externs to
           | equivalent libraries _on all platforms_. The libraries
           | produced will also need to be interfaced from outside
           | somehow, and for some of the targets you 'll have to write
           | additional wrappers for your lib. It's really hard to pull
           | off when targeting more than 2-3 targets.
           | 
           | Another commenter linked to Ammer[1], a universal FFI
           | framework (apparently, it's my first time seeing it) - it
           | might be just the thing needed to make multiplatform Haxe
           | libraries way easier to write and distribute. I'd welcome
           | that :)
           | 
           | [1] https://aurel300.github.io/ammer/
        
         | armchairhacker wrote:
         | Haxe + https://heaps.io/ (game engine) + https://ldtk.io/
         | (level editor) presumably gets you most of the features Godot
         | has (though I don't know because I don't really do game-dev)
         | 
         | More importantly the language and IDE support are a lot better
         | than GDScript.
         | 
         | And as others mentioned, Haxe is cross-platform. But not
         | "cross-platform" like some languages claim to be: it's been
         | cross-platform ever since the early days and is very battle-
         | tested
        
         | JoeyJoJoJr wrote:
         | Haxe appeals to a lot of Flash game developers that would
         | prefer to rely more heavily on code than a full blown game
         | engine. A lot of people really like the "display list" (scene
         | graph) API of Flash and a bunch of Haxe libraries follow
         | similar patterns.
        
         | canadianfella wrote:
         | [dead]
        
         | MineBill wrote:
         | Haxe is a programming language and Godot a game engine?
        
       | awinter-py wrote:
       | super interesting that a big part of the lift here is
       | buildsystems + targeting different platforms
       | 
       | I've tried tauri + neutralino this year (both electron
       | alternatives), and they depend immensely on buildsystems +
       | platform targeting. flutter + react native play in this space too
        
       | Dwedit wrote:
       | For those unfamiliar with Haxe, imagine Actionscript, but without
       | tying it to Flash Player.
        
       ___________________________________________________________________
       (page generated 2023-04-09 23:01 UTC)