Odinlang Creator Ginger Bill Talks Odin!

  Рет қаралды 87,111

ThePrimeTime

ThePrimeTime

Күн бұрын

Пікірлер: 280
@iamsmooney
@iamsmooney Жыл бұрын
That Java/JavaScript joke went under appreciated
@sa-hq8jk
@sa-hq8jk Жыл бұрын
3:53
@HalfMonty11
@HalfMonty11 Жыл бұрын
@@sa-hq8jk True heroes provide timestamps
@Dominik-K
@Dominik-K Жыл бұрын
Best statement I've heard in ages. Highly agree
@lordadamson
@lordadamson Жыл бұрын
@@HalfMonty11 3:33
@scottwalker4619
@scottwalker4619 8 ай бұрын
I also thought Ginger Bill's STD joke went under the radar as well 10:40
@DustInComp
@DustInComp Жыл бұрын
3:54 That jab at JS went completely unnoticed.
@backendtower6580
@backendtower6580 Жыл бұрын
Jaba script
@FaZekiller-qe3uf
@FaZekiller-qe3uf Жыл бұрын
@@backendtower6580 No one out pizzas the hut.
@vojtastruhar8950
@vojtastruhar8950 Жыл бұрын
If writing in C robs you of your hair, then Odin surely gives you a beard
@verified_tinker1818
@verified_tinker1818 Жыл бұрын
Bald people with beards:
@nexovec
@nexovec Жыл бұрын
I used odin some amount about half a year ago to build a chess UI app, and I have to say It was a VERY PLEASANT experience. It's like if there was C but it's not the 80s anymore. I REALLY WANT TO GO BACK TO WRITING ODIN ASAP, Imagine you had a technology that made you say that.
@valethemajor
@valethemajor Жыл бұрын
what UI lib did you use?
@nexovec
@nexovec Жыл бұрын
@@valethemajor I used microui with sdl.
@bartimusprimed
@bartimusprimed Жыл бұрын
I couldn’t get microui working fully, ended up going with Raygui. Any tips on getting SDL working with microui?
@sanderbos4243
@sanderbos4243 Жыл бұрын
AoS or Array of Structs is an array of Enemies, while SoA is a struct containing an array for the Enemy positions, an array for their textures, etc. SoA allows you to loop over only the positions, meaning the cache doesn't get ruined with irrelevant textures.
@andrewdunbar828
@andrewdunbar828 Жыл бұрын
It's always worth listening to what Ginger Bill has to say! Would be good to see you have Andrew Kelley on too, I have the same big respect for both of those guys. Loris Cro would be interesting too actually.
@tech6hutch
@tech6hutch 10 ай бұрын
Seconding Andrew Kelley, if he hasn’t been on yet
@moumous87
@moumous87 Жыл бұрын
Why Fireship hasn’t done a 100 seconds about this?!?
@MrTweetyhack
@MrTweetyhack Ай бұрын
he couldn't understand it?
@handmadegamesdev
@handmadegamesdev Жыл бұрын
Great video. It's so good to see Odin get more attention. For the "joy of programming," it really does deliver.
@Stowy
@Stowy Жыл бұрын
Having math classes and graphics APIs directly in the language is amazing, it's crazy that the other languages are not doing the same
@Daniel_Zhu_a6f
@Daniel_Zhu_a6f Жыл бұрын
Julia has built-in matrices, complex math and array broadcasting semantics, but Julia is a repl-oriented language.
@gljames24
@gljames24 Жыл бұрын
You have math classes with Fortran which is why it's still so popular.
@user-zs6ko5rv5u
@user-zs6ko5rv5u Жыл бұрын
Discovered him after his video on the Casey Muratory vs Uncle Bob "discussing" clean code a couple of weeks ago... Searched where he did speak from... And landed on the Odin page ! I like his language so far...
@icemojo
@icemojo Жыл бұрын
I've had Odin on my radar for a while. This talk might be the actual kick off for me to actually explore it.
@dromedda6810
@dromedda6810 Жыл бұрын
Odin has been my go to language for about a 8 months now, and it is simply amazing for game development and creating random tools
@Im_Ninooo
@Im_Ninooo Жыл бұрын
unfortunately there's not many tutorials out there on it. I specifically looked for Raylib + Odin resources but couldn't find any. :(
@BoardGameMaker4108
@BoardGameMaker4108 Жыл бұрын
@@Im_Ninooo Just use a C or C++ tutorial and translate it. I've used SDL2 before in C++ and it seems to translate well into Odin.
@Im_Ninooo
@Im_Ninooo Жыл бұрын
@@BoardGameMaker4108 I've started learning Zig instead
@dromedda6810
@dromedda6810 Жыл бұрын
​@@Im_Ninooo yea there arent many resources, i learnt by just using the odin overview to get a grasp of the language and then applied the C examples to odin. the overview + the raylib cheatsheet & examples is pretty much all you need
@razorblade413
@razorblade413 Жыл бұрын
@@Im_Ninooo and which is easier to learn odin or zig? im from oop java and i want to learn a low level language, but i want something modern and easy, thanks.
@e.alvarez2843
@e.alvarez2843 Жыл бұрын
Prime. Thank you. I’ve been using Odin since it’s early days. It does 99% of what I want from ergonomics to syntax.
@matias-eduardo
@matias-eduardo Жыл бұрын
Odin is a fantastic programming language. If you have the time, it's worth taking a look behind the curtain at the core library's source code. The code is straight forward and there's a lot to learn there.
@carriagereturned3974
@carriagereturned3974 Жыл бұрын
@@rodrigoetoobe2536 ​ dude, chill, that equation has no time in it.
@trondenver5017
@trondenver5017 Жыл бұрын
Love that ginger bill! Thanks for putting him on.
@Im_Ninooo
@Im_Ninooo Жыл бұрын
I knew about Odin but never really looked at the syntax until now and it really surprised me just how similar it is to Go. I literally had to check multiple times if I was looking at the right website lol
@Lightstrip
@Lightstrip Жыл бұрын
I did read up on Odin, but as someone who has not been programming for that long, some stuff went over my head. Having Bill go through language features with Prime is an awesome format for an introductory tutorial
@shm236
@shm236 Жыл бұрын
Like everyone here, Ive wanted to build my own toy language thats a hybrid of all the fun stuff from established langs. Odin is like 95% of what I imagined.
@marcs9451
@marcs9451 Жыл бұрын
+ odin isnt a toy lang, it might be new but it's incredibly capable
@shm236
@shm236 Жыл бұрын
@@marcs9451 Oh i know. Due to it being so capable it makes my toy version just a poorly written copy. It would be like me trying to rewrite Rust.
@jeezusjr
@jeezusjr Жыл бұрын
Glad to see Ginger Bill up in here!
@zulupox
@zulupox Жыл бұрын
Wow I love what I see here! I didn't know oden was this clean... taken inspiration from my favourite languages... Lua and Pascal :) I'm learning zig right now... I will try Odin after that
@BigBeesNase
@BigBeesNase Жыл бұрын
GingerBell nailed that RUST roast in the end. Primeagen needed that.
@ForeverZer0
@ForeverZer0 Жыл бұрын
I finally got around to giving Odin a serious look, and I must say, it is really good. I have been using Go pretty heavily lately, with some Zig mixed in here and there, and Odin feels like the two had a baby, with a heavy lean towards Go in its syntax.
@razorblade413
@razorblade413 Жыл бұрын
which do you recommend to learn to programming a game engine zig or odin? which is more readable? which is faster in performance? which is shorter in lines? thanks
@SpookySkeleton738
@SpookySkeleton738 Жыл бұрын
Funny enough I was just getting into Odin the other day. Fantastic language, love it
@picosdrivethru
@picosdrivethru Жыл бұрын
Loved the dynamic, what a great guest!
@ErikBackman242
@ErikBackman242 Жыл бұрын
Trying to stay away from STDs as much as possible - coffevevefe all over keyboard
@bozhidaratanasov7800
@bozhidaratanasov7800 Жыл бұрын
Ahhh, another language to add to my evergrowing collection of compiled languages I have yet to master...
@astroid-ws4py
@astroid-ws4py Жыл бұрын
We are at a stage in computing where we have an increasingly good assortment of high performance compiled languages: Nim, Zig, Crystal, Odin, Go, Rust, many flavours of LISP and more. Also according to what many people say OCaml recently also became a very fast compiled language (It can be both compiled to fast and optimized standalone static binaries or interpreted interactively by its interpreter which of course will be slower but allows to run chunks of the software you develop as you work on it which is cool for testing/checking/prototyping stuff out). Also Fortran 2018 standard may be cool to program GPUs using NVidia and AMD toolchains, In fact it can be a much clearer looking code than equivalent C and C++ code for high performance number crunching.
@abuk95
@abuk95 Жыл бұрын
Now I am even more excited about Odin! But I still have a question: interview with Nim lang creator when? I am curious about what he would have to say and his approach to you putting Nim to "dog water" category.
@element1111
@element1111 Жыл бұрын
Where did he pin as dogwater?
@abuk95
@abuk95 Жыл бұрын
@@element1111 When they were rating different languages. This interview is a consequence of that, because they pinned Odin as "dog water" as well. And Bill showed why it is not like that
@freedom_aint_free
@freedom_aint_free Жыл бұрын
Just amazing, the best show of this channel so far ! Get Rich Hickey on board (Clojure creator)
@SoKette
@SoKette Жыл бұрын
Ohhhh yeahhhhh, more Odin please :D
@robrick9361
@robrick9361 Жыл бұрын
"defer if" is interesting but it will be hated in the future. The fact you can see a function end with n = 123 return And n could potentially not be 123 on return is so confusing.
@pengain4
@pengain4 Жыл бұрын
Would be nice to see Nim's creator here too. It's great language for those who needs performance but okay with high-level stuff (e.g. don't really need low-level C).
@emjizone
@emjizone Жыл бұрын
Looks promising. I really really like the level of machine control it allows. I like no garbage collection as long as garbage creation isn't enforced. I like the Lua-like multiple return.Good syntaxic choices inspired from the best of Lua and Pascal. I like it. Maybe I would like something more algebraïc, yet I really like how uncluttered and systematic the syntax is. Good job !
@caiolaytynher5994
@caiolaytynher5994 Жыл бұрын
I wanted to watch just the first minutes to see what the language is about, almost one hour later, I've watched the hole thing. How did I never heard of Odin?
@_slier
@_slier Жыл бұрын
there is slew of good others too like: beef, hare, jai, vale, c3
@ZenonLite
@ZenonLite Жыл бұрын
5:10 never knew the creator of Odin was a physicist
@astroid-ws4py
@astroid-ws4py Жыл бұрын
He created EmberGen which is all the way down a fluid physics simulation engine so no surprise here...
@antronixful
@antronixful Жыл бұрын
c was developed by a physicist too
@matias-eduardo
@matias-eduardo Жыл бұрын
​@@astroid-ws4py The EmberGen team is crazy good. Bill helped create the current version of EmberGen. Morten Vassvik is the co-founder and lead dev. rxi made the new UI (he's kind of a UI legend over at the Handmade Network). graphitemaster is very talented too. Just a small team of really smart folks.
@astroid-ws4py
@astroid-ws4py Жыл бұрын
@@matias-eduardo Thanks for the info, Nice to know
@nicwhites
@nicwhites Жыл бұрын
8:45 What's also important is is it good for your company/team.
@noherczeg
@noherczeg Жыл бұрын
It is also very important to pick a tool which most team members are comfortable with. Also, tools that have proper adoption. You don't want to get in a situation where you get blocked because some third party issue / abandonware.
@marcs9451
@marcs9451 Жыл бұрын
no tool would ever be used in the first place if you were to follow this strictly.
@diego.almeida
@diego.almeida Жыл бұрын
Odin is like Go on steroids.
@julkiewitz
@julkiewitz Жыл бұрын
It's so weird that we collectively spent the 90s, the 00s and 10s coming up with more and more managed and scripting languages. And now all of a sudden after 50 years, people start to explore more low-level language designs. How come it didn't happen earlier.
@astroid-ws4py
@astroid-ws4py Жыл бұрын
For ages we’ve only had Pascal (it’s FreePascal variant is well and alive today), Ada, Fortran, C, C++ to target native development, Only suddenly in just recent years we started to get all the goodness with the likes of Zig, Rust, Nim, Odin and if you allow a “little GC” maybe Crystal and Go and some LISPs can be added too to this list.
@UGPepe
@UGPepe Жыл бұрын
because they are an evolution and the right tool for 99% of apps
@Tekay37
@Tekay37 Жыл бұрын
It might be because incredible performance increases made it possible to ignore the performance costs you get with OOP. But now we're at a point where you notice the costs again and it's getting painful. We're also at a point where you almost always have a competitor for your product (this has been rare in many cases). With different features existing in all competing products, performance now becomes a selling point for the customers. So using lower level languages actually gives you a competitive advantage as well. My guess is that many products written with an OOP language will either lose to their competitors or be rewritten without OO.
@ForeverZer0
@ForeverZer0 Жыл бұрын
Yeah, it seems like decades there was realistically only two languages when you wanted to target low-level: C or CPP. Sure, there were some others that have been around for ages, but if for anything "mainstream" that was widely supported and run on anything without much effort, realistically those were the only options. It feels nice being in an era where there is more languages gaining traction and on the horizon than I have time to learn.
@Alkis05
@Alkis05 11 ай бұрын
I think that with the popularization of IOT, embedded devices and indie games, there is a lot more popular interest in low level programming. We are back to dealing with much more restricted hardware. Also, worried about language level safety. idk
@JonathanMacher
@JonathanMacher Жыл бұрын
Please do an Odin project asap!
@ronakmehta8106
@ronakmehta8106 Жыл бұрын
loved this on the stream will give you a free view on youtube also , and looking forward to your project for testing this.
@samhughes1747
@samhughes1747 Жыл бұрын
@23:13 Excuse me? Are you kidding me!? Struct of Array? MIND BLOWN!
@mrmagnetic927
@mrmagnetic927 Жыл бұрын
Parametric polymorphism procedure is OUTSTANDING!
@bible1944
@bible1944 Жыл бұрын
"Present Bill is not smart, future Bill is dumber" is such a good quote
@taukakao
@taukakao Жыл бұрын
So basically go with manual memory management, I like it.
@rythgg
@rythgg Жыл бұрын
Bless. Excited for this!
@gnatinator
@gnatinator Жыл бұрын
Love the ergonomics, but killer feature: direct GPU integration.
@astroid-ws4py
@astroid-ws4py Жыл бұрын
He just used GLSL and interacted with the GPU in the standard graphics pipeline way, Direct GPU integration in the CUDA-like sense is possible these days only through C, C++ and Fortran toolchains by AMD and NVidia and it will probably stay that way for the forseable future. (As long as those companies do not decide to integrate a new language you will only get subpar solutions for other languages).
@yjlom
@yjlom Жыл бұрын
@@astroid-ws4py you can compile to a shader language and generate the API stuff that's what languages like futhark (compiles to CUDA with a C wrapper iirc) do it'll still need to be JITed but it won't be any different from how it is usually done
@ps4star286
@ps4star286 Жыл бұрын
It doesn't have this. You interact with the GPU the same as in C. Odin just provides bindings for APIs like Metal etc.
@TeamDman
@TeamDman Жыл бұрын
Great talk! Interesting to know Odin has love for the GPU, maybe good for migrating some of the ML stuff that's going on. Does Rust have GPU support?
@saniancreations
@saniancreations Жыл бұрын
He did say that odin doesn't have "gpu support" in the sense that odin code can run on the gpu, he mentioned they used glsl (or other shading languages) for that. Just like C cannot run on the gpu. It's just that they can run glsl code on the gpu and then "speak" with it to send data to the gpu for processing and receive the processed result back. He says this at 33:40.
@astroid-ws4py
@astroid-ws4py Жыл бұрын
Currently only C, C++ and Fortran have first class direct GPU access support (through the official NVidia and AMD compilers, Not sure about Intel though..), In every other language (Odin included) you have to jump over hoops and even then it is not promising that anything will work fully. Better to rely on the official toolchains provided by the companies than to make your own or use a third party that will never be able to catch up.
@SimonBuchanNz
@SimonBuchanNz Жыл бұрын
There's the experimental rust-gpu project, but that's both real early and more about being able to share code, I don't think there's any expectation of transparent GPU usage?
@zytr0x108
@zytr0x108 Жыл бұрын
For ML stuff you can maybe look into Julia. It’s a pretty performant language for Data Science and ML and it can run natively on a GPU
@tedbendixson
@tedbendixson Жыл бұрын
Hell yeah Ginger Bill!
@Noritoshi-r8m
@Noritoshi-r8m Жыл бұрын
i can't believe he pronounces tuple as tuple
@logannance10
@logannance10 Жыл бұрын
Yeah image pronouncing it, tuple.
@alexandreklein7232
@alexandreklein7232 Жыл бұрын
It seems like a lot of the features of Odin are pretty similar to the Jai language from Jonathan Blow. Not sure what came first though since Jai is not even publicly available.
@efkastner
@efkastner Жыл бұрын
23:05 Huh, I don’t know about ECS, but my mental analog for SoA vs AoS is columnar data store vs row based. might not be right
@GingerGames
@GingerGames Жыл бұрын
That's completely right and I wish I said that now on stream because that is a better framing for the more web-based audience.
@demolazer
@demolazer Жыл бұрын
Very intriguing language. Lots of new ideas, worth an explore.
@wiktorwektor123
@wiktorwektor123 Жыл бұрын
Go Odin!!
@AmithKini
@AmithKini Жыл бұрын
Having Graphics API inbuilt could be key to Odin's success, given the current hype around ML and training it.
@krux02
@krux02 Жыл бұрын
Graphic API's are not for ML. Graphic API's is still classic programming, no training here. They just enable the power of the GPU.
@defnlife1683
@defnlife1683 Жыл бұрын
You know what we need? A Treesitter and Language Server tutorial for Odin.
@marcs9451
@marcs9451 Жыл бұрын
They have been officially merged to neovim treesitter and lspconfig recently
@defnlife1683
@defnlife1683 Жыл бұрын
@@marcs9451 thanks. Installing now! 🙏🙏🙏🙏 I had the custom versions
@KoltPenny
@KoltPenny Жыл бұрын
Stay till the end of the video to see Prime get Rusted
@CallousCoder
@CallousCoder Жыл бұрын
It’s always good to keep away from STDs!!! I like Zig but I also want to look at Odin and this and Bill’s own to presentation is a great primer. I like both languages because they remain small and simple.
@musdevfrog
@musdevfrog Жыл бұрын
49:32 Bill waited for this moment for putting odin in dogwater tier.
@obkf-too
@obkf-too 8 ай бұрын
This is looking very interesting so far, I will try it after the video ends.
@DrunkenUFOPilot
@DrunkenUFOPilot Жыл бұрын
Pointy pointers - Ginger Bill is my hero! Overall I like most of the design decisions made in this language. Few are the other languages with design decisions I like. Crystal is one of the other good ones. I also use D a lot, and Vala for gtk GUI and image processing programs. If I'm lucky in my career, I'll be using Odin a lot more, and never or rarely use C++, Python or the other popular languages.
@colbyberger1881
@colbyberger1881 11 ай бұрын
It feels like Golang with some weird kwerks
@dongueW
@dongueW 7 ай бұрын
What quirks did you feel were weird?
@edz8659
@edz8659 Жыл бұрын
need more languages with builtin vector math a+b should be element wise for arrays for example. I would love APL with modern conveniences of procedural/OOP/whatever ontop
@andreffrosa
@andreffrosa Жыл бұрын
what happens when you try to sum arrays with different lengths?
@arnontzori
@arnontzori Жыл бұрын
​@@andreffrosa not that I think vector math is necessarily required, but that's hardly an issue. What happens when you try to add an int to a bool? Depends on implementation. Languages with a truthy concept will coerce a result, languages without it will throw an exception. What's the issue with a similar concept for array addition?
@andreffrosa
@andreffrosa Жыл бұрын
@@arnontzori I think you misunderstood. I was asking what happens in odin, not pointing it out as a problem
@astroid-ws4py
@astroid-ws4py Жыл бұрын
Fortran has that for ages, Zig has that only for SIMD vectors.
@gaafts
@gaafts Жыл бұрын
Why? What’s stopping you from using a library? How would you perform pointer arithmetic?
@ThePandaGuitar
@ThePandaGuitar Жыл бұрын
14:24 Very good point on the fact that it's easier porting from Windows to Linux rather than the other way around, especially with assuming UNIX tools are everywhere once you get too used to them.
@DrunkenUFOPilot
@DrunkenUFOPilot Жыл бұрын
I always install Cygwin when I must work on Windows. Then I can pretend I'm using a somewhat unpolished version of Linux, mostly.
@triplea657aaa
@triplea657aaa Жыл бұрын
I'll probably stick to learning go, but this looks very nice
@_slier
@_slier Жыл бұрын
heck no.. golang is such a terrible language
@helios1191
@helios1191 7 ай бұрын
​@@_slierNou.
@MuradBeybalaev
@MuradBeybalaev Жыл бұрын
8-space tabs. 👀
@testobjektx1242
@testobjektx1242 Жыл бұрын
I think this is the third time that I am watching this... Nice one!
@PaulSebastianM
@PaulSebastianM 11 ай бұрын
Ginger Bill must be a billionaire if that app is one of a kind and it's that revolutionary.
@Lorenzo1938
@Lorenzo1938 4 ай бұрын
I think the fact that ember gen is used by a lot of industries tells us something
@bonus5804
@bonus5804 Жыл бұрын
Why does the 1.0 literal can be cast to an int? Yes it fits but it doesn't make much sense to me, since it's obviously dumb to write "a: int = 1.0", its just confusing. The other way around however "a: float = 1", is really awesome, and makes a lot of sense because the real numbers are a strict superset of integers
@pianochess1882
@pianochess1882 Жыл бұрын
From a mathematical standpoint it makes sense as 1 = 1.0
@melanovapedia7924
@melanovapedia7924 Жыл бұрын
Ginger Bill hot takes, spicy indeed haha
@Lucretia9000
@Lucretia9000 Жыл бұрын
C++ made the 1 root inheritance tree a thing that everyone copied, except Ada. Go look at Ada's OOP. Ada has the package Ada.Finalization in which Controlled is defined, that is one root type (or "class"), another is Root_Stream_Type in package Ada.Streams. You can't do proper class checks for inclusion in C++ one root class trees, in Ada you can. if My_Class in Root_Type'Class then...end if;. Ada is probably safer than rust in most cases. Pointers shouldn't even be a thing now.
@Muskar2
@Muskar2 Жыл бұрын
Odin looks really promising. I think I'll try it out. It's about as close as I'll probably come to Jai. I have a bit of skepticism about it, since I'm a bit reluctant to agree with all their decisions.
@torphedo6286
@torphedo6286 Жыл бұрын
Woah. I really like that they have matrices and swizzling built in...I might have to check this language out
@torphedo6286
@torphedo6286 Жыл бұрын
Damn. No comptime. That sucks
@DrunkenUFOPilot
@DrunkenUFOPilot Жыл бұрын
Thanks!
@00jknight
@00jknight Жыл бұрын
I was dissapointed when he said "dont worry about that, its magic" in regards to the t.derived = t^ line. I really want to know what that is and why he didnt want to talk about it.
@ps4star286
@ps4star286 Жыл бұрын
"derived" is a field on the struct type which has the "any" type. "any" is really just a "struct { ptr, typeid }" with syntactic sugar around it. So here, he's setting it to an instance of Entity (t is ^Entity and t^ means "de-ref t" so it would be of type Entity), which secretly will store the fact that it's of Entity type (this is the typeid part) as well as put in a reference to that Entity (this is the ptr part). You can later do logic to do type-checking/assertion on an "any" variable and get the data out of it.
@Tekay37
@Tekay37 Жыл бұрын
@@ps4star286 So that's a magic way around casting to a type only known at runtime?
@ps4star286
@ps4star286 Жыл бұрын
@@Tekay37 I mean it's technically just storing a pointer to the data. It's pretty much like doing "(MyStruct *)((void *)p)" in C. Nothing magical really happening, it's not implicitly doing malloc + memcpy or anything, it's just a sugary wrapper around pointer casting. The only time you actually need to use this over tagged unions is in printing procedures, and maybe also serialization. But in my ~20k lines of Odin so far I've never found a single use for it.
@Tekay37
@Tekay37 Жыл бұрын
@@ps4star286 I don't understand that C comparison. But if it make the program treat some data as if it was of a certain type when it may actually not be, then I might actually have a use case for it.
@donf2944
@donf2944 Жыл бұрын
"it could be any language... ya know... like Rust for example" lol
@anon-fz2bo
@anon-fz2bo Жыл бұрын
U have to get Andrew Kelly on. Zig is underrated.
@thegeniusfool
@thegeniusfool 5 ай бұрын
I haven’t met any good developers who ever thought they could describe a solution properly in Java. Or Python. We have had to forcefully express some kind of sanity in such languages, of course, but any really good developer always knew it was sub par. Note: it takes 10k hours to master anything complex.
@karaloop9544
@karaloop9544 11 ай бұрын
Finally I remembered why I thought the voice was familiar: Ricky Gervais. He sounds a bit like him at times. :)
@MustaphaRashiduddin-zx7rn
@MustaphaRashiduddin-zx7rn Жыл бұрын
i really wish it didn't implicitly dereference a pointer when you are accessing its data member. i want to know exactly what the code means by just looking at it. to date i only know c and c++ that don't do this.
@dongueW
@dongueW 7 ай бұрын
Agreed
@danvilela
@danvilela Жыл бұрын
Loved the bad side of bad take HAHAHA lol
@CaptainWumbo
@CaptainWumbo Жыл бұрын
using the gpu for graphics, that's crazy who would do such a thing
@thegeniusfool
@thegeniusfool Ай бұрын
What alternatives did he know then? Java, C and some assembler?
@DF-ss5ep
@DF-ss5ep Жыл бұрын
I think go as the "keep the language as simple as possible" experiment failed.
@mohamed79303
@mohamed79303 Жыл бұрын
MAKE THE SHORT that was hilarious, i was hurt seeing you hurt, you were so hurt i felt it myself
@vladimirkraus1438
@vladimirkraus1438 10 ай бұрын
As C++ dev trying Odin I desperately miss something like RAII. `defer` is not a sufficiently effective replacement. I wish for Odin++
@nadercarun
@nadercarun 10 ай бұрын
Love Odin, building a game in it
@Ross96D
@Ross96D 4 күн бұрын
The Go compiler people need to check Odin
@guozhangliew7302
@guozhangliew7302 Жыл бұрын
Didnt know simon pegg is into programming
@kuhluhOG
@kuhluhOG 7 ай бұрын
Array of Struct vs Struct of Arrays using C with hardcoded length: typedef struct { int x; int y; short colour; } Points; Points array_of_structs[5]; struct { int x[5]; int y[5]; int colour[5]; } struct_of_arrays;
@blarghblargh
@blarghblargh Жыл бұрын
Assert early (even with runtime asserts) is great in a lot of programming scenarios, especially with batch processing or asynchronous long running business back-end processes, where atomic revertable (or revert-on-fail) transactions are possible. Videogames are often different though. Players (rightly) really don't like or tolerate their game crashing, and they'd rather it keep playing in a buggy state. I wouldn't be surprised if people using creative tools had a somewhat similar take, since they'd like the chance to save their progress instead of just dumping out without warning. In such cases, you want to be careful and limit the places where you can trigger a fatal error, so at the very least you can get to a good, savable state before you dump out. Runtime asserts can act kind of like unchecked exceptions.
@matias-eduardo
@matias-eduardo Жыл бұрын
IMO "Crash Early" is the way to go for pretty much all __logic errors__ in games. Otherwise, you risk working with corrupted data that could cause worse errors down the line. User input errors should never crash a program though. In production, crash logs are incredibly useful if you have a team that can patch errors quickly.
@davidholmin875
@davidholmin875 Жыл бұрын
Asserts are usually disabled for release builds, but they’re great for catching bugs during development.
@matias-eduardo
@matias-eduardo Жыл бұрын
​@@davidholmin875 That's true. In release, I only disable asserts in hot code paths. For everything else, I spawn a popup allowing the user to send me the assert text and call stack info. You can also allow the user to "resume" in systems that don't impact the save state, such as audio. But my general approach is to exit the process completely.
@blarghblargh
@blarghblargh Жыл бұрын
​@@davidholmin875 (and also Matias) people can mean different things when they say "asserts". People with a C background tend to assume C's macros that are disabled in release builds. Other languages and frameworks have different facilities. Sometimes people just talk about defensive checks that throw exceptions as "asserts", and continue to run it in production - that's pretty common in web dev, particularly on the backend. And yeah, crash early and often is desirable in dev mode. Or in open source software with a lot of maintainers and forum support. Or in business processes where you have dev staff on call to fix it for you, and robust rollback built in. It's not nearly as good a global strategy useful for customers who are running the software on their own computers, who don't have a direct line to devs. Pretty common for paid desktop apps and games and embedded hardware that doesn't have a ton of constant monitoring. In those cases limping along in a partial state can be a better failure behavior, especially if you can still make certain parts of the software still robust, like not corrupting the customer's long-lived data.
@movax20h
@movax20h 11 ай бұрын
Looks like a mix of Zig, Go and Dlang. Not too bad actually. I think will stick to Dlang (I went through the entire sample code of all future of Odin, and everything there can be done in D), but definitively Odin is worth exploring (i.e. a lot of D standard library mostly assumes garbage collection, due to historical reasons, so Odin could be better - still with `@nogc` you can write easily for games, embedded system or kernels). All the polymorphism, dispatch, embedding, compile time stuff, even SOA, can be done in D with just little of library code. So, I am Odin then feels limited, because it is built-in into language, and you cannot easily create similar (but different), things yourself, where in D you can. Still, compared to things like Nim, Zig, Vlang, Go, Odin is really good (Go has superb packaging system, and concurrency control, so I doubt Odin actually beat it in this area - you wouldn't use Go style concurency in games, but everybody should be learning from Go package manager, there is nothing better).
@zeocamo
@zeocamo Жыл бұрын
Prime, you forgot to add the links as you promise in the video
@ThePandaGuitar
@ThePandaGuitar Жыл бұрын
What a nice language. I'm going to learn it.
@carriagereturned3974
@carriagereturned3974 Жыл бұрын
i really do not understand what has bethesda with odin language?! (but mentioned on odin's site)
@joeblo1111
@joeblo1111 Жыл бұрын
EmberGen is made with Odin and is used by many companies, including Bethesda, and this is evidence of the viability/quality of Odin.
@sord444
@sord444 Жыл бұрын
I wonder what his thoughts on D (with the disable gc flag on) are. Any other D fans?
@chainingsolid
@chainingsolid Жыл бұрын
Still haven't found anything (that I can use anyway... darn Jai being closed beta) that has the compile time code analysis and generation power of D.
@multivariateperspective5137
@multivariateperspective5137 3 ай бұрын
Uh so if i got that right TLDR is something like “I got drunk one night and in anger at other geniuses’ stupidity i revolutionized volumetric physics in computing” ??? But in a British dry humor phrasing and politeness? 🔥
@decjr5668
@decjr5668 Жыл бұрын
interesting language. good insight
@timedebtor
@timedebtor Жыл бұрын
Inheritance only makes sense at the level of mathematical abstraction. Never at the object as interpreted by a human.
@cve4745
@cve4745 Жыл бұрын
If you like the sound of Odin you are going to LOVE Jai when it comes out
@FiveNineO
@FiveNineO Жыл бұрын
I'm starting to think thats never going to happen
@isodoubIet
@isodoubIet Жыл бұрын
Isn't that designed by JBlow, the guy who's genetically incapable of being right about anything?
@skaruts
@skaruts Жыл бұрын
@@isodoubIet I rarely watch his content and I've seen him being right about some things. Namely that visual studio sucks, and that C++ sucks.
@skaruts
@skaruts Жыл бұрын
Tbh I'm not hyped for Jai. I don't quite like the syntax. I do quite enjoy Odin a lot, though.
@isodoubIet
@isodoubIet Жыл бұрын
@@skaruts He's wrong about both though. With C++ he can't even get basic syntax right, so his opinion is pretty much worthless.
@Br4dButt0wski
@Br4dButt0wski Жыл бұрын
Will you ever try the language?
The Vlang Drama
43:35
ThePrimeTime
Рет қаралды 103 М.
Clean Code : Horrible Performance | Full Interview
47:13
ThePrimeTime
Рет қаралды 234 М.
Turn Off the Vacum And Sit Back and Laugh 🤣
00:34
SKITSFUL
Рет қаралды 9 МЛН
Noodles Eating Challenge, So Magical! So Much Fun#Funnyfamily #Partygames #Funny
00:33
One day.. 🙌
00:33
Celine Dept
Рет қаралды 60 МЛН
Кто круче, как думаешь?
00:44
МЯТНАЯ ФАНТА
Рет қаралды 6 МЛН
Carmack Doesn't Like Vim | Prime Reacts
26:52
ThePrimeTime
Рет қаралды 429 М.
Astro 3.0 GETS HTMX?? Creator of Astro Joins!
53:44
ThePrimeTime
Рет қаралды 70 М.
3100 GM Makes Fun of Levy
8:57
Gotham Games
Рет қаралды 27 М.
Why building Odin programs is so simple
9:18
Karl Zylinski
Рет қаралды 6 М.
Zig is FASTER and SAFER than Rust | Prime Reacts
31:19
ThePrimeTime
Рет қаралды 199 М.
Val - The Rust Killer | Prime Reacts
16:54
ThePrimeTime
Рет қаралды 96 М.
I Interviewed The Creator Of LLVM, Clang, Swift, and Mojo
1:05:45
ThePrimeTime
Рет қаралды 197 М.
Turn Off the Vacum And Sit Back and Laugh 🤣
00:34
SKITSFUL
Рет қаралды 9 МЛН