Yeah for sure, the goal was to learn egui and validate it's portability. The logic is largely lifted from the NetLogo model library (https://ccl.northwestern.edu/netlogo/models/Fire) and represents only the relationship with density and how far a fire is able to spread. I added a couple variations for fun (like using Perlin noise).
I always find that portion of ADHD somewhat amusing. Getting fixated on a task and unable to context switch is a big thing, which I think is surprising for many people.
Can you elaborate on what it is you find unmanageable about Lua at scale? Is it just typing that you're missing?
The biggest difference between Lua and TypeScript in my mind is that Lua has been going on a minimally-invasive and continuous upgrade path for decades, so I assume that it will likely keep doing that for several more decades. With TypeScript I can't tell whether it's here to stay or just this week's iteration of CoffeeScript on the JS fashion treadmill.
That may be less of a consideration for more ephemeral types of applications like websites and games, but it becomes a huge consideration for applications that require large spans of time to ammortize the cost of building them like individual software in the corporate space or applications that are somehow highly specialized. (This is the area that I'm in).
I want to like Teal, but the lack of nil checks[1] is a pretty big sacrifice in the name of "staying true to Lua idioms".
>>> Every type in Teal accepts nil as a valid value, even if, like in Lua, attempting to use it with some operations would cause a runtime error, so be aware!
I know you can use (or implement your own in about 8 lines) strict.lua[2], but that just seems like such a shame to omit nil checks from a gradual type system. I still follow the project, but I put a little more hope in Pallene's[3] development, although the aims are slightly different.