Jai
A systems-level programming language aimed at game development, emphasizing compile-time execution, metaprogramming capabilities and data-oriented design, led in its development by Jonathan Blow.
Timeline (last 90 days)
A pragmatic path for rewriting a commercial engine in Jai may be a hybrid architecture: writing new modules in Jai and coexisting with existing C++ code through the C ABI, rather than a full rewrite.
The Jai language is led in its design by Jonathan Blow, founder of Braid, and is positioned as a systems-level language built for game developers, emphasizing compile speed, metaprogramming capability, and fine-grained control over data layout.
Jai supports compile-time code execution, allowing almost arbitrary code (including loops, memory allocation, and complex control flow) to run at compile time and baking the results into the generated executable or intermediate representation.
Jai's compile-time execution differs from C++'s constexpr or template instantiation: Jai is not limited to pure functions or specific syntactic structures.
Jai natively supports automatic conversion of struct layout between AOS (Array of Structures) and SOA (Structure of Arrays); after the developer declares the data semantics, the compiler generates the corresponding memory layout and access code.
Jai can directly include C header files and link C static or dynamic libraries via FFI, and call C functions and access C structs in a near-native manner.
Jai's FFI bindings are not zero-cost: C++ classes, templates, exceptions, and name mangling cannot be mapped directly, and a C wrapper layer or manually maintained binding declarations are usually needed.
Jai is still in a stage of continuous development, and its standard library and third-party ecosystem are far less rich than those of C++ or Rust.
The Jai community is small, and engineers familiar with the language are scarce.
Jonathan Blow是游戏《Braid》和《The Witness》的开发者,也是Jai编程语言的设计者,Jai是一种专为游戏开发设计、强调编译期执行和性能的语言
All Facts (10)
A pragmatic path for rewriting a commercial engine in Jai may be a hybrid architecture: writing new modules in Jai and coexisting with existing C++ code through the C ABI, rather than a full rewrite.
50%UnverifiedThe Jai language is led in its design by Jonathan Blow, founder of Braid, and is positioned as a systems-level language built for game developers, emphasizing compile speed, metaprogramming capability, and fine-grained control over data layout.
50%UnverifiedJai supports compile-time code execution, allowing almost arbitrary code (including loops, memory allocation, and complex control flow) to run at compile time and baking the results into the generated executable or intermediate representation.
50%UnverifiedJai's compile-time execution differs from C++'s constexpr or template instantiation: Jai is not limited to pure functions or specific syntactic structures.
50%UnverifiedJai natively supports automatic conversion of struct layout between AOS (Array of Structures) and SOA (Structure of Arrays); after the developer declares the data semantics, the compiler generates the corresponding memory layout and access code.
50%UnverifiedJai can directly include C header files and link C static or dynamic libraries via FFI, and call C functions and access C structs in a near-native manner.
50%UnverifiedJai's FFI bindings are not zero-cost: C++ classes, templates, exceptions, and name mangling cannot be mapped directly, and a C wrapper layer or manually maintained binding declarations are usually needed.
50%UnverifiedJai is still in a stage of continuous development, and its standard library and third-party ecosystem are far less rich than those of C++ or Rust.
50%UnverifiedThe Jai community is small, and engineers familiar with the language are scarce.
50%UnverifiedJonathan Blow是游戏《Braid》和《The Witness》的开发者,也是Jai编程语言的设计者,Jai是一种专为游戏开发设计、强调编译期执行和性能的语言
50%