I was lucky to work with one or two people like Tsoding in the past who learned super quick by just jumping in and trying stuff. That's what I used to do as a kid when I learned Basic and assembly on 8 and 16 bit computers, but somehow lost my way after going to college and becoming a professional dev. Watching people learn like this is helping me to recover that healthy and practical mindset.
@homelessrobot Жыл бұрын
yeah i think the tendency is for it to get HARDER for us to see simple direct solutions the more time we spend looking at and reasoning about the 'professional' (pathologically indirect) versions. Abstractions in your head, preventing you from accessing less abstract pictures of the system at hand.
@batlin Жыл бұрын
@@homelessrobot exactly! It doesn't help that a lot of people we meet on the job tend to obsessively add extra layers of abstraction and indirection, to the point where it can be hard to get promoted if you don't go along with it. I left my last job because I was tired of simple PRs taking weeks to get merged because one or two "architecture astronauts" would keep asking for more interfaces and factories etc.
@TheLopsidedobject2 жыл бұрын
did not expect this shit to happen
@mjkpolo73132 жыл бұрын
seeing you struggling with something and having the same learning method as me makes me feel like I'm not insane thank you!
@peezieforestem5078 Жыл бұрын
maybe you both are just the same kind of insane?
@ISKLEMMI2 жыл бұрын
I really appreciate the way you approach things. It's especially helpful when you show yourself figuring things out live on stream, because I feel it gives us a more thorough understanding of the tools you try out and the problems you aim to solve. Thank you! Edit: I like that Zig lets you include a C file effortlessly without polluting the global namespace. Very cool
@kaksisve40122 жыл бұрын
[1:50:00] Tsoding does some Mongolian singing. This should be a stream notification. XD
@jordanmcconnon62142 жыл бұрын
Haven't watched in months, coming back it seems you're much more comfortable on stream and have generally become more entertaining. Keep up the good work! subbing.
@Roundlay2 жыл бұрын
We knew it all along, but the fact that you received a $300 donation and donated it to Ukraine given the current situation with payments and donations to Russia just highlights what a genuinely great guy you are. I appreciate the effort you put into streaming and learn a lot watching you code. I hope the situation over there is okay for you.
@AndrieMC11 ай бұрын
the thing is, HES RUSSIAN
@r2com6419 ай бұрын
I also donated to Ukraine but regretted it, stupid ass western propaganda and I’m not even pro Russian
@KushLemon6 ай бұрын
When are you donating to Palestine? No? 🤡
@gercius6 ай бұрын
@@KushLemon I love how you are self aware that you are clown, wholesome 3000.
@neze818Ай бұрын
@@KushLemon no dono for pigs 💩
@an_imminence Жыл бұрын
I just smile when the info you seek is in second half of the first sentence you started to read but didn't finish. I try my hardest to at least read the part before the code snippet, because for some reason people don't put the important info in the snippet but above where it won't be copied over into your code... But I can totally see why you'd want to jump every 2 seconds, it's hard not to!
@Tabongadoo2 жыл бұрын
Cosplaying as Tom Scott lol. Keep up the good work man, you inspire me to be better and learn more. Always fascinating to watch your process in action.
@wouterr60632 жыл бұрын
I think the simplest solution to the bar collision problem is to just set the dy of the projectile to -1 when they collide to make the projectile always go up.
@Diamonddrake Жыл бұрын
Amazing thing about zig is it’s a c compiler (bundles clang) and cross platform c built system and can cross compile c to any platform zig supports.
@NC-fp6mc3 күн бұрын
После просмотра, вся лента рекомендаций в zig туториалах. Однозначно лайк
@wawamake66272 жыл бұрын
i think at some point he kinda checked out and stopped reading error messages, there was couple where he just ignored output) that line from "paint.zig" was totally usable, he just needed to change target file for compilation. but yeah, onboarding could be a little better. thing with arbitrary error names i believe is good, errors in zig are just values, and declaring them at the same place where you use them eliminates a lot of boilerplate (for people who want to be explicit with errors there is a mechanism too)
@gerooq9 ай бұрын
Every team needs someone like Tsoding to keep the code quality in check
@guillaumecollin95102 жыл бұрын
The compiler errors are one of my biggest complaints with Zig. They are often time very obtuse and not pointing at the right thing. Makes learning the language harder I agree. Thankfully it's on the roadmap and will be improved.
@katekyy7 Жыл бұрын
Did you even saw a C++ error message?
@pierreollivier1 Жыл бұрын
true but one good thing is that error propagate and you get a precise stack trace of where it went wrong. Which is better than "program aborted with error code ##"
@jawad9757 Жыл бұрын
@@katekyy7that's an incredibly low bar
@Radgerayden-ist2 жыл бұрын
The reason it took 2 seconds to start up is most likely the llvm JIT engine waking up. Especially if you're already using the CPU for encoding 1+ seconds is pretty normal.
@mickyyang66522 жыл бұрын
Actually I think the problem is not reading the document first. Since this language is still growing, there's no very friendly compile message like Rust. IMO, however, this language is strong. You can do many things at compiletime with `comptime`, which is more powerful than Rust's `const fn` and macros, and more readable than C++'s metaprogramming skills. It also has strict type system like Rust. Maybe I'll use it if Zig was not longer beta.
@pietraderdetective8953 Жыл бұрын
My thoughts exactly..it has great potential. But it needs to leave beta for me to use it. Do you know what's the timeframe for Zig to reach a stable release?
@mickyyang6652 Жыл бұрын
@@pietraderdetective8953 you can search the road of zig 1.0
@pierreollivier110 ай бұрын
@@pietraderdetective8953 I think now is already a good time to start tinkering with the language, even just learning build.zig for your C/C++ projects can be a cool start. But the language won't be ready before end of 2024 and even that I'm not sure yet, I'd say 2025 the language will really start to be "production grade". Right now they are focusing on stuff that not a lot of people immediately care about but in the long run it will be of great benefit for the developer experience. Currently they are working on a set of different custom backend to become the default in order to improve the compilation time. They are also working on solving bugs. They are also integrating a Zig based C compiler for the traduction of C code to Zig, They are also replacing the Async implementation but I'm not sure if it's already there or not. Loads of good stuff happening, Zls is also improving a lot, and they have plan to improve it a lot more, Right now Zls doesn't play well with comptime evaluation but they have plan for this, But those plans also depends on the custom backends to arrive, because otherwise the features will be too slow to be usable. I'd say if you want to start when it's in a better place, you should keep a tab on when ZLS add's comptime evaluation this will probably improve the learning experience quite a lot in my opinion.
@hikerwolfspaine820010 ай бұрын
@@pietraderdetective8953 I think 1.0 is projected to arrive in 2025-2026. If you end up experimenting with it, `zig fmt` can be used to automatically fix some breaking syntax changes that are added.
@superscatboy2 жыл бұрын
Well, that's certainly a programming language.
@dromedda68102 жыл бұрын
might be the first time i watched a 3 hour video from start to finish
@Br4dButt0wski Жыл бұрын
What is your opinion about Odin lang?
@exciting-burp2 жыл бұрын
Elm is supposed to have the best error messages there are. Rust was inspired by the project.
@haxidenti6001 Жыл бұрын
Good job. As a Ukrainian guy i appreciate you for your help to Ukrainians. Your job will not be forgotten. Thanks.
@cagataykaydr30153 ай бұрын
You found the solutions in less than 30 minutes (which I couldn't for a week) and you call yourself stupid. Man, you're one of the most efficient programmer I've seen. Don't underestimate yourself
@element11112 ай бұрын
More ideas to bounce of off in real time chat
@element11112 ай бұрын
More ideas to bounce off of in real time chat
@ot44eto2 жыл бұрын
Hey man! Cheers from Bulgaria!
@ot44eto2 жыл бұрын
Just out of curiosity, why the hate for Rust? Or was it a joke? I was thinking of giving it more attention after I played with it for a couple of weeks a year ago. Should I waste my time?
@fsouza2 жыл бұрын
Odin stream when
@ecosta2 жыл бұрын
I'm glad I'm not the only one to: 1. learn by trying; 2. complaining about how unintuitive things are; 3. feeling dumb that I can't do it as intuitively as I thought; 4. feeling dumber with everybody expecting me to read thousands of pages or millions of lines of code to get past "hello world"
@etodemerzel26272 жыл бұрын
Some things are "intuitive" to you only because you got used to them in other languages.
@pierreollivier1 Жыл бұрын
@@etodemerzel2627 exactly, for example I really prefer the semantics of |type | identifier | assignment operator | value | semicolon | but there is objectively no intuitiveness to it one could argue that | identifier | type | assignment operator | value | no semicolon | is more intuitive and that would be equally correct.
@Eugensson7 ай бұрын
@@pierreollivier1 people say the second one is just easier to parse
@alex_s168_p Жыл бұрын
You could also do: const x = something(); _ = x; instead of: _ = something(); if you are going to use that later
@spitfire792 Жыл бұрын
that compile time is crazy
@tpb211 ай бұрын
Great fun! BTW - I tried to use your code with the latest version of Zig (0.11.0) but found a few breaking changes - presume this is what one would expect for a language which is evolving or maybe a language for maintaining software causes one to maintain software?
@hikerwolfspaine820010 ай бұрын
ZIg syntax is still in flux because it has not hit 1.0. `zig fmt` can be used to automatically fix some small syntax changes that have been made. It is a good reason to put off using it, though I hope you'll come back to check it out once they pin that 1.0 release. No breaking changes will be allowed in minor releases or revisions after that.
@mateusvmv4 ай бұрын
@29:12 > Has an include error > Adds linker steps > Actually fixes the include error (????) So the link command is doing more than linking
@fennecbesixdouze17943 ай бұрын
I love languages where they really insist variables must be initialized at literally the very line they are declared in but then they provide "undefined" to initialize them to. This is what happens to your brain when you think if only we wrote more keystrokes then we wouldn't have any null pointer dereferences.
@IvanNovitskii Жыл бұрын
Tsoding is such a chad
@coolaj866 ай бұрын
1:14:13 The inference goes from the right side to the left side on assignment. ex: `const i = @floatToInt(i32, 1.0)`. In later versions it's fixed as suggested such that `const i: i32 = @intFromFloat(1.0)` now works.
@packediceisthebestminecraf9007 Жыл бұрын
57:59 wouldn't a function that returns an array with those values work? I'm pretty sure there's also some way to make Zig execute the function at compile time.
@darkobul19 ай бұрын
I like compiler for ricv and does the thing you said. If you make a mistake like parameters it gives you suggestion which one to use. Compiler can know best and could be neat if it would give such suggestions. I think they added that for people who use arm so if you try to use arm registers and instruction it suggest you riscv ones.
@lame_lexem2 жыл бұрын
18:44 it's actually 2022 now so update the phrase when?
@labsendeyshent2 жыл бұрын
1:22:19 - "We made DVD logo!"
@employee9911 Жыл бұрын
love this guy
@monsieuralexandergulbu36782 жыл бұрын
Damn, kinda sad that there's no more porth, but there's more troublesome thing out there Also press F to views
@bigmistqke2 жыл бұрын
What happened w porth?
@bradywb982 жыл бұрын
Yes what happened to porth? Are you guessing or did he say something?
@monsieuralexandergulbu36782 жыл бұрын
@@bradywb98 it's predictable, he burned out, it got boring now he wants to work on a new and more exciting projects. He probably achieved the main goal, the reason of making porth and now .. well it just lays in the back. Probably until the better times
@Bobbias2 жыл бұрын
@@monsieuralexandergulbu3678 has he actually decided to just leave Porth entirely now? Last thing I had heard he had stopped streaming, but wanted to work on it offline. Wouldn't surprise me if he did drop the project though.
@bigmistqke2 жыл бұрын
@@monsieuralexandergulbu3678 it ended on such a cliffhanger, with the typed pointers/variables/structures-trilogy. in my personal lore/delusion tsoding s still going strong and drops a big update in a couple of months.
@lame_lexem2 жыл бұрын
rewrite it in zig am i right?
@etodemerzel26272 жыл бұрын
Why? Just compile it with Zig.
@opgadget85442 жыл бұрын
Brilliant job as always! Might I ask you, I see you use emacs instead of vim, any reason behind? Also I really like your desktop environment setup, minimal and highly efficient, what kind of distro is that and which desktop environment? Thanks a lot! Keep the good stuff happening :)
@peterhebden15572 жыл бұрын
Debian + i3wm
@mubinmuhammad9713Күн бұрын
He followed the example of the creator of Zig.
@ME-dg5np Жыл бұрын
Web Dev Is possibile now with Ziglang??
@husanaaulia4717 Жыл бұрын
can we use printf by importing stdio.h?
@GarrethandPipa2 жыл бұрын
what no pixel perfect collision with a ball? Say it isn't so
@pietraderdetective8953 Жыл бұрын
At current state it's unfortunately unstable, last night I spent hours trying to get Zig to accept input from user, only to find out the method from available tutorials have been deprecated. Maybe i'll revisit Zig next year when it has become much more stable.
@pietraderdetective8953 Жыл бұрын
Just finished the video, very interesting how Tsoding's experience with Zig is similar to mine! It would be interesting when Zig has reached a stable release.
@mystisification2 жыл бұрын
Thank you!
@mike2ykme2 жыл бұрын
Noisiest hello world ever? Sir let me talk to you about Java lol
@TheInspctrcat Жыл бұрын
He is already a java dev😂
@chri-k8 ай бұрын
C# too
@Kokurorokuko2 ай бұрын
nah, it's less noisy in Java
@konstantinatwork310510 ай бұрын
3:06:25 "ez! this game is ez!" :D Great content!
@ajov66382 жыл бұрын
you are awesome, you learn language easily.
@nabeelsherazi88602 жыл бұрын
Based and poggers
@ByynxАй бұрын
That "hello world" syntax and semantics just shows these new languague developers have no vocation to create new programming languages, they may have the skills but that doesn't makes them the right people to do it.
@thaddaeusmarkle16652 жыл бұрын
If it's frames fps per second, shouldn't the variable be named FFPS? 😜
@TsodingDaily2 жыл бұрын
FFPSPS
@ethanevans89092 жыл бұрын
Damn, the Jai heist was a failure
@0netom Жыл бұрын
how are you so fresh, if u couldn't sleep?
@ulissesrosa18122 жыл бұрын
Hi Tsoding. As I Saw, you have implemented a Lot of interesting stuff in your Channel. I am creating a simple database (based on sqlite) in my own, as a personal project. That Said, I think that would be a great idea If you make a serie of making a serie of "implementing a database from scratch" in your Channel.
@anon_y_mousse2 жыл бұрын
What language are you implementing it in and what data structure are you using?
@sebastiangudino9377 Жыл бұрын
So you really just want a Russian guy to do your job and upload it to KZbin for free huh?
@dr_duck___3529 Жыл бұрын
In my opinion the best way to learn zig is with ziglings. Its actually entertaining and you learn almost everything you need to know
@heavymetalmixer9115 күн бұрын
>Zig in it's home webpage "A simple language". >It's more complicated to use than C++ Why is this language gaining so many users.
@Sparkillay5 күн бұрын
It's an old video, a lot of things have changed. They have more funding now.
@dnkreative Жыл бұрын
2:09 Minkowski sum should help to solve it easier
@osogrande4999 Жыл бұрын
so in order to not write tests and get away with it I just need my company to have a spare half a million dollars a month, got it.
@hytryi_huy7 ай бұрын
Дякую (thanks)
@john.dough.2 жыл бұрын
haha this is fun :)
@GlobalYoung72 жыл бұрын
Thank you 👍😄
@HuntingKingYT Жыл бұрын
Please make a stream about Zig!
@flleaf2 жыл бұрын
3:31 funny joke
@sumitpandey9712 Жыл бұрын
1:11:44 u can use SDL_FRect
@arnabsarkar85112 жыл бұрын
porth?
@SamualN2 жыл бұрын
zig
@youtubehandlesux2 жыл бұрын
rewrite porth compiler in zig so it can be called pog
@ylluminate11 ай бұрын
How much does it cost to have you do a paid stream like this?
@chri-k8 ай бұрын
$300
@ylluminate8 ай бұрын
@@chri-k thanks - where is this documented?
@chri-k8 ай бұрын
@@ylluminate in the beginning of the stream... also you do know that this is a joke, right?
@MarcoAurelio-sv2tk3 ай бұрын
What is that 9GB porn folder?
@ibendiben2 жыл бұрын
Just before you started killing them all, I heard those blocks shout: wait, we are all equals!!
@blackbeard34495 ай бұрын
2:16:16 2nd Stream
@ParadisePixel2 жыл бұрын
I love you sir
@sanjaux11 ай бұрын
Would have been easier on the DOM ( ͡° ͜ʖ ͡° )
@hkhademian2 жыл бұрын
i think BreakZig is a better name ;)
@MaxCoplan2 жыл бұрын
btw Scala is still very used nowadays
@Marshblocker Жыл бұрын
6:43 'love-minor-mode' 🤨🤨
@fleaspoon2 жыл бұрын
padle is a racket game
@diegoj43827 ай бұрын
Nice SDL tutorial 😂
@doBobro Жыл бұрын
Look ma, somebody have no switch flipped. No test take is hilarious. Good luck driving a car with testless code. Modern gamedev seems taking booking's approach seriously and what a kind of a mess we have.
@nathanfranck58222 жыл бұрын
Lets get zigggged
@jew16712 жыл бұрын
pog
@spetsnaz52 жыл бұрын
Try Odin!
@shubhampawar79212 жыл бұрын
I was thinking of trying zig since it made a lot of promises. After watching this don't want to go anywhere near zig
@etodemerzel26272 жыл бұрын
That's a shame. I'm really enjoying for hobby projects. It's way better than dealing with C's bullshit.
@noname-sj1hi2 жыл бұрын
Check out Odin.
@MaxCoplan2 жыл бұрын
!discord
@mishikookropiridze5079 Жыл бұрын
Scala still better.
@correabuscar2 жыл бұрын
Don't take this wrong, but if you look up asmrmassage channel you might think that you look like the male version of her...
@youtubeviewer7077 Жыл бұрын
Not sure what's funnier, how true what you said is, or that videos like that exist.
@defini7 Жыл бұрын
i tried zig and it was so awful
@SeshachalamMalisetti2 жыл бұрын
Move to India with your family
@tradingisthinking14 күн бұрын
slava ukraini
@michaelshapoval17252 жыл бұрын
dislike. Compiler doesn't know what crap is in your head. Tests are important for testing what you did. Programming is not only about one-liners and simple one-file games. Maybe you're good videoblogger, but you're newbie at programming. You lost me at 18:52
@etodemerzel26272 жыл бұрын
I don't understand why people cannot have reasonable opinions. It's either "cover everything with tests! 100% coverage!" or "you don't need to have tests at all!". Where's the damn middle ground?
@michaelshapoval17252 жыл бұрын
@@etodemerzel2627 well the reason behind those two opposite sides of the same scale is the dumb managers. First are those who want to reduce cost while developing something new (go-go-go, we need to release MVP next friday or we're dead!), second are those who want to reduce dependency on developers (I want to fire that ugly guy and replace him with this new cheap guy, we have no risks here, we have 100% test coverage, right?). As a developer I use tests for mainly two cases, out from the tip of my head. One, if I don't know how to do it yet, but I know what the system should look like, the API, the behavior, maybe known values for the given parameters - I can create a bunch of tests before actual coding, and then it's usual TDD, test-driven development. Other, when I don't want to visit THAT part of the code often, I can cover it with tests and forget THAT part. If something goes wrong, the tests will tell you that it's time to look into that part again. Or tweak your new shiny changes..
@jawad9757 Жыл бұрын
That's a roundabout way to say you're insecure and don't understand humour
@cheebadigga4092 Жыл бұрын
I LOVE the error.UrMom thing. I guess that's the "anyerror" type. Very cool!
@fennecbesixdouze17943 ай бұрын
The more normal hello world would be const std = @import("std"); pub fn main() !void { std.debug.print("Hello, World! ", .{}); } I think the version you saw was intentionally noisy just to illustrate more language features.
@simonfarre4907 Жыл бұрын
It's a little funny that a lot of the hype around Zig, speedy builds, intuitive design, etc are almost all debunked within the first 5 minutes 😅
@pierreollivier1 Жыл бұрын
some parts aren't really intuitive I'll give you that one, but the project seems to be on track to be a potential real C replacement. But in the long run I think it's going to be a very solid language.
@chrboesch Жыл бұрын
@simonfarre4907 The video is a year and a half old. Take a look at how Zig has developed before you make unqualified comments.
@pierreollivier1 Жыл бұрын
@@chrboesch I use zig, it's amazing, but it's isn't as simple and intuitive as C, not that it's a big deal once you get past it, but that's still a real issue of the language, It's on the roadmap to improve, but the compiler is still very much unhelpful, the compilation speed is ok, but the llvm backend is super slow (not really a zig thing tho) So no it's not an unqualified comment, I've used it enough to understand it's state, and It's not production ready, nor does it claim to be. There is still a lot to be done, but if the project maintains it's objective of replacing C while not becoming as bloated and horrendous as Cpp than It's surely going to be the next C, and that's why I'm using it already.
@chrboesch Жыл бұрын
@@pierreollivier1 Sorry, my reply was not for you but for @simonfarre4907. I gave you a thumbs up for your reply to him.
@jawad9757 Жыл бұрын
Wdym "intuitive design", were the actual, explicitly stated goals of the project debunked?
@OLApplin2 жыл бұрын
`std.io.getStdfOut().writer().print(...)` and they say java is verbose 😤
@jawad9757 Жыл бұрын
Have you considered why it's "verbose" for more than 5 seconds
@OLApplin Жыл бұрын
@@jawad9757 chill, it's just sarcasm. I understand the need for namespaces and common interface, it's fine.
@AloisMahdal6 ай бұрын
think of it as "explicit" rather than "verbose". the idea is that as a programming language, Zig can be useful in contexts where you don't even have stdout, or certainly don't want to have it by default.