Jai is cool, but C and C++ will not go away. I write in C despite some of its problems, because everything has a C API, for Jai I would need to write bindings (and know C for writing them anyway).
@@filipg4 C++ has the worst syntax of any programming language not created deliberately as a joke. Rust has the worst semantics of any programming language not created deliberately as a joke.
@@filipg4 Like any other popular language. And usually bindings don't translate well (for things like preprocessor macros, for things like complex C++ template metaprogramming bananas, etc.) And then there is a mental burden of translating the documentation from C into Jai (unless the autotranslate that as well) and a general familiarity with C is still required because when your bindibg are wrong or you use them wrong because you do not know C/C++ then you have a problem. I never really like autogenerated bindings, I think it is better to write bindings manually when only very few functions/types are needed in the bindings.
There are efficient mitigations for that. 1. Instead of C++, make lower level stuff using C, compile them to libraries that can be reused and just link those to project. 2. Disable optimizations on development time. 3. Understand how compiler actually works. That means properly split code to header and code files. I've seen projects where people put everything on header files or something similar and that likely lead to slow compilation. 4. Understand how make works. It track changes and make only necessary steps to produce binary. Like only build object files based on changes on code and link. 5. Use threading in make. 6. Think carefully how to create test infrastructure using mocks properly. 7. When creating game, build "game logic" in code, but script content, so you don't need to build again with some small change. And short version, using tools properly and not doing some dumb things avoids a lot of problems. I don't think C++ compilation time is issue because it can compile so much in.. second. I think C++ has actually huge strength in game programming because there is so large consensus that high performance game code should be written in C++. What I see as pain point is that there are no proper framework so C++ game code is often hard to read.
its crazy that he insists on doing everything himself from scratch when nothing he's building requires any of the super fast, efficient code he's always going on about. Witness and whatever sokoban he's working on now could have been built in half the time with Unity.
@@Raxfyr it's crazy but I think it's cool. using someone else's library/framework/engine can be torture. when you build it yourself, the sense of reward is immense.
@@Raxfyr Given that increases in computing power of new CPUs are getting smaller and smaller with each passing year, (can only get so small with transistors) it's a very good mentality to have optimization and deeply understand what you're doing. We used to launch missions to the Moon with computers weaker than the cheapest Arduino, nowadays Chrome eats half of your RAM just by opening a couple of tabs. Whether we like it or not, soon we will have to go back to the reality of having to optimize everything if we want more than one program running at the same time on the same machine.
I trust Jonathan. I find him to be reasonable even when he is frustrated [but i would encourage him not to be annoyed , he should expect to be annoyed by stuff and laugh about it]. 😺 People and Tech over complicating things. So it is an opportunity to someone like Jonathan. Maybe Epic is looking for a language like yours instead of Verse or you can upgrade Verse. Or you can go even higher goals.
@@Valentyn90A Watch his interviews and conferences, he criticize himself and criticize his own early builds of his games, he admit of his own mistakes and limitations and he is aware that other people are better than him in other aspects. He is also aware of how people perceive what he say and how he say things, so he rephrase what he is saying according to who he is talking to and stick to actually answer the questions. So i'm confident that He does have a reasonable and valuable thought process even if it is not perfect it is good enough to respect his thoughts and take it seriously. If you can't watch his stuff, Trust me ;D
Everyone in the comments misses the point. He's not doing this to make money. He's not doing it to replace other languages. He's not even doing it to make better games. He's doing it because he wants to and he can.
These problems he complains about have already been solved by Java. Fast compile times. Good performance. Easy to read syntax. There is a few good open source game engine written in it already. You can write code and test it out in a few seconds.
Another language starting, inevitably having the same limitations than other languages, because everything nowadays is just another syntax on top of LLVM. Why not contribute on something that already exists ? Or just use plain old C when you really want to have full controll ?
@@filipg4 really? I enjoy a lot listening to Jon but I can’t quite grasp sometimes what the bigger deal is about. I’m a non programmer that started making games since the Microsoft XNA days, then Unity, so basically 95% of my experience is C# and associate graphics API and shaders. Some might say that C# is not a real language and that game programming is not real programming and more “just scripting”, but I feel like I barely scratch the surface of what it’s possible, I’m using barely 10% of the language and libraries capabilities I think… can’t grasp how JAI would be so much better 😢
@@alejmcWhat you are doing is absolutely real programming and majority of people will agree, Jon included. If you write code to make the computer do something, you are doing programming, regardless of your tools/languages. Jai is perhaps a bit more difficult to appreciate if you did not get a chance to use it, or if you did not spend much time with C++. Because what Jai does really good is make things which are very messy/difficult in C++ like metaprogramming/builds/memory management/etc. - really easy without limiting what you can do. Combine that with a ton of quality of life improvements like better errors, smarter compiler, super fast compilation times, types as first class citizens, much nicer syntax, etc. and you get yourself an amazing systems language. Hope that clears it up a bit.
You know I woke up this morning and had the craziest thought. How much better things would be with just one more programming language... When is it going to stop? We're north of hundreds of languages at this point. It's like Linux, let's make a new distro everyday... cause we don't have enough. What you end up with is a disparate landscape where nothing works with anything else.
He isn't creating another programming language to satisfy anyone other than himself and other game programmers that have been frustrated by the same friction that he has. So if you don't grasp why it's necessary, it's not for you.
Closest thing to it right now is Rust due to the community effort. But using a systems programming language for general scripting (bash, python, lua), pc/mobile game dev (from c++ to kotlin to js), access to data science tooling (python, julia) etc. is just not worth it I am a golang backend dev and I'm better off using react+ts for a portfolio website and lua for hobby game dev and bash for scripting Also, there are multiple app communication protocols ranging from extern c to protobufs to json depending on needed level of ease of use and flexibility
Different languages are better tailored for different kind of tasks. Otherwise we'll have the mentality of JS running everywhere, even where it has no business running.
You know, this can be said about a lot of things, like why would Rimac make another car company, don't we have enough of them? Why would Framework make yet another laptop, we already have established brands. Why would anyone make another videogame, we already have too much to even find the time and play our backlog. Let the man do his thing, maybe it will be a failure, maybe it will be a success. Maybe it will solve *his* problems and that will be a success in itself. He's not doing it for money and fame, he's doing it because he thinks there is a valid reason to work for *years* to create a new language :)
Jai is cool, but C and C++ will not go away. I write in C despite some of its problems, because everything has a C API, for Jai I would need to write bindings (and know C for writing them anyway).
Jai can generate bindings. That being said, of course C/C++ will never go away.
@@filipg4
C++ has the worst syntax of any programming language not created deliberately as a joke.
Rust has the worst semantics of any programming language not created deliberately as a joke.
Jai can’t compete if it’s never released…
@@filipg4 Like any other popular language. And usually bindings don't translate well (for things like preprocessor macros, for things like complex C++ template metaprogramming bananas, etc.) And then there is a mental burden of translating the documentation from C into Jai (unless the autotranslate that as well) and a general familiarity with C is still required because when your bindibg are wrong or you use them wrong because you do not know C/C++ then you have a problem.
I never really like autogenerated bindings, I think it is better to write bindings manually when only very few functions/types are needed in the bindings.
@@filipg4 Even Objective-C will never go away (not in my lifetime).
I wish I could experience his language, but it'll be a few years still.
1. thanks for linking to original video
2. jon's blow-ing up in size and should cut back on sweets
Might be he's just out of shape compared to the interviewer. Dude's jacked lol
He is jamming to finish way too many projects, hard to eat well if you are not doing it systematically
Code needs to be beautiful !!
Like Jonathan says, this is how we get new languages and tools.
But I still don't know what it is C++ pain point.
One of the reason he said was right in the beginning, C++ is slow to compile.
There are efficient mitigations for that.
1. Instead of C++, make lower level stuff using C, compile them to libraries that can be reused and just link those to project.
2. Disable optimizations on development time.
3. Understand how compiler actually works. That means properly split code to header and code files. I've seen projects where people put everything on header files or something similar and that likely lead to slow compilation.
4. Understand how make works. It track changes and make only necessary steps to produce binary. Like only build object files based on changes on code and link.
5. Use threading in make.
6. Think carefully how to create test infrastructure using mocks properly.
7. When creating game, build "game logic" in code, but script content, so you don't need to build again with some small change.
And short version, using tools properly and not doing some dumb things avoids a lot of problems. I don't think C++ compilation time is issue because it can compile so much in.. second. I think C++ has actually huge strength in game programming because there is so large consensus that high performance game code should be written in C++.
What I see as pain point is that there are no proper framework so C++ game code is often hard to read.
Jonathan is in the Messiah phase now. Thinking he has ideas that nobody ever had before.
its crazy that he insists on doing everything himself from scratch when nothing he's building requires any of the super fast, efficient code he's always going on about. Witness and whatever sokoban he's working on now could have been built in half the time with Unity.
@@Raxfyr yep.
@@Raxfyr it's crazy but I think it's cool. using someone else's library/framework/engine can be torture. when you build it yourself, the sense of reward is immense.
@@Raxfyr indeed. It is NIH syndrome in extremis.
But hey, he has the money and the time so he can do whatever he wants
@@Raxfyr Given that increases in computing power of new CPUs are getting smaller and smaller with each passing year, (can only get so small with transistors) it's a very good mentality to have optimization and deeply understand what you're doing. We used to launch missions to the Moon with computers weaker than the cheapest Arduino, nowadays Chrome eats half of your RAM just by opening a couple of tabs. Whether we like it or not, soon we will have to go back to the reality of having to optimize everything if we want more than one program running at the same time on the same machine.
I trust Jonathan. I find him to be reasonable even when he is frustrated [but i would encourage him not to be annoyed , he should expect to be annoyed by stuff and laugh about it]. 😺
People and Tech over complicating things. So it is an opportunity to someone like Jonathan.
Maybe Epic is looking for a language like yours instead of Verse or you can upgrade Verse. Or you can go even higher goals.
He is NOT reasonable at ALL. He is delusional.
@@Valentyn90A Watch his interviews and conferences, he criticize himself and criticize his own early builds of his games, he admit of his own mistakes and limitations and he is aware that other people are better than him in other aspects. He is also aware of how people perceive what he say and how he say things, so he rephrase what he is saying according to who he is talking to and stick to actually answer the questions.
So i'm confident that He does have a reasonable and valuable thought process even if it is not perfect it is good enough to respect his thoughts and take it seriously.
If you can't watch his stuff, Trust me ;D
Verse will fail. It’s too weird for most people.
I wish he'd stop talking about it and just release the language and the reference compiler.
Everyone in the comments misses the point. He's not doing this to make money. He's not doing it to replace other languages. He's not even doing it to make better games.
He's doing it because he wants to and he can.
No. I think he needs his language to work on his next game as it is such a big project that he wants something he is truly happy with.
These problems he complains about have already been solved by Java. Fast compile times. Good performance. Easy to read syntax. There is a few good open source game engine written in it already. You can write code and test it out in a few seconds.
C++ is better than java at those things and he is even complaining about that
I can hear him clenching his fists at this comment.
Another language starting, inevitably having the same limitations than other languages, because everything nowadays is just another syntax on top of LLVM. Why not contribute on something that already exists ? Or just use plain old C when you really want to have full controll ?
Jai already has a custom back-end and it's metaprogramming capabilities alone are already lightyears ahead of anything on the market.
C has too much undefined behaviour
@@asdqwe4427 if you think C has undefined behavior, at this point you might as well say that Assembly has undefined behavior.
@@filipg4 really? I enjoy a lot listening to Jon but I can’t quite grasp sometimes what the bigger deal is about.
I’m a non programmer that started making games since the Microsoft XNA days, then Unity, so basically 95% of my experience is C# and associate graphics API and shaders.
Some might say that C# is not a real language and that game programming is not real programming and more “just scripting”, but I feel like I barely scratch the surface of what it’s possible, I’m using barely 10% of the language and libraries capabilities I think… can’t grasp how JAI would be so much better 😢
@@alejmcWhat you are doing is absolutely real programming and majority of people will agree, Jon included. If you write code to make the computer do something, you are doing programming, regardless of your tools/languages.
Jai is perhaps a bit more difficult to appreciate if you did not get a chance to use it, or if you did not spend much time with C++. Because what Jai does really good is make things which are very messy/difficult in C++ like metaprogramming/builds/memory management/etc. - really easy without limiting what you can do. Combine that with a ton of quality of life improvements like better errors, smarter compiler, super fast compilation times, types as first class citizens, much nicer syntax, etc. and you get yourself an amazing systems language.
Hope that clears it up a bit.
Okay, this is embarrassingly vague.
You know I woke up this morning and had the craziest thought. How much better things would be with just one more programming language...
When is it going to stop? We're north of hundreds of languages at this point.
It's like Linux, let's make a new distro everyday... cause we don't have enough.
What you end up with is a disparate landscape where nothing works with anything else.
He isn't creating another programming language to satisfy anyone other than himself and other game programmers that have been frustrated by the same friction that he has. So if you don't grasp why it's necessary, it's not for you.
Closest thing to it right now is Rust due to the community effort. But using a systems programming language for general scripting (bash, python, lua), pc/mobile game dev (from c++ to kotlin to js), access to data science tooling (python, julia) etc. is just not worth it
I am a golang backend dev and I'm better off using react+ts for a portfolio website and lua for hobby game dev and bash for scripting
Also, there are multiple app communication protocols ranging from extern c to protobufs to json depending on needed level of ease of use and flexibility
But how do you know that the other more than a thousand languages were also invented in the morning? It could be a lunch time thing for all you know.
Different languages are better tailored for different kind of tasks. Otherwise we'll have the mentality of JS running everywhere, even where it has no business running.
You know, this can be said about a lot of things, like why would Rimac make another car company, don't we have enough of them? Why would Framework make yet another laptop, we already have established brands. Why would anyone make another videogame, we already have too much to even find the time and play our backlog.
Let the man do his thing, maybe it will be a failure, maybe it will be a success. Maybe it will solve *his* problems and that will be a success in itself. He's not doing it for money and fame, he's doing it because he thinks there is a valid reason to work for *years* to create a new language :)