🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

What do you think about JAI

Started by
20 comments, last by Promit 5 years, 12 months ago

No, I'm not going to waste my time finding references. Either you can choose to ignore my opinion (which is fine) or you can do your own research and draw your own conclusions for yourself.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Advertisement

Alrighty then

Well there is two simple answers why others will never use that language - even when it would be pretty kickass:

- It is not a object oriented language

- It does not have a garbage collector

 

Also jonathan has a attitude to question fundamental things and has a fixed mindset about how you should program to make good software. He also does not like object oriented programming very much and he clearly does not like programmers which are locked down to that principles as well, especially then they have a "i-dont-care"-attitide - which most programmers have these days.

6 hours ago, 0r0d said:

Alrighty then

To answer your question, I don't know Jon myself, but I'm sure he's like most of us - a little quirk on the surface but pretty genuine underneath.

What probably rubs people the wrong way is some of the ideals in The Philosophy of Jai section at https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md. Things like:

Quote

Languages like Java were marketed as idiot-proof, in that it’s much more difficult for programmers to write code that can hurt them. The Jai philosophy is, if you don’t want idiots writing bad code for your project, then don’t hire any idiots.

Which is fine in principle, but not realistic. And why are we calling people idiots?

Anyway, my opinion on Jai is that the features sound interesting, but I read code like a book, so if the syntax doesn't flow for me then I don't care much for the language. And the syntax of Jai is... less than desirable for my tastes, so I'd have a hard time getting into the groove with it and choosing it over other languages unless it offered something I couldn't get elsewhere.

Admin for GameDev.net.

24 minutes ago, khawk said:

 

Ok, that's interesting, thanks for posting.  It seems like maybe he's just blunt and that might rub people the wrong way.  Personally I dont mind it.  I also have a feeling that those words are generalities and if he expanded on it I'm sure there's more subtlety there in his thinking.  In general, I think the philosophy of making a programming language that isnt just geared towards keeping bad programmers from writing bad code is a good one.  I mean, game development is hard, and engine development is harder.  The language needs to allow us to do all those hard and complicated things, and no amount of dumbing down will save you from bad code... it will just be bad in different ways.

I'm going to keep an eye on JAI and see if it goes anywhere.  I think the idea of a language written by an experienced game developer geared for making games (among other things, of course) is interesting and could be really good.  The syntax seems fine to me.  It's not something I'm used to, but honestly after looking at some of that code for a few minutes it starts to make sense quickly.  It also seems that if you like a language to read like a book, this fits the bill better than C/C++:


Vector3 :: struct {
    x: float = 1;
    y: float = 4;
    z: float = 9;
}

Vector3 is a struct.  X is a float and it's value is 1.  etc. etc.

12 minutes ago, 0r0d said:

It also seems that if you like a language to read like a book, this fits the bill better than C/C++

Looking again maybe it's just the spacing in the examples. I should have formatted in my own example code.

15 minutes ago, 0r0d said:

I mean, game development is hard, and engine development is harder.  The language needs to allow us to do all those hard and complicated things, and no amount of dumbing down will save you from bad code... it will just be bad in different ways.

I should add, I agree with this in principle, but in practice on larger teams it's kind of unrealistic in my experience. I agree that we shouldn't provide crutches for developers because it can also restrict creativity, but when you scale up to larger teams having those crutches when you need them can be beneficial due to the inherent complexities of larger teams/projects.

Granted, as I understand it JB has been a solo/small team indie for quite some time so maybe that's a factor in the philosophy, and that's really something he would need to answer.

Admin for GameDev.net.

2 hours ago, Finalspace said:

- It is not a object oriented language

- It does not have a garbage collector

For me the reasons would be different.

I know and use many languages, and frameworks.

There are many more that I would like to learn.

But I do not have time to learn all of them.

So I need to make superficial choices on what I want to learn...

So when looking at this language, the first thing I ask myself is:

Who is backing it and what projects are shipping with it?

The answer to both questions is: "only Jonathan Blow"

 

Now let's examine that answer...

Does Jonathan Blow demonstrate technical mastery?

And the answer is "no", his games are average from a technical point of view. Also, he does not manage a large team of developers.

The man's games are an amazing demonstration of creativity. I think many AAA companies would envy him for the sheer scope of his game designs, and his ability to ship two highly influential games. However. from a programming perspective his games are not difficult to pull off. So I can't say that he has earned my admiration for his technical skills.

If one of the Yerli brothers or John C. would advocate a new language, it would grab my attention. They have done things which are technically hard to pull off. If the guys at Unity or Unreal advocated a new language it would grab my attention: Because they are catering to a huge community of developers, and have a good overview of what the community's needs are. If Microsoft or the Apache foundation advocated a new language it would grab my attention because exert influence over large ecosystems.

That's why "Keras.io", "Go" , and assorted shader languages come before JAI on my professional learning menu. Because people have done things which are techinically impressive with them. By the time I get done learning how to use them, I doubt JAI will be my next choice. 

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

21 hours ago, SillyCow said:

For me the reasons would be different.

I know and use many languages, and frameworks.

There are many more that I would like to learn.

But I do not have time to learn all of them.

So I need to make superficial choices on what I want to learn...

So when looking at this language, the first thing I ask myself is:

Who is backing it and what projects are shipping with it?

The answer to both questions is: "only Jonathan Blow"

 

Now let's examine that answer...

Does Jonathan Blow demonstrate technical mastery?

And the answer is "no", his games are average from a technical point of view. Also, he does not manage a large team of developers.

The man's games are an amazing demonstration of creativity. I think many AAA companies would envy him for the sheer scope of his game designs, and his ability to ship two highly influential games. However. from a programming perspective his games are not difficult to pull off. So I can't say that he has earned my admiration for his technical skills.

If one of the Yerli brothers or John C. would advocate a new language, it would grab my attention. They have done things which are technically hard to pull off. If the guys at Unity or Unreal advocated a new language it would grab my attention: Because they are catering to a huge community of developers, and have a good overview of what the community's needs are. If Microsoft or the Apache foundation advocated a new language it would grab my attention because exert influence over large ecosystems.

That's why "Keras.io", "Go" , and assorted shader languages come before JAI on my professional learning menu. Because people have done things which are techinically impressive with them. By the time I get done learning how to use them, I doubt JAI will be my next choice. 

Sure. Everyone has their own reasons. Even Jonathan Blow will not expect people to switch right away...

 

But one thing is not true, the witness is technical really impressive - look at the shadow/environment based puzzles, like for example a part of the moving shadow blocks your line you are currently draw. This is really awesome and after i seen it for the first time, i was really impressed by it. Also braids rewind mechanics is still challenging for a lot of people, even for experienced ones.

22 hours ago, SillyCow said:

Now let's examine that answer...

Does Jonathan Blow demonstrate technical mastery?

And the answer is "no", his games are average from a technical point of view. Also, he does not manage a large team of developers.

 

I would recommend watching some of his videos on the making of JAI.  I've found them very interesting, and I think he does know what he's talking about quite well.

Of course, the language will never be for everyone... that goes without saying for this or any language.  But, I think what he's doing does have merit.

3 hours ago, Finalspace said:

Sure. Everyone has their own reasons. Even Jonathan Blow will not expect people to switch right away...

 

But one thing is not true, the witness is technical really impressive - look at the shadow/environment based puzzles, like for example a part of the moving shadow blocks your line you are currently draw. This is really awesome and after i seen it for the first time, i was really impressed by it. Also braids rewind mechanics is still challenging for a lot of people, even for experienced ones.

I have a similar view as SillyCow in which I don't think Blow did anything overly impressive technologically with his games. I don't think The Witness is an impressive game technology wise, although it is a god damn design marvel for sure and looks lovely :) (already in my all time top 10 :P ), but again it's looks can be thanked mostly to art design/direction. About the shadow thingy, correct me if I'm wrong, more knowledgeable people may know better, but you could do the same thing with IdTech4 (Doom 3) in 2005 on a 1800Mhz single core PC as it had CPU based shadow hull generation?! So if I'm not mistaken that thing is not at all "impressive". Braid was far more interesting from that point of view, but there were other games with similar (or exactly the same) mechanics. For example Shuggy from Smudged Cat games came right after Braid on the same system (Xbox 360) and had almost all the tricks (time rewind, shadow "replicants" replaying your moves etc...), although it did not do these to the same extent as Braid did (e.g.: small levels, less entities), but it was running on .Net compact!!! which was a hell of lot less efficient than the PC version and it worked perfectly fine back on a limited system in 2011. So I take his GDC talk about the implementation of Braid with a grain of salt, in which I mean, yes it was a clever solution and a well architected game system (and a great game, kudos for that ;) ), but not rocket science and could be done even back than when he did it multiple ways.

With that out of the way I sort-of followed the development of JAI and it looks pretty cool :) . I see it as a nice mixture of features from C, C# (e.g.: as I understand the type system and reflection works a pretty similar way even internally with the same possibilities) and Rust with the goal of not becoming as complicated and hard to follow as C++ (e.g.: staying closer to the elegance/simplicity of C which is off-course already broken). My big caveat, is that I don't really share his "beliefs". Yep I said it, even though how many times he reiterates how "engineering" fuels the design of the language, it is actually mostly based-on his preferences and driven by his rage/irritation from the problems around C++ (+a big dose of OCD). I don't think it is going to save that many development hours and $, or catch as many bugs and it certainly won't result in magically "faster Photoshop" as he claims sometimes :| . It is mostly being developed for himself and himself alone based on his experiences and difficulties with developing semi-complicated software. There is not even a semi-final syntax plan (keeps changing stuff and saying it's not important now...) or any parts opened and certainly no real plans how/when others can start using it. Relying on community to make this part is nice and all, but no way big companies will throw out millions of lines of code based on this setup and a promise of a bit nicer coding experience.

As an important example I don't see how The Witness could not be pulled off with the same efforts in Unity or Unreal :| and I don't think a programming language will make it much much easier in any way (looking at the big picture of developing a game), and this alone contradicts most of his pillar-like arguments against C++/C#/garbage collectors/code reuse etc...

It is a really nice language, what he wants to make and wants to work in, that is all. Many programmers do something similar (e.g.:
ApochPiQ ), but he is a famous game designer, sort-of using this fame to advertise his preferred way of programming.

Blog | Overburdened | KREEP | Memorynth | @blindmessiah777 Magic Item Tech+30% Enhanced GameDev

This topic is closed to new replies.

Advertisement