The folks that dismiss JB’s work by saying “this could have been done in <x>” are missing the point of why anything is done.
If you are entirely utilitarian in how you approach making a game (as in this case) then you’ll want to create as little as possible to make the game. An existing game engine, an existing programming language, existing libraries, etc.
If your goal is the economic return that making a game will (hopefully!) provide, this is understandable.
However, how I see JB based on his past work and talks is someone who wants to spend their life bringing things into existence. From all available evidence it appears the art of creating and the art of having created is his work and his legacy. The economic return is rhe by-product, but not the goal.
We are in this earth for a finite amount of years, and he is spending his time creating new things. It’s an admirable use of time, and at least from my perspective holds a universe of meaning that working under the utilitarian approach loses.
Blow made his own language because he's so eye-wateringly arrogant and thinks every language (that he didn't make) sucks, and only he is smart enough to design a better language for programming games.
Seriously, this is why he did it. His ego and arrogance is off the charts and if it wasn't made by him, he thinks it sucks (e.g. he doesn't like Linux, probably because he realizes Torvalds is actually smarter than him). He also doesn't like C++ or Rust, again, it's probably a good indicator he has a deep inferiority complex and so he has to prove he's the smartest person in the world by writing his own, "better" language.
I.e. I don't think he's making a programming language for some "love of creating", I think he's doing it because he has a deep psychological issue/insecurity, which drives his need to always be the "smartest person in the room", his arrogance, the way he dismisses others who don't agree with his viewpoints etc.
Even if you don't like Jon, calling Jai an exercise in arrogance is simply untrue. When he started making Jai in ~2014, there were very few viable alternatives to C/C++ in the systems programming space that offered the kind of expressive power becoming of a langauge built this century. Rust is great, but it prioritising correctness is not always the right choice, especially not for games. Jai introduced many ideas that languages like Zig and Odin ended up adopting.
It may not have a public* release but, over the last decade (starting pre-Zig/Odin), Blow has discussed it extensively in his videos[0], enough that even ~10y was possible for someone to make a toy independent implementation[1].
Still then, it's a stretch to say that Jai influenced other languages. How could it when only a handful of game-centered applications have been built by a handfull of devs?
Rust and Zig developed features by cutting their teeth on large amounts of real software, not by following one guy's personal project that has no source, no library, no spec available.
> Still then, it's a stretch to say that Jai influenced other languages. How could it when only a handful of game-centered applications have been built by a handfull of devs?
Lots of people have seen his talks about the language, so why do you think its impossible it influenced other languages?
It's unlikely that the Rust and Zig devs are looking at one guy's gamedev focused vlog compared to feedback from tens of thousands of engineers writing tens of thousands of public projects in Rust and Zig.
Have they heard of Jai? Yeah probably. But it's barely a drop in the bucket as far as the PL design community goes.
Oh, yes, the Rust team does "market research" and interviews people to see how they use the language, where the pain points are, etc. They have talks at Rustconf about how they gather information on how the language is used. Never seen them mention Jai.
Jai, odin and zig's creators are all part of the handmade network, a community of programmers. You are vastly underestimating blow's reach/influence.
Odin's creator has credited Jai as an influence. You can see him in the comments of old jai youtube videos (videos that go into a lot of depth about the language design). Odin's syntax and features are very similar to Jai, the influence is pretty clear. Odin has other influences of course but you could say it's "jai but open source".
Lastly, jai is not open source but it doesn't mean it's not available. You can message blow to get access to it. Many programmers have used it. There are third party jai libraries on github.
I've never heard of Odin or seen any projects written in it, seen a company hire for it, or seen it discussed at a PL conference. There's no stable compiler for it, and no spec. Yeah, I'm just one person, so maybe I'm just in my own bubble, but these are hobby projects with a very small communities.
> How has Jai introduce ideas if it’s not even released?
These are orthogonal concepts. Jai can or cannot introduce ideas, and Jai can or cannot be released. As of now, it is in fact so that Jai has introduced ideas, and has been released to a closed group of beta testers.
> How can we claim to know what it did “right” when only a few projects have been built in it?
To judge whether Jai did something right, in my opinion, it suffices to read the documentation and experience someone else programming second-hand and take advantage of its offerings, namely making programming less tedious, more enjoyable, more safe. It appears to me that you set the bar of usefulness or success too high for no good reason.
I've watched enough hours of his streams to know that this is NOT a reductive take. Blow is one of the most arrogant developers and game designers, and believes that nearly everyone else is an idiot.
He's somewhat Musk adjacent in his need to be viewed as smart (but I guess he does so least have way more programming chops than Musk, so I'll give him that).
C++ & Linux are world-changing tools, but C++ & Linux really do suck in ways that become more offensive with taste. Rust makes very different tradeoffs than ones gamedevs want.
Regardless, if arrogance drives people to make new tools then we should be grateful for that arrogance.
I think you're projecting a lot of your own complexes and insecurities.
He built a language for a very specific task: building games. There were quite a few requirements for such a language. Opinionated? Yes. But that's how you get new languages: by having opinions. Along the way he changed the design and the assumptions several times (e.g. built-in SOA structures are gone) while keeping the original goal in mind and using it to build a custom engine and a game while building the language (thus validating the choices made).
If/when Jai is released hopefully sometime next year, I do hope the documentation includes the rationale because he talked a lot about why other languages don't cut it in his opinion in the early days of development.
Eh, I can write that comment because it's fairly easy to see this side of JBlow if you've been following his work for a while. He is so naturally abrasive about other people's work, loves shitting on things he didn't make himself, loves being the smartest guy in the room, and also is a covid is a hoax, anti-vaxxer, Trump supporter etc.
I don't think I'm the smartest guy in the room, and that's OK. I realised a long time ago that ego/arrogance isn't a great quality and it's far better to have a strong network of friends and supporters, and that doesn't happen if you're an arrogant prick.
And yes, he built the language (which is totally un-needed) because the "idiots" who made all the existing languages, didn't make one as good as in JBlows brain. Despite the fact that there are 1000s of games which are far better than anything JB has made written in C#, C++, Java, Rust, etc. Did Larian need to write a new programming language to make Baldurs Gate 3?
Only JB is arrogant to think that only a new language is good enough for him to make a game with. A game that is just a modern spin on Sokoban and where he paid a bunch of other game devs to use their puzzles! You could write this shit in three.js and it wouldnt look or feel any differently.
+1 to all of this. I can no longer deal seriously with Blow's ideas, programming language, or games because he can't present any idea without being highly condescending and critical of just about everyone else. I'm glad I've never had to work for or with him, because he's the type of coworker or boss that constantly makes everyone's lives miserable.
Yes, you can do good things with shitty tools. And you could stop and say: this is enough. But then we would probably never have any programming languages at all.
Haskell exists because idiots that made existing languages didn't make one as good as in Philip Wadler's brain.
Go literally exists because idiots cannot use programming languages created by geniuses.
Rust exists because idiots who made all the existing languages didn't make one as good as in Graydon Hoare's brain. After all, all browsers on the market were built in C/C++, who is he to think that he could create a better/different language? Shut up and get on with the program.
C# exists because idiots who created other languages didn't create a language Microsoft wanted to control, and also weren't as good as the one Anders Hejlsberg's brain. After all, Java was already there.
Except Java exists only because who created other languages didn't create a language as good as the one in James Gosling's (and Mike Sheridan's and Patrick Naughton's) brain. Again, C/C++ had already been there, they could've used that.
Is Blow abrasive and shits on a lot of things? Of course. If you can't see past that to what he's actually doing with the language he's implementing, it's your problem.
> Only JB is arrogant to think that only a new language is good enough for him to make a game with.
Lol. I think this is the textbook definition of projection. He literally never said nor implied this in any way, shape, or form.
If anything, creating a new language set him back several years.
My main criticism of Blow is that he's consistently highly condescending to other games, game developers, and programmers. Many of whom have been shipping so many amazing and creative things while he's spent a decade making a Sokoban game.
> If your goal is the economic return that making a game will (hopefully!) provide, this is understandable
I don't know why the conversation always devolves into this. How it goes is "John cares about quality, everyone else only cares about money"
Choosing to prioritize art, story, and gameplay over raw execution speed does not mean you only care about money. It means you care about having a good game. That doesn't mean you can't do both, but if you have a time restriction, it's a completely reasonable trade off to make. Especially if your users won't even notice.
I would rather devs make games for people playing them, not for web devs who have Electron baggage.
If you are entirely utilitarian in how you approach making a game (as in this case) then you’ll want to create as little as possible to make the game. An existing game engine, an existing programming language, existing libraries, etc.
If your goal is the economic return that making a game will (hopefully!) provide, this is understandable.
However, how I see JB based on his past work and talks is someone who wants to spend their life bringing things into existence. From all available evidence it appears the art of creating and the art of having created is his work and his legacy. The economic return is rhe by-product, but not the goal.
We are in this earth for a finite amount of years, and he is spending his time creating new things. It’s an admirable use of time, and at least from my perspective holds a universe of meaning that working under the utilitarian approach loses.