This is a short reminder to turn your volume back down after you finished watching the video :)
@faust16526 жыл бұрын
you are a saint
@michaelanderwald41795 жыл бұрын
This video is about 17db too quiet. Someone didn't watch his LUFS on this one.
@tatoforever5 жыл бұрын
Saving a pair of ears! 😅👌
@nathanesau14 жыл бұрын
@@funnyonlineuploads for
@RogerBarraud4 жыл бұрын
Thankyou :-)
@mkaatr6 жыл бұрын
Game compiles in 1.7 seconds, his reaction: that is pretty slow.
@seditt51465 жыл бұрын
@@JRichard86 I have heard mention from many of my coder friends that their projects at work, games and not, take like 4-6 hours in many cases for full rebuilds.
@0xCAFEF00D5 жыл бұрын
@@JRichard86 kzbin.info/www/bejne/bXy7h6KuZZJqorc This is a good one. A build system that builds the game in a day if it doesn't crash.
@truthteller46894 жыл бұрын
My Unity game is taking about 13 seconds to compile! It is too slow for me!
@myanrueller914 жыл бұрын
Okay, but how many times did he do a compile before the talk just to keep it in registers and RAM?
@jonny__b4 жыл бұрын
@@myanrueller91 I've seen him compile cold on his stream. It's still insanely fast
@bitchplease58956 жыл бұрын
Lot of bad comments about the language, but I think we should just appreciate that someone has dedicated lots of hours to give us an alternative to C, which seems to focus on problems that most of the programmers face while working on large projects
@rallokkcaz6 жыл бұрын
Bitch Please check out the Crystal programming language as well. It's an exciting time for compiled expressive languages. Thanks LLVM!
@G33KN3rd6 жыл бұрын
this isn't an alternative to C, it's an alternative to C++.
@G33KN3rd6 жыл бұрын
@Caene Depends how Jai comes out. I mean remember that Jai isn't even released yet for use/testing. Secondly, why not use C99 for a game engine? I mean when Jai releases, the industry would likely evolve to have C and Jai mixed code which would be the more likely outcome rather than solely Jai. IIRC, a developer said at CPPcon that C++ is used in gaming industry just because culture norm and it just sorta became the standard that way and he said he preferred C99.
@G33KN3rd6 жыл бұрын
@Caene yea, most programmers stick to what they learned in college or what their job requires. It certainly doesn't help when tech recruiters just function off buzzwords to make money. I still contend that Java, with no unsigned types or any way to pass primitives by reference, shouldn't have reached top language status... Another thing I note is that, with Jai's arrival, we're pretty going into the Era of Industry Specific Languages; Java/C# for business/enterprise apps, Jai for gaming industry, C for the embedded systems/IoT, Python for teaching & scripting, etc.
@gracefool4 жыл бұрын
@@G33KN3rd I think you're talking about developer Mike Acton (now lead dev at Unity) in this talk: kzbin.info/www/bejne/qImTeqeMerudfsU
@pymath5771 Жыл бұрын
The bit about climbing to heaven reminded me about a Carl Jung quote (I'm paraphrasing here): "The tree that reaches the heavens has roots that reach into hell."
@friedrichmyers8 ай бұрын
And it should have those roots in hell to be a great tree. If you solely reach heaven and avoid hell, the tree would way, as is the case with modern high-level languages
@mindvoxel6 жыл бұрын
He's the hero Gotham deserves. I will be using this language. He hit upon so many different everyday language annoyance that as a programmer you tend to notice, but you just throw your hands up and say "fine" because it's just what everyone is used to. What he said about IDEs being cumbersome especially hit home for me.
@dsego846 жыл бұрын
zig is also interesting, very much on the same track.
@rareraven99514 жыл бұрын
@jqbtube aaah you are a troll. I see now.
@RogerBarraud4 жыл бұрын
@jqbtube Maybe you're just rude.
@franciscofarias63852 жыл бұрын
Like, I don't even think the problems are the IDE themselves, but the fact that some problems exist and we need the cumbersome IDE to alleviate them. I'm not really a C++ programmer nor a game dev, but I like the way Jon thinks and I'm eager to see how Jai turns out.
@bertiesmith30218 ай бұрын
What’s problems with languages got anything to do with whether someone wants to use an IDE or not?
@DanielGilchristYT6 жыл бұрын
The best way to make this presentation would be to find something that took so long to compile in a C language that he could give the presentation while it was building. And then build the same program in JAI at the appropriate time slot so they would finish at the same time, at the end of the presentation, just as he's ready to make his final point.
@invntiv4 жыл бұрын
Yeah you know like it would be so easy for him to have just rewritten a whole c++ game in Jai , its not like he’s spending his time writing a new language or anything
@saniancreations3 жыл бұрын
@@invntiv I imagine he'd just write a C++ to Jai transpiler, and run that on a C++ game (maybe even The Witness) Not that making a transpiler any less hard, it'd be funny though
@lnus78323 жыл бұрын
@@saniancreations well the first jai compiler protyoe actually did just that. it would transpile to c(++) and then run that compiler
@Praernym3 жыл бұрын
that is unrionically a really common way to prototype your new language
@i_am_feenster4 жыл бұрын
Wauw, I had to check , I loaded up the witness and holy shit, the game loads INSANELY quickly compared to games of a similar size... He really does care about quality of life for both programmer and user!
@gracefool4 жыл бұрын
I heard it crashes a lot.
@turgayasrincankaya4 жыл бұрын
@@gracefool I finished it twice. Never crashed once.
@gracefool4 жыл бұрын
@@turgayasrincankaya I guess it's an inherent problem of not using a big engine: you're more likely to find new os / device driver / library bugs. What I mean is, crashes that some people report may not be his fault.
@raccoonlad3 жыл бұрын
Also vouching for insane load speed and 0 crashes
@nolram10 ай бұрын
And he takes 10 years to make a game
@user-tt4dy1ti5v3 жыл бұрын
Q&A 49:25 Thoughts on Unity's Burst compiler? 50:53 Will Jai support SIMD and auto-vectorization? 52:35 Thoughts on Bret Victor's ideas about visual programming? 56:22 Will Jai be free and open-source?
@MrAbrazildo Жыл бұрын
It should be pinned.
@berkano_plays6 жыл бұрын
Interestingly, the presentation software he uses is written in Jai and he's done it because "PowerPoint wasn't addressing his needs".
@VolcanicPenguin6 жыл бұрын
Hahaha
@MilieuChris6 жыл бұрын
Worst case of NIH i’ve ever seen. This is quite unfortunate, as *we do* need both languages and paradigm shifts for game/simulation programming, however he thoroughly misunderstands (or deliberately misrepresents) several basic computer science principles that are still needed and used. He may be bright, but there are plenty of bright people out there that can skillfully deduce when to apply a paradigm and when not to. This binary thinking he employs (not just on computer science) is getting in his way.
@dsego846 жыл бұрын
It's not nih, it's a way to test the language & compiler. only writing real software with the language is going to show you the pain points.
@TraceMyers266 жыл бұрын
@Chris at Milieu - I think you're misunderstanding the fact that he's talking about misguided implementations.
@lipid91196 жыл бұрын
You took a long time to say nothing. Why is it wrong that he made an in-house tool? What did he misrepresent and how? What are those principles you're talking about and why are they needed?
@adampaul79057 ай бұрын
It has been 6 years. This project is really exciting, I really hope it will be a clean project when it gets out.
@dandymcgeeКүн бұрын
I've been using it for about a year now, and I can tell you that it has FAR beyond exceeded my expectations in pretty much every way. It's actually insane how fun it is to use, once you learn the basics (which is fairly easy if you already know C or C++, because the compiler comes with an in-depth language tutorial, with tons of real-world example programs, written by Jon himself).
@joshualarson28086 жыл бұрын
I really appreciate that he sees the value in visual debugging. I find it ridiculous that we don't have more visualization tools today. And I don't mean that there aren't a few tools scattered across completely different languages and domains. I mean visualization isn't a part of the CULTURE of programming. I like to think of it in terms of "How much of my brain am I using?" because that is simply the neurological fact of how we'd improve. The future of programming will involve linear, logical thinking; holistic, intuitive thinking; our highly developed ability to stereoscopically visualize complex patterns much better than text allows for; and it will also involve moving more of our body (simply because a significant portion of our brain is already devoted to that). Programming today is just plain horrible. I'm really grateful there are people out there who care about making it better for game developers. :)
@dragz8884 жыл бұрын
your brain can intensely focus using one part at a time. trying to use "as much of your brain as possible" is essentially mental multitasking, which has been shown to hinder performance
@dickpiano180211 ай бұрын
People want to be hackers. People prefer to feel like hackers rather than to be productive. End of discussion.
@bertiesmith30218 ай бұрын
You should try programming in COBOL in the mid nineties. We are much better off now.
@runninggames7712 ай бұрын
90% of the time you just write a visualization for the specific thing youre looking at. Maybe have a log file and import it into excel and graph it.
@adamschlinker9724 жыл бұрын
"It's the thing that knows what files are in the project" hahaha
@soulstudiosmusic6 жыл бұрын
Hey guys, Insanely low volume on this video.
@xaviervilloing66366 жыл бұрын
38:46 That "context" part was sooo interesting ! Built-in Global customizable toolbox interface. So powerful.
@Autopawn6 жыл бұрын
A horrible ghost exists in the modern programming, we can feel it though we can't see him clearly. Any effort in detecting the ghost is a good effort.
@KunjaBihariKrishna2 жыл бұрын
It or him?
@chenlim21656 жыл бұрын
Wow! The criticisms of "modern" languages are spot on. The conventions that focus on performance are brilliant. I hope this can do for client apps what Ruby and Rails did for server apps. Godspeed Jonathan!
@anonymousweeble22246 жыл бұрын
What did Ruby on Rails do for server apps? From what I see, Ruby on Rails stands as another example of a language trying to make the climb to heaven. A failed attempt at touching the holy grail. I wish I could make web applications in c, but I recognize the language + framework is only one problem that arises from the web. We've got to get rid of the layers and start over.
@SuperJer6 жыл бұрын
What's stopping you from making web apps in C? (At least on the server side since we're talking about Rails.)
@minRef6 жыл бұрын
superjetdotcom umm, nodeJS is kicking Ruby on Rail's ass, and it was written in C
@noxabellus6 жыл бұрын
@@minRef totally missing the point
@hasen_judi5 жыл бұрын
@@minRef lol Ruby is also implemented in C
@casvanmarcel6 жыл бұрын
I could just watch a 10h presentation from Jon Blow. this was very great. I watched it 3 times already. I am very hyped for his new language, and you should be too if you understand the implications it will have. thanks for the upload and to jon for the presentation
@gracefool4 жыл бұрын
He has many hours of stuff here on KZbin.
@junosoft3 жыл бұрын
21:48 1 Million lines of code per second might seen hard or impossible, but here is some perspective: I've written a toy compiler in C, and was comparing it to Jon's goal. It is capable of compiling 18127 lines of code in 57 Milliseconds. This is 318400 LoC/s, about 3.14 seconds to compile 1 million lines, 3 times slower than Blow is goal. real 0m0.057s user 0m0.029s sys 0m0.011s when outputting BF and about 3 seconds when outputting LLVM and then, calling clang. real 0m2.941s user 0m0.332s sys 0m0.162s (If you repeat, it gets down to 500 milliseconds, because of cache, but that is not fair.) Just 6000 LoC per second when calling clang. So my toy compiler is just 3 times slower, than blow's goal. (I never cared about performance on writing, except deciding to use C). But it is a toy compiler, and the language is very simple (It is C-like syntax, but only primitive types, no structs). Clang is much, much slower than what it could be, if Jon can write himself a C++/C like language performance-wise and blow this shit out of the park.
@pohjoisenvanhus4 жыл бұрын
So in other words there's a lot of hastily built bad traditional stuff getting in people's way but everyone's just so used to it that most don't care.
@liran94926 жыл бұрын
Hi, I am reposting this video on a Chinese website for people who are interested but have no access to KZbin. I will state that you own the rights to it. Just let me know if you have a problem with this. Thanks.
@RaphzTube6 жыл бұрын
Great job
@antonsimkin2 жыл бұрын
i tryied to increase volume like 100 times while watching this video
@khatharrmalkavian33066 жыл бұрын
VOLUME
@gabrielkwiecinskiantunes89506 жыл бұрын
SURFACE AREA
@TheIlluminatedParker4 жыл бұрын
More like ᵥₒₗᵤₘₑ
@waltwhite81264 ай бұрын
For anyone having problems with volume, download the youtube enhancer extension, it comes with a boost in volume and other tools to make youtube better.
@logixindie6 жыл бұрын
I like to pretend that I understand (:
@TBButtSmoothy5 жыл бұрын
any keyword that makes you feel lost, pause, write them down as a "to search: " list. Pay attention to the context in which those words are being used, or blank out any word you dont know and read/listen to how the sentenced is structured and search based on the blanked out keyword... this is how i quickly understand/learn as fast as possible (:
@SETHthegodofchaos4 жыл бұрын
@@TBButtSmoothy Great advice! Dont be ashamed that you dont know something yet. Instead be excited that there is still so much to learn.
@shavais336 ай бұрын
This talk makes Jai sound so amazing! I wish they'd release a version. Maybe they don't want to commit to a spec and then face backward compatibility issues? Maybe it's just not all there for certain parts of it, and the vision just isn't complete without those things? But by the time it's released, I fear I won't have very many productive years left! I have things I want to try to do. I can't just put those things on hold for years and years. I'll have to use some other language. I suppose I should try to find out how to apply for the closed beta.. but its seems like they probably get a lot more apps than they can process any time soon, and my app would probably "fall below the fold." Maybe Jai is more for the next generation's benefit, I guess.
@Alonedream156 жыл бұрын
Go Jon Go the history of programing will rember you !
@anonymousweeble22246 жыл бұрын
Great work! Interested to hear the talk about the problems of auto-optimizations mentioned at 51:40
@Noble_Savage2 жыл бұрын
5:32 "you can have a language with most of the features of C# but as low level as C at the same time, it's just that nobody really made that" They have it's called Beef Lang!
@turnkey_hole Жыл бұрын
maybe when you can run the IDE on a mac lmaooooo
@SepehrKiller Жыл бұрын
seems like they started creating Beef Lang in 2014, Jonathan Blow also Started creating Jai Programming Language in 2014 as far as i know and they introduced Beef Lang to the public in 2020 based on my research this talk was in 2018, so basically as far as he is concerned such a language didn't exist or if it did, it wasn't popular or widely used (think like C++, C, C#, Python, JS, Swift, Java, Kotlin, Rust, ...)
@robchr6 жыл бұрын
I think it's important to study both high level and low level languages. Learning Haskell has taught me to make smaller interfaces that follow algebraic laws. For example, data parallelism is the Functor interface and task parallelism is the Applicative interface. And if I need to sequence several operations on data I can use the Monad interface. Languages that can represent these abstractions easily usually require some sort of runtime cost because of GC. Now I've now started learning the Rust language and been able to represent these abstractions without the need for heap allocations and dynamic dispatch. I think that's very promising for using high level composable interfaces while still having low level control over where memory is allocated.
@jamma2466 жыл бұрын
I agree with this. And I don't think that functional languages necessarily hide methods, so long as you understand them properly. The issue is that it's very easy for someone inexperienced to make a working but very slow program using a functional language, but similarly it's very easy for someone inexperienced to write a non-functional program which works reasonably quickly but has bugs. I think if you know what you're doing and keep organised, incorporating ideas from higher level and functional languages can be very helpful.
@gracefool4 жыл бұрын
Though it's not coincidence that you've both said *functional*, not object-oriented.
@marcelowind4 жыл бұрын
Why do they pan away from the slides? Even when he is pointing and mentioning something that is in the slides? I caught myself pausing and step framing to see if I could see what he was talking about
@strictnonconformist73694 жыл бұрын
I agree, that’s a stupid thing if you’re wanting to read slides. Now, for those reading lips, if they did it right, it might be better, but then why not have a signer instead, beside him? Then there’s closed-captioning. Of course, he does speak fast enough that most would need to watch at .5x speed.
@the.monologue29 күн бұрын
@@strictnonconformist7369 i watch at 2x speed because its so slow to me
@daleowens76954 жыл бұрын
I want to use this language already.
@daleowens76954 жыл бұрын
I'm so excited to try this language.
@SepehrKiller Жыл бұрын
Same
@Gomace11 ай бұрын
Either this will Blow people out of the water, or it will Blow. There's no in-between.
@Jericho_oO4 жыл бұрын
can't wait to try it out.
@EmberMage81926 ай бұрын
Come on dude, IDE stands for Integrated Development Environment if you didn't know. It *_integrates_* debugger, text editor, file browser, terminal, version control system, database tools, and other stuff all in one thing so that you don't have to keep a dozen different tools running and switch between them. If you don't find that helpful, well, I'm sorry for you
@afterschool25945 ай бұрын
Nah separate tools are better IMO. As a beginner you won't need all of those in IDE. And I think as an advanced programmer you would have known how to use Git, Debugger, compiler, and terminal separately.
@pleggli6 жыл бұрын
Go's incremental build (build cache) is quite nice. An directory is the smallest compilation unit in the language, the cache works by doing an hash of the source files in the directory to decide if it needs to be recompiled. The meta programming features of Jai probably makes this harder to implement thogh since any resource anywhere could be drawn in during the build.
@rationalcoder6 жыл бұрын
I think the idea of Jai is that there is no incremental build solution because there aren't incremental builds. Everything is rebuilt completely every time and it still takes a few seconds max. It's just like `jai program.jai` and done, no matter the project size.
@pleggli6 жыл бұрын
Well, with some kind of build cache that could become a fraction of a second instead which is even better.
@rationalcoder6 жыл бұрын
Faster? Maybe. Better? Probably not, IMO. The whole point is for every build to be a unity build. Incremental builds are a serious annoyance in large projects. Having a full rebuild every time is the ideal development situation. It's one whole class of potential errors removed. I do imagine, however, that he wouldn't be against storing libraries in an IR for such purposes. For now, hitting his 1M loc / s baseline goal is fast enough. That's fast enough to compile unreal engine in ~2 seconds (In debug mode). Once you have a few million loc in your codebase (you would need like 10 M to get an annoying turnaround time), I figure pulling code out into libraries would be natural, and compile times would start to increase more logarithmically. Maybe incremental builds could be optionally enabled to help when you're working with release builds? I think incremental builds should be put off for as long as possible, until there is no other way to speed things up.
@anthonyewell34707 ай бұрын
I think Jon thinks mostly highly of Go, but also it's not meant for game dev.
@timonpasslick6 жыл бұрын
If you use a vector/Vec/dynamic array class (with RAII), do you also get that many cache misses?
@PoxikFrostbite4 жыл бұрын
If you take The Science out of science, more people will pretend to know how to use it.
@prezadent16 жыл бұрын
3:18 Mystery Science Theater 3000
@nambreadnam5 жыл бұрын
This will come out and people will abuse the hell out of the language in exactly the ways Blow bemoans, except way worse because the base usage is faster ;) His ideas are interesting, but only apply to the very skilled. A lot of the "bloat" in languages is about reducing cognitive load, often at the expense of runtime speed. This argument kinda falls flat regarding build systems though. That Jai build interface looks amazing.
@nambreadnam5 жыл бұрын
@Tonol Togovoli Apologies I meant that his programming style applied to the skilled, I agree that the language may be much easier to use. I hope you're right about the best practices, just my own experience hasn't been that in other languages. I don't think misinformation and less then stellar coding standards are a result of maliciousness though, more just imperfect information propogation through vast networks of programmers.
@GonziHere3 жыл бұрын
@Tonol Togovoli Yeah, There is something to be said about "simple" functions that you learn once and then use for all your life (think woodworking), as opposed to learning nooks and crannies of a ready made solution that has made tons of assumptions "for you" (think game engine). I do think that he is right, because - most of the time - industry solution doesn't really suit your needs. It helps to hire other people to the project, but it doesn't help the project directly.
6 жыл бұрын
Which of Jonathan Blow's other videos goes into metaprogramming in more detail?
@nergethic77596 жыл бұрын
Check out his demos: "Self-Browsing code" and "Code Modification". I guess that polymorphism is also a kind of metaprogramming so you could look at "Structs with Parameters", Polymorphic Procedures" part 1 and 2, although they are slightly outdated :)
@Q_202 жыл бұрын
Can I just look at the presentation screen
@axthd2 ай бұрын
I think I really like Jai Language
@pskocik5 жыл бұрын
Why would forcing all functions to silently pass a context struct pointer be preferable to just letting the functions that need it access it via a thread-local variable?
@CrowCZ4 жыл бұрын
That meta programming stuff during build (talking to compiler, adding code etc.) is very similar to what Microsoft recently added to C# as Source Generators. I know that it's not a new concept, but the implementation and theory is very similar, so I wonder if they got inspired by Jon on this.
@SG1guru4 жыл бұрын
Its not a new concept, for example Haskell has this feature since 2003, and i'm pretty sure it's not the first to do compile-time code execution either. Also at least one of the creators of haskell now works for Microsoft in their language research/compiler division, so if anything, it was this language that inspired the feature. The thing about the code execution at compile time is that it makes compilation result *undecidable* (see halting problem) which most compilers/languages are trying to avoid, C++ for instance is very careful to relax its constexpr limitations to ensure that the expressions always terminate. Really a tool like that shouldnt be the only way to do metaprogramming, but a method of last resort instead, when no other solution is possible.
@mennol3885 Жыл бұрын
It has been a thing since Lisp in 1960. Everyone who did an academic study in Computer Science knows about this concept. If not ask your money back.
@ReagueOfRegends6 жыл бұрын
"The IDE is just a giant piece of junk." Chortled outloud at that one. So true. Switching from windows to a linux box with only command line tools and my productivity at least doubled.
@MrGeekGamer6 жыл бұрын
As a developer that uses both, I don't believe you. Visual Studio blows gdb out of the water for debugging.
@ReagueOfRegends6 жыл бұрын
And that is why any sensible person uses gdbgui
@MrGeekGamer6 жыл бұрын
Sensible people or just rabid Anti-Microsoft people? I'll use whatever gets the work done best and for debugging C++, Visual Studio does it best.
@ReagueOfRegends6 жыл бұрын
Ah, the rare anti-contrarian contrarian.
@zemlidrakona29154 жыл бұрын
This guy knows his stuff. He's not just some Joe Blow......... On second thought I bet he hears some variation of that joke every day.
@opl5004 жыл бұрын
I can see running code at compile time that *extends the compiler* getting abused.
@Mark-kt5mh4 жыл бұрын
That sounds a lot like “real programming” interesting results are possible, but they never make up for the productivity and debugging inefficiencies.
@Jesus228FBI7 ай бұрын
> I don't even know what job that is (a job of IDE) yeah, what job could it be? I'm super smart and I can navigate in a legacy C++ codebase through my super cool vim/emacs program
@Olodus6 жыл бұрын
Great talk. Am really looking forward to the language. Really like the answer to the "Future of Programming" question. I would probably have asked something about Rust since it is atleast playing in arenas close to eachother. I really like the static grantees Rust gives a programmer. I know Jon has commented on it before and said that he liked some parts about Rust (it was then just in its infancy) but maybe not all the cruff it imposes on the programmer. I really think that kind of stuff is a good answer to how we move forward as an industry (though I am not a very experienced programmer yet so I might be wrong). Not in the gaming industry maybe (you don't need to prove a game) but in the larger software industry as a whole. Take a hit statically and be sure it is correct when it is sent out. Then again, with the speed and ease-of-use of Jai's compiler static stuff would probably be something that can be added.
@hasen19576 жыл бұрын
He talked about Rust a lot. He said it introduces too high of a barrier with its ownership rules and it's basically a "big agenda" language, which is not what JAI is.
@Olodus6 жыл бұрын
Ah ok thx, haven't watch as much of the streams as I would have wanted. Yeah I can see his argument there and would probably agree to some degree. As I said, I can see why Jon made Jai the way he did and are really hyped for it. But as I said, I do believe the other parts of the industry needs the security Rust gives and it is really awesome that we don't have to sacrifice any (runtime) speed to have it. But as I said "what do I know" really. I still believe dependent types and shit like that will make it to industry some day so...
@oblivion_28524 жыл бұрын
@@Olodus I think Blow's intent with Jai with his metaprogramming and compile time message systems are that you can literally write your own code to implement Rusts guarantees yourself. That's probably one of my favourite things about Jai is that that compiler is no longer a black box but rather a compatriot that you can talk to and ask for the finished data structure so that you can do tests and write in whatever style of thinking you prefer.
@vladimirkraus15996 жыл бұрын
I very much like his approach to programming languages and thinking about problems and I admire his creativity and stubborness to make things perfect. I am looking forward to this new language. Though there are already some which are somewhat close to what he is creating... Nim, Zig, Haxe... But none of them sounds perfect. Maybe Jai will be. But I am afraid of one thing. I fully understand the criticism of OOP, but if a language does not support this paradigm (dynamic dispatch, inheritance...), I do not think it will be widely accepted. Maybe the next iteration could be "Jai with classes". In other words, give replacement for C++ not just C... Make it modern, without all the historical burden and without exceptions (we want explicit error handling!), which will make is much much simpler. :)
@hasen_judi6 жыл бұрын
I think he's designing it so that all the things that people use dynamic dispatch to achieve can be achieved at compile time. If you do want dynamic dispatch you can manually create a struct representing your vtable or something like that.
@gracefool4 жыл бұрын
Who cares about wide acceptance, nothing has wide acceptance right from the start unless it has billions of dollars behind it. Paradigm shifts always take time to propagate, it was true of OO and us also true of undoing it. Or as cyberpunk pioneer William Gibson said, "The future is here, it's just not evenly distributed."
@kuklama0706 Жыл бұрын
Have you heard the story of MSVC 6?
@unsaturated8482 Жыл бұрын
This guy is op.
@KvapuJanjalia2 ай бұрын
So, what happened to this Jai language? Where is it now?
@moonythm5 күн бұрын
Afaik it's in private beta
@bloody_albatross4 жыл бұрын
The part about program icons kinda surprised me. I write a tiny command line program under Linux which I cross compile to Windows and I add a program icon just for fun. It's not hard. I compile several .png files to an .ico file using ImageMagick and then use the mingw Windows resource compiler to compile a tiny hand written .rc file (23 LOC) that references the .ico file to an .obj file and then compile that in with all the other object files to the final binary. All in one simple Makefile (251 LOC, but doing a lot more than what I just said, including having configurations to cross compile to win32, win64, and 32bit/64bit Linux). So that's *more* complicated when actually doing it on Windows using the official tools? o_O
@bloody_albatross4 жыл бұрын
@championchap How do you compile any software without thinking about? Of course you have to provide the Icon in different resolutions (PNGs -> ICO) and then somehow tell the compiler about that and other metadata (program name, like author name, description etc.) using a RES file. I just use ImageMagick and a Makefile because I think it's really convenient.
@s33409855 жыл бұрын
I'm not even a game developer, but htis language sounds awesome (coming form a JS dev)
@Ilumar5896 жыл бұрын
Maybe someone already asked, but how will jai be any different than the rust language regarding the problem it's trying to solve ?
@Kniffel1016 жыл бұрын
Simplicity (especially in the build-process), *Better compile time, *More performance (at least eventually; Jon wants Jai-Code to be faster than C++ code, and most C++ compilers produce faster code than Rust-Compilers), *No OOP, *No garbage collection, *Powerful metaprogramming: - You have access to the AST (Abstract Syntax Tree) and the compiler provides your metaprogram with necessary information via messages. - You can call _any_ function and/or external API during compilation, including graphics/networking, calling programs etc. *The compiler looks for external dependencies /libraries itself. [I don't know if Rust does] *Temporary Storage (useful for strings for example) *Like Rust it has multiple return values. Most likely I missed a ton of features. But you can look at his Demos/Presentations to get a glimpse at all of them. :) _Note that many are a up to 4 years old, so implementation details have changed in some instances._ kzbin.info/www/bejne/i4XUi4Grn7aCoqM
@aiman_yt6 жыл бұрын
Kniffel101 rust does manage dependencies and has unity build. No header files. Does Jai have generics?
@Kniffel1016 жыл бұрын
No header files in here as well. Jai has polymorphism. No idea if that answers your question, since I'm not too familiar with the term "generics". But maybe the following video presentation does, I advice to view it at 1.25x, to shorten the time to
@aiman_yt6 жыл бұрын
Kniffel101 yeah that does answer the question. Thanks
@Kniffel1016 жыл бұрын
+Aiman No problem! :)
@pleggli6 жыл бұрын
I think that Jon takes his criticism too far because he's only thinking about programs where raw performance is more important than having as few potential exploitable security issues as possible also can be the most important factor where it's not an issue to take a performance hit for the added ease of mind. Jai looks like it will be a good language regardless..
@kiwec6 жыл бұрын
That's why other languages exist. You can't have everything, and of course you have to take tradeoffs.
@pleggli6 жыл бұрын
Yes, but there is a difference in repeatedly stating that certain language/runtime features are "wrong" instead of saying something similar to "doesn't work well for game engine development".
@JochemKuijpers6 жыл бұрын
pleggli at a game development talk, that's the implied context. Though the language will be all purpose by the looks of it, so it'll likely be able to do a lot more than just games. Having the meta program can help enforce security practices that can't even be tested for using unit tests or compiler options in other languages.
@murrylancashire6 жыл бұрын
The point is that there is a false dichotomy that language features that make development faster and less error-prone are by definition slow. Being slow and being easy and quick to develop with are not linked.
@pleggli6 жыл бұрын
I have developed a lot in lisp earlier and I know that meta programming is powerful even if it can obscure how a program works. But you can always write your own linters for languages and the simpler the language is the easier it is to write those linters. I've never tried to write a linter for C or C++ though for some reason even though it would have possibly been a good idea to have one in some cases :) Btw, I usually use emacs rx library as an example of good use of meta programming.. It's a DSL for regular expressions with only one small macro which validates and compiles the dsl language into a regex github.com/emacs-mirror/emacs/blob/master/lisp/emacs-lisp/rx.el . It's a very good example how to use meta programming in an elegant way to enforce it's own usage at macro expansion time.
@xvidcap6 жыл бұрын
Thanks for the upload!
@ytsas454885 жыл бұрын
TBH, not sold on the implicitly passed context struct. But the metaprogramming feature looks really useful.
@matthewpeterson51596 жыл бұрын
AWESOME talk. This language is the best language ever invented BY FAR. CAN NOT WAIT to use it!
@kalekold6 жыл бұрын
If he wants people to move from C++ then Jai will have to be interoperable with C++ and be able to sit alongside it. Big companies are not going to rewrite huge 20-30+ year old pieces of software in one go.
@matthewpeterson51596 жыл бұрын
kalekold I don't think he cares what people/companies do; he made this language for himself, fundamentally. Other users are a secondary thing. But I mean it can interop with C and I'm sure there'll be some level of C++ interop, but frankly I don't think it's important at all. If you're using this language you're probably starting a new project anyway right? Idk. All I know is that I can't wait to be able to use a language that allows me to do what I want and need to do without having to fight the language/compiler for hours on end. Plus compilation speed :P
@felixp5356 жыл бұрын
I'm really curious how much this language will be focused for game development. And I'm wondering how much of a hassle it will be to try and develop something that is not a game with it. Also hope would could have some kind of modifiable editor like Unity or Unreal (of course not that much complex), but something that can be reused as a base for almost every game.
@hasen19576 жыл бұрын
He mentioned several times that he plans to release a game engine with the language that can be used as a basis for a lot of games.
@trisinogy4 жыл бұрын
Audio level is not OK.
@vast6347 ай бұрын
Why is the language changing the syntax away from the classic C style, if it could express the same logic with the classic C style mostly? Those are always unnecessary roadblocks on adapting the language.
@notyourbruh6 ай бұрын
I agree with this so much, it's like why not just use the c style declaration and syntax.
@afterschool25945 ай бұрын
Syntax doesn't really matter though
@waltwhite81264 ай бұрын
You aren't his target audience if you can't learn a new language due to having a different syntax from C.
@vast6344 ай бұрын
@@waltwhite8126 Well if the language fails to get customers to adapt it: there might be one of the reasons. Many of the most popular languages (C++,Java, C#, JavaScript) took over the C style syntax, or borrowed from it for a good reason.
@arwahsapi4 жыл бұрын
So has the compiler been publicly available yet?
@FirstNameLastName-xe4mx4 жыл бұрын
"IDE is a giant piece of junk" , that's what i wanted to hear.
@Nick-lx4fo4 жыл бұрын
Notepad++ ftw
@FirstNameLastName-xe4mx4 жыл бұрын
@@Nick-lx4fo vim is best imo but never used notepad++ so can't tell about that.
@Nick-lx4fo4 жыл бұрын
@@FirstNameLastName-xe4mx vim is the best, next to emacs
@FirstNameLastName-xe4mx4 жыл бұрын
@@Nick-lx4fo emacs is not just a text editor so it is lot more powerful and extensible . I think vim still is the best for being just a text editor.
@aiman_yt6 жыл бұрын
Does this language have a lot of undefined behavior? If not, then its gonna be great. I mean, C has signed overflow undefined. Come on, this is 2018 everyone and their dog uses 2's complement
@Kniffel1016 жыл бұрын
You can literally implement certain types of behaviour into your codebase yourself! He demo'd it with a automotive format called "MISRA" which doesn't allow for indirect recursions for example. His metaprogram was able to test that among many other things.
@0xCAFEF00D5 жыл бұрын
He's had a lot of rants on UB. He's saying the language has no undefined behavior. There's platform defined behavior though. Chandlers cppcon talk has also been brought up and he has expressed that UB isn't necessary for optimization. I think the example that was brought up was UB signed integer wrapping for loops allowing the compiler to assume you never wrap (which can clearly be helpful). Jonathan's response was that if you wanted to express that you should have a language feature that allows you to express that. All of this is just what I recall.
@llothar682 жыл бұрын
Faster than C++ ? Runtime or compile time? With C++ Modules or without (they can improve everything 10-50x time)
@serkardis2922 жыл бұрын
Modules are C++ 20 feature and this video is much older. They don't speed up initial compilation, only subsequent ones.
@llothar68 Жыл бұрын
@@serkardis292 Of course they speed up initial compilation, factor 10 just by including "import std;" Also it does only not speed up the first initial compilation of a single compilation unit. In a full build that units can be added multiple times to all the different compile variants and unit test programs.
@exotic-gem7 ай бұрын
I think Jon has been to very different academic circles than I have. Here everyone uses C89 in academia. Functional programming is taught as an aside but the core of what we learnt was classic, imperative C.
@junosoft4 жыл бұрын
22:28 I can relate
@RiboFlavin64 Жыл бұрын
I just feel like he gives off the vibes of if you want to make a 2d platformer with a unique gimmick you should fuck off and do something worthwhile, not necessarily from this video, just his general persona
@sporefergieboy106 жыл бұрын
THEY’RE LAUGHIN CAUSE THEY KNOW
@PauloConstantino1674 жыл бұрын
LOL
@dandymcgeeКүн бұрын
everyone complaining about the volume of this video has clearly been watching too much MrBeast, or some other screaming youtuber, because the volume is exactly the same level as every other tech talk with average volume. :D
@FaZekiller-qe3uf Жыл бұрын
So, zero-cost abstractions? Yay!
@miguelprovencio52572 жыл бұрын
I’m not going back to vi or emacs so IDEs must be doing something worthwhile.
@MrVectorman6 жыл бұрын
I'm not 100% sure if is a good idea starting the talk with a rant and after tell, "Yeah but my language is different".
@hasen19576 жыл бұрын
The whole point of this language and why it exists is because of all the stuff that the other languages are doing that Jon considers stupid and wrong. It's not "Yea but I'm different", it's "and therefore I wanted to do something completely different from the aforementioned".
@pretzelboi644 жыл бұрын
C++ projects only take forever to compile because people abuse classes. When you only include the things that you need and don't abuse templates, it's pretty damn fast.
@llothar682 жыл бұрын
Yep and with this "terrible" IDEs you don't need the one class one file rule. Speeds up so much because most classes are too small.
@VolcanicPenguin6 жыл бұрын
As ambitious as I am, I like that I'm not this ambitious.
@chrisvouga88322 жыл бұрын
Why doesn’t he just use holy c??
@MNNoxMortem5 жыл бұрын
I disagree with him on so many levels, most of his videos become a pain to watch. However, I get where he gets many of his ideas from and therefore always value his views to see other opinions. No matter what: He was pretty successful as a game designer.
@kevinscales4 жыл бұрын
You should elaborate on what those 'levels' are. I often see people dismiss his thoughts but nobody seems to give any reasons. It would be useful to me to hear some different perspectives.
@gd76814 жыл бұрын
Yeah you need to be more specific than that.
@intellivision-amico6 жыл бұрын
can't be worse then modern C++
@graphics_travelers6 жыл бұрын
It's *than* not *then* .
@stefdevs6 жыл бұрын
Thenks.
@graphics_travelers6 жыл бұрын
No problam.
@amber90406 жыл бұрын
It's *problem* not *problam*
@johnjackson97676 жыл бұрын
Somali Girlfriend Who Pirated Your Pirate *whoosh*
@happyman_smiling6 жыл бұрын
He is 47 near retirement still he is passionate to create a programming language that’s really great.
@vladimirkraus14386 жыл бұрын
Near retirement at 47??? Not at all. Actually he is something like in the middle of his productive years... Well, he could have retired if he wanted not because of age but because of the money he made developing games.
@pogo5755 жыл бұрын
Game designer... retire???? 🤣🤣🤣😂🤣🤣😂🤣🤣😅
@alvarohigino Жыл бұрын
Wait, 47 isn't that old. He has at least 15 years if it's the desire of God, of course.
@llothar682 жыл бұрын
Still nothing released 4 years later.
@serkardis2922 жыл бұрын
It's in closed beta and gradually rolls out to more and more people.
@SnakeEngine Жыл бұрын
He has been given just one hour to give his language a chance, says that he could talk about its features and stuff for hours, and then the best thing he comes up with is basically a function returning an array on the stack. Like seriously?. Nice that it works for him, but there is a good reason why it is not implemented as a language feature in other languages. He is talking about standing on the ground while reaching to the sky, but everything he demonstrates, in any of his talks, is stomping on the ground.
@satellite9646 жыл бұрын
Best language is here.
@marijnstollenga16016 жыл бұрын
jeesh that syntax
@aiman_yt6 жыл бұрын
Marijn Stollenga better than C++ template spaghetti
@marijnstollenga16016 жыл бұрын
True, it is almost impossible to make something worse than that
@needlessoptions4 жыл бұрын
I love it
@earlmarshal26086 жыл бұрын
So the context struct. basically a thingg which acts as global namespace can be expanded? pretty much sounds like polluting global namespace which pretty much everyone agrees that it is bad.
@Yogzeek6 жыл бұрын
From what I gather from some of the code in the slides and some of his other videos, the user code can create contexts and choose which context a library uses. Jon has shown examples in his videos of how the user code can dictate how libraries utilise the user's namespaces.
@pixlark42876 жыл бұрын
There's nothing wrong with having a global namespace for things that are global, like thread ID, allocator function, temporary storage, etc. And if people want to expand it with things that it shouldn't contain, that's on them. Jon isn't going to restrict the language to make it idiotproof, his goal is flexibility.
@JochemKuijpers6 жыл бұрын
There's only one system to manage, so who cares if system interfaces like allocators and loggers are 'global'. I'm fairly sure you won't be able to break a library by polluting the context struct. That would be bad indeed. It'll probably be scoped in some way or another.
@APaleDot6 жыл бұрын
No, the context struct is specifically designed _not_ to be global. It defines the context a procedure happens in. By design, there will be many different contexts depending on what libraries you are using, how many threads you have, etc. A library occurs in it's own context, it doesn't pollute the other contexts in your program, and you have control over the context the library executes in.
@discountinn6 жыл бұрын
"The value of the IDE is close to zero". Seriously? Can you see a call hierarchy of any given function inside your project AND dependencies? Can an editor download your dependencies source code and allow you to debug that code? Can an editor help you navigate to the definition site of a function in one click? That's a bullshit argument. Even if the IDE was just a bundle of debugger and editor, it would be beneficial to jumping between two windows.
@hasen_judi6 жыл бұрын
All the things you're describing are editor features.
@nikolaikalashnikov42535 жыл бұрын
14:59 This is kinda sad to watch him try & compress all his ideas into 60 minutes and failing hard. He's much better when he's not worried about the clock. Unfortunately, this is 15 minutes of pure BS. He's playing defense and I would much prefer him to play offense and really go on attack mode... tell us specifics on why C++ needs to die. I know that he knows, but he should really spell it out for the audience. God, none of his friend's peer-reviewed this speech ? It's also sad in another way too... That here we are repeating the mistakes of the past. It's funny that we're making exactly the same mistakes of C & C++ too (the languages that he's trying to replace). I have learned long ago that "people are going to do what people are going to do" and sometimes nothing can change their mind. Knowing this, I can confidently predict that someone is going to come along and get the bright idea to add "features" to Jai (not me, otherwise it wouldn't be a fair bet). I'm sure they'll be clever too and name it Jai++. Then we'll have another patchwerk monstrosity of a language like C++, except this time Jai++. What I would liked to have seen from Jai is a language specification with these extra "features" that he doesn't like and will never use BECAUSE then he can marry the syntax so that it's consistent and sensical rather than being convoluted in the future. BUT he doesn't necessarily have to fully implement the full specification of "Jai++." He can just ship regular Jai. And that'll wet the appetite of the community. Sure, the target audience is game developers... but I think it's short-sighted to think that only game developers will use it. I think other developers are also craving a replacement for C++ too. If that wasn't true, then I don't think we'd be seeing the appearance of languages like Rust, for example.
@Lucretia90005 жыл бұрын
Anyone who has ever had (i.e. been forced) to work 16+ hours straight in C++ knows.
@32gigs965 жыл бұрын
Nikolai Kalashnikov an amazing c++ replacement not for games is rust. Compile time data race Check? Sign me up
@marcossidoruk8033 Жыл бұрын
@@32gigs96Yes but its borderline useless in many cases and it does RAII and as Jon explained that isn't necessarily a very bright idea for performance. Also Rust doesn't check for data races at all, rust severely limits what the programmer can do to the point data races are very hard, for many many things that is the programming equivalent of shooting someone in the head to cure a fever.
@Illasera Жыл бұрын
"Why are people using a 30 years old language instead of mine?" imagine not being able to beat a 30 years old language and crying about it for an hour. The entire hour is : "I want a low level language that can do high level language stuff", good luck. there are no INSTRUCTIONS for your CPU to do strings manipulation nor list sorting, ofc you would need a library for it, I am not sure blow's understand the GOALS for high and low level languages. Edit : The guy is also playing the wording game a lot , notice : (We don't need IDEs and all of that... then at the end of lecture ... (We will have an IDE-LIKE software that will do all of that)
@Illasera Жыл бұрын
@@JuliusCsar-cx3xd A low level language is meant to to have near-direct relationship with the hardware as much as possible (Its what the language is designed to do, its not designed to be human friendly or fast to write code to, these are side-effects and bonuses if the language's author knows what he is doing). Once you add bells and whistles, it stops being that, there is no other way to keep it (A machine can't do the impossible, only what its designed to). *As for the terms being too vague , you will find a pretty CLEAR definition of them with a simple search.
@Illasera Жыл бұрын
@@JuliusCsar-cx3xd well, atm he is busy re-thinking operating systems and how to make a mock-up micro-kernels for them
@Muskar2 Жыл бұрын
A lot of people think Data-oriented design and languages like Jai are only useful in the game industry where the performance aspect is commonly, appreciated, acknowledged and even expected by end-users. But I still think enterprises could benefit from revolutions like these as well. Web development (Javascript, Typescript, Python, PHP and Ruby) and Java/C# are really terrible languages for performance, and so much stuff tries to trap people into building many layers of abstraction that become very hard to manage. But performance matters for economics and often to users (especially when features match competitors'). What's needed is productive languages that has a low skill floor to outperform the standards today.
@TheMachina42 Жыл бұрын
couldn't agree more, I get it interpreted or byte code language are better for the web workflow ect, but I really don't understand how and why It's so complicated for them to embed a better language into their browser, I mean there is a new javascript framework everyday, don't tell me they can't put together a better language for web development that Javascript. I've tried python recently and while it's amazing, I wasn't impressed that much, throughout the years I've come to enrich my own personal libraries of C functions so much so that I cover basically 90% of the std and more higher level functions, my code isn't even fully optimised I could probably spend a week or two, and improve a lot of functions but even that code puts python to a shame I can split a megabyte of string, while python his still interpreting which functions to use. In the meantime I still get a relatively high level experience and I'm more productive because I can rely on that library to do stuff, This didn't take me that much time to do, every time I encounter a problem that a higher level functions could solve, I wrote it put it in the library and that's it. I'm not even that good at programming, so just like you I don't understand how web people are putting up with such crappy language that they have to build a framework around everyday just to avoid using the language itself, instead of doing something to improve their environment and build a powerful, typesafe, language.
@johnjackson97676 жыл бұрын
Just realized that JBlow sounds just like Dave Rubin.
@tracco4 жыл бұрын
30:38
@notthere836 жыл бұрын
Haha I'm not sure that Jon understands the concept of ecosystems very well. The whole point is to enable a QUICKER, not SLOWER start. I remember when I first started using Python - I was amazed by all the things I could do with just a few modules and lines of code. Similarly with JS these days. There's a library for almost everything. And they don't necessarily have to be wrapped and wrapped. But what I do see is that they are usually very well documented (unlike most native stuff I've come across - whenever I have to dig into MSDN, I... it's not pleasant. Well... some parts of the MSDN at least. The .NET docs are actually pretty great) and people contribute to each other's projects frequently.
@marcossidoruk8033 Жыл бұрын
I don't think you understood what he meant when he said "ecosystem".
@digitbell85045 жыл бұрын
10:00
@Jesus228FBI7 ай бұрын
If The Witness took one minute to load, no one would be bothered. If the player has chosen to play this game, they are already on the path of suffering.
@Esidar6 жыл бұрын
At the beginning he states that "You could create a language like C# that runs like C, but nobody has done that". Actually that's not true. C# is already that language, and can be used like C. You can write entire game using only structs and unsafe pointers. No garbage collection, and no OOP.
@gregandark85716 жыл бұрын
CoreRt
@markotikvic6 жыл бұрын
You missed the whole point.
@MattBee2k26 жыл бұрын
This is why I love that unity uses C#, it's just way easier to get on with what you need to do.,
@needlessoptions4 жыл бұрын
Yea but C# is way slower than C(++) lol
@magnuscritikaleak50454 жыл бұрын
FiddyOnFiddy is so wrong on so many levels, C# was created by merging on C ++ and C family. C# utilises garbage collector unified random access video memory over Dedicated graphics memory (GPU) ram over gpu syntax will make Games run 3 times slower than C++/Python.
@megatronusv22154 жыл бұрын
@@magnuscritikaleak5045 OK and? Unity is not the performant engine, most people know that. It's good because it's easy to use and beginner friendly (although the docs suck)
@G33KN3rd6 жыл бұрын
"C++ is a terrible language", then why not use C? Everything this guy is complaining about can be done more effortlessly and less painful than C...
@crimsun71865 жыл бұрын
Because then, you're not hitting the "QoS" statement, as C requires you to manually manage memory and similar stuff. Rust does a better job with their lifetimes system.
@pretzelboi644 жыл бұрын
@@crimsun7186 What's wrong with memory management? Computers work a certain way and hiding their nature is idiotic.
@TheSandvichTrials4 жыл бұрын
Jai can do so much more than C. C is severely limited in terms of expressiveness as a language. If you do not see the age of C taking its toll I don't think you've thought very deeply about how much more a language can be... (P.S. @CrimSun, Jai also has you manage memory manually. That's a problem Jon does not set out to solve)
@G33KN3rd4 жыл бұрын
@@TheSandvichTrials C as a language is designed for engineers who want to get shit done, not academic intellectual circle-jerkers. If you want a more "expressive-ness" language, then I suggest Golang.
@TheSandvichTrials4 жыл бұрын
I write pretty much exclusively in a subset of C++ which is almost identical to C. The limitations are obvious. You can't even iterate over the members of a struct without writing your own metaprogramming pass or using the ridiculously outdated shitty macro facilities to hack together some #include monstrosity. And what, that's because I don't want to be a "real engineer"? No, I want to describe the layout of my configuration file by defining a concrete struct known at compile time, instead of some stupid hashtable that will cost much more to build and to access. I want to serialize data without having to write out every single thing manually, or use dogshit C++ features. I want to do these things without compromising on functionality. C doesn't offer this shit, it's dated. C++ doesn't offer this shit, because it's shit. You can write a code preprocessor in a day that enhances C in ways C++ should've done two decades ago. Jai is a language that understands this. It does not compromise on what C already does, it enhances it.
@Plrang6 жыл бұрын
Oh well Jonathan, you could just start using java and you'd be set;)
@gabrielkwiecinskiantunes89506 жыл бұрын
Phototric Java's non-native virtualized bytecode and slow rogue garbage collector alone make it a bad option for high-end game development.
@Plrang6 жыл бұрын
just #import "IRONY"; and you'd be set;) @Zinogg @Gabriel Kwiecinski Antunes
@Plrang6 жыл бұрын
Zinogg use your brain
@gabrielkwiecinskiantunes89506 жыл бұрын
Phototric hah yeah sorry it's just that it's hard to tell lately lmao
@ZoidbergForPresident6 жыл бұрын
Works well for Celeste for instance, true it's C# but still.
@Ratstail915 жыл бұрын
Blow's Language: Takes 4 years to complete. My Language: Takes 4 weeks to write - still incomplete, but usable. I wonder why some languages are so different...
@seditt51465 жыл бұрын
Your language: Likely will break on anything semi complicated,.. His: Cross platform beast so efficient is can compile in almost no time flat...
@Ratstail915 жыл бұрын
Sedit T True, but only one of those languages are available right now. TBF, I'm looking into language theory now, hopefully future languages I write will be even better.
@seditt51465 жыл бұрын
@@Ratstail91 Eh, hey don't let me stop you, just mentioning the difference however between something that takes 4 weeks to 4 years. This dude honestly one hell of a programmer so I feel it is easy to say he has a good program here as it seems almost every game he touches anymore turns into Gold lol.
@SETHthegodofchaos4 жыл бұрын
@@Ratstail91 to be fair Jon also spend lots of time on developing a game engine and a game in this language in order to test it and figure out what works and what doesnt. So it is fair to assume that there was a lot of iterating and changes happening throught the years.
@Ratstail914 жыл бұрын
@@SETHthegodofchaos Wow my comment is kind of ignorant. My bad.
@TonOfHam6 жыл бұрын
Cars are terrible too, because they let you drive off the road if you want to... C++ is as terrible as the programmer that is attempting to use it.
@Kniffel1016 жыл бұрын
The car-analogy is perfect! C++ is like a combustion-engine sports car which provides you a lot of performance, if you want to. But also that car is being held back from its true potential because it uses a huge amount of old, outdated tech and unnecessary clutter. Jai is like the upcoming Tesla Roadster 2.0, or any other (high-performance) EV. It's incredibly fast, responsive and aims to replace the old tech with the new, better one. Something that's true with both of them though, is that if an inexperienced driver uses them, the probability that he drives them off the road is increasingly high.
@TonOfHam6 жыл бұрын
Thanks! But I was trying to say that with C++, the programmer has the wheel and the full utilization of the CPU (power source, engine, battery, whatever). With higher level languages, it's more like being on a train track. Companies don't want programmers to take the wheel, just to choose from available tracks. But then I'm a C++ guy, so I'm used to taking the wheel and being able to crash a program, or optimize it. These algorithms have always been available to c programmers to implement, he probably even made Jai with C or C++. But Jai can force developers onto a good "track", which is what this looks to be.
@Kniffel1016 жыл бұрын
Citizen of Earth But you get "Full CPU power" with "Jai" as well. These programs don't run in a VM, an Interpreter or whatever, but as native code on the CPU. You can even interface with C-libraries and eventually it's gonna have Inline-Assembly as well. The only thing that's running in Byte-Code is the meta-programming suite that runs at compile-time (so no resources wasted in the program itself), which still does things blazingly fast, as seen in this and other talks. The video linked at the bottom is a Demo of the first implementation of that feature (from 2014), so you'll get a glimpse at what it can do. And the playlist included in that link includes all the Demos of the unique features he did, at least I think it's all of them. ^^ It's definitely not all coding streams, but others "only" include implementations of features, bug fixes etc. Still worth watching for those that have the time. :D Of course it's not _too_ optimized yet, hence the top-down view of his Sokoban-like game. But the compiler has 2 backend options available currently: 1) For debugging you pass the code to the x64 backend, which compiles _much_ faster but creates slower code. 2) You pass it to an LLVM backend that takes longer but provides code that's better optimized. And "slow" is Jon's definition of slow, which means a few more seconds. As he said in the video, he and his team try to achieve 1,000,000 LoC/s and I'm confident they can do it. :) Yes, the compiler is made in C++. You can even look at a lot of the progress he made on the compiler and the Sokoban game since 2014. The presentation software he used was also written in "Jai" by the way. :) kzbin.info/www/bejne/i4XUi4Grn7aCoqM
@kazioo26 жыл бұрын
JAI is meant to be used in a much *lower* *lever* than typical modern C++. Your comment about C++ in context of this video suggests that you don't really know what this language is about. Blow calls C++ terrible language for almost an opposite reason than what you said. He calls it terrible because it's a complex mess, NOT because of power/responsibility - this is the core thing he and many gamedevs actually like/need in C++. JAI is actually more like enhanced C, which tends to usually be a bit lower level than C++ and usually with even LESS hand-holding than C++. It's meant to be an even more "difficult" (in a "you have to know what you are doing" way, not "tons of strangely glued together features" way) than C++, so your car analogy is even MORE significant in case of what JAI is and what Blow talks about, because it gives even MORE responsibility to the programmer than a typical way of relatively safe, "modern" coding in C++.
@TonOfHam6 жыл бұрын
Thanks for the info. I didn't really get a lot out of this video to be honest. Maybe it's my own limitations but the video didn't seem to explain Jai very well at all.