Putting together the available document "JayPrimer" (which may be obsolete) with the blog post, Jay it seems a language designed by somebody who's was fed up with C++, and deciced to write their own, tailored language; this looks great when seen through the lens of C++, but there isn't anything particularly innovative in the context of modern languages.<p>In particular, I'm personally neutral to Zig, but there seems to be little reason to prefer Jay over it.<p>From the primer:<p>> Arbitrary Compile-Time Code Execution<p>This is the big selling point, but, brought to the extreme, it's not necessarily a good thing. The examples in the primer are intended to look great:<p>- Insert build time data<p>- Download the OpenGL spec and build the most recent gl.h header file<p>- Contact a build server and retrieve/send build data<p>but they're the type of things that turn a build into a monster.<p>I guess comptime execution is big in the gamedev area (I can't say, I have little experience), but I suppose Zig fits the typical gamedev use cases (curious to hear devs with hands-on experience).<p>> Code Refactoring<p>The example presented seems to be "extract to function", which sufficiently advanced IDEs should support. It's also unclear if it's currently implemented.<p>> Integrated Build Process<p>I don't see this as a good thing. It's good from the perspective of old programming languages, whose build tools are a mess. But having a separate tool is actually an advantage, as long as it's standardized and well integrated (I suppose modern languages have this support).<p>> SOA AND AOS<p>This seems to be a very niche feature.<p>> Reflection and Run-Time Type Information<p>This is very convenient, but again, nothing unique.<p>> FUNCTION POLYMORPHISM<p>It seems to be an odd (flexible/inferred) generics implementation. One of the language objectives is to never perform automated type casting, but in this example, it is performed.<p>> THE ANY TYPE<p>I guess this is a polarizing feature.<p>> STRUCT POINTER OWNERSHIP<p>Is this syntactic sugar for a C++ destructor?<p>> Other Cool Stuff<p>> Specific data types for 8, 16, and 32 bit integers<p>No 64/128? :^)<p>Regarding the post, the non-trivial selling points are described as:<p>> Reducing compile times from about 60s right now to under 5s, hopefully around 1s<p>This is certainly very appealing.<p>> having debuggers work<p>Uh? That's based on the bad D experience.<p>> Replacing build-scripts with jai code<p>> Catching more errors by introducing custom compilation checks using metaprogramming<p>> Replacing complex metaprogramming code with simpler, imperative code<p>See Zig.<p>The rest are trivialities.