I wish Go didn't have this performance bottleneck because I really like the language and it would be a great middle ground for indie like games that don't want to follow the big engines route but sadly any kind of request of a faster path to call cgo was ignored by the Go team as games is not really something they are interested in.
Still best of luck to the guy but eventually he'll hit a wall and all the claims about performance will look funny.
Show me anything that either Blow or Muratori are doing that couldn't be done in an existing language or framework.
People laugh at games with thousand-case switch statements or if/else chains but they shipped and the end user doesn't care about logarithmic complexity. And most of the time it doesn't even matter. What fails with games more often than not is the design, not the code. What features in Jai make it superior to C++ for writing games specifically? Or does it, like Typescript for JS, only exist because of extreme antipathy towards C++?
Time is a resource too, and arguably a far more valuable one for developers than LOC or memory or what have you.
Some examples that come to mind from my personal experience.
- Compile times. 1-2 seconds vs the typical build times in a C++/Rust game can be a game changer
- Massive compile time capabilities.. you can have an entire content pipeline executed at compile time, all written in Jai
- Builtin Type reflection.. another gamechanger in games for editors and such
- Very easy to debug, the minimalistic approach means the code is not heavily transformed by the compiler thus really easy for a debugger to follow and still performant. Example: loading the same gltf file in my engines in Rust and C++ debug mode is MUCH slower than debug mode in Jai.. again, game changer.. you hit build/run and you're back in the game in few seconds.
- Very easy to learn
- Very ergonomic in its minimalism
- A lot of small things you instantly miss when jumping to other language.. one thing on the top of my head.. the ability to have struct members "overlay" other specific locations.. so you could have a Matrix4 struct with Vector members "forward" "right" "up" etc
- The builtin "context" based "temp allocator".. perfect for games, anything that is needed for a frame goes in there with close to zero allocation time and it gets reset every frame at zero cost
Jai has a HUGE potential if it can survive Mr. Blow's ego.. which is a big big ask.