|
Not a comment about try.haxe, but Haxe in general: There's this Window Manager called Awesome, which is scripted with Lua/LuaJIT. It features an extensive library of objects for use in user scripts. There's a lot to like about Lua, but it's designed as an embedded scripting language and it gets harder to use the more code you have. Extremely dynamic nature coupled with lack of good tooling makes it really hard to explore the codebases above a certain level of complexity. Enter Haxe, which has Lua as one of its targets. It gives you static typing (with local type inference), good LSP support for navigating the codebase, some nice libraries and utilities (Tinkerbell) that Lua lacks, macros, exceptions, modules, basically everything you'd need to work with a large codebase. Everything Lua does is still accessible, so for example coroutines and tail call elimination are still working, but you get a lot of tools on top of that. I think LuaJIT + Haxe is a very powerful combination, which gives you great performance, rapid prototyping, and tools for programming in the large at the same time. The experience of writing a few kloc of Lua scripts for Awesome was not the most pleasant, but when I added Haxe to the mix, it became a real pleasure to work with. It's worth considering if you find yourself in a similar situation (a lot of things are scripted with Lua, after all.) |
[1] https://ruoyusun.com/2021/01/31/typed-lua.html