tsoding is a breath of fresh air and punch in the mouth to the state of programming. I hope we start blt'ing pixels directly to the CGA display memory soon! Let's get back all the cycles we've conceded to all the frameworks!
"I hope we start blt'ing pixels directly." Don't just hope! Just do it! :D I started to do that 5 years ago with opengl pixels in my case. Every pixel in every frame is my own responsibility. I find it a miracle that I can still sustain my life functions just by doing retro programming.
@@wearr_ Another mistake was having a mutable DOM, by now its clearly obvious that the idea of the actor model, which is what really underpins React and all the other UI frameworks and even webcomponents is how user interfaces should be built. Not by ever manipulating a tree of visual rendering components in a flow based HTML made for documents. No, applications should be made all of them using a logical tree data structure, a model And you don't call it "VDOM", there's no dom, its just a tree, its not a "document object model", its a data structure, not a document. And the view should react to the model. MVC/MVVM or whatever, that's how you make user interfaces. DotNet itself had already got that right by 2005. Flash has got that right, ironically, years ago. It had a VDOM of sorts and a DOM. That what dotnet copied from. MFC (microsoft foundation classes) in C++ had that, yes, in 1997, because none of those ideas are really new, we just didn't knew they were the right ones. Even Win32 apps had a object tree, a component tree, aka, a VDOM. Ever wonder why Windows is called Windows, everything on Windows is a Window, because its just a tree data structure, a VDOM of sorts. It took the "web" almost 15 years to actually notice that applications are not documents, and actually standardize on that idea of building interfaces. As you can when you use Document.createElement. But its still a bodge. CSS is a mistake, style should be always local to the component, being global makes sense for documents, not for applications. So the web even with its web components still isn't how applications should be created. The entire thing should be re-engineered. React should die, because it shouldn't even have to be needed to begin with.
@@realhet Huh? You say that every pixel in every frame is your own responsibility but you also say your using OpenGL, so which is it? If you are using any draw call or fragment shader you are not responsible for each pixel... the rasterization engine in OpenGL is, you just give it data.
You can add a delay before expanded volume collapses back after mouse goes out. That way there is no need to play that game where you must guide your mouse through a narrowing labirint and if you hit a wall bad ending happens.
I have no experience with it at all, hardly know anything about it. Only just jumped back into programming recently. But every time I see anything about React, it's never good, so I assume the slander is justified. 😂
With audio plugins you’d usually need to implement parameter smoothing for that slider but yours is just fine, so it’s interesting to think about the differences between this and a VST. Unless I missed it somewhere
The next great web revolution, i'm calling it Browserless Web AKA Web 4 AKA WebX (for Elon in case he wants to give us money to start a foundation) It consists of just not writing any Javascript at all because your Chad Application doesn't run inside Google's cute little browser and instead spits in its face by rendering the UI and making calls to the Backend all in C, not even ++, just C. Imagine the possibilities, the greatest social media of all, an IRC client with fully rendered 3d high-poly Animu catgirls
If you can't do something so simple as making a rudimentary native UI, you're not a programmer. You're a skid. Don't get me wrong, being a skid pays the bills. But it makes you easily replaceable, so easily actually that even ChatGPT can produce better code than you. Many skids joke about how ChatGPT writes better code than them, and I view that as a self-insult of the highest order. If a glorified text-predictor is better than you at your supposed area of expertise, you have failed spectacularly.
At 19:24, besides enum-based bitflags and structs, there is also the possibility of struct of bit-fields. That way I think you get both the space efficiency and the clear syntax.
19:38 Hmm I think bit fields would've worked. I'm not an expert in bit fields though. typedef struct { unsigned hoverover : 1; unsigned clicked : 1; } Button_State; They would be stored in a single unsigned int, if I understand correctly. Don't see a reason why to avoid them here (except for the reason to avoid bit fields in the project as a whole, that I totally get)
@@alurma Huh, looking into it, it does appear that that's correct. Wild. It also appears that GCC-to some people's complaints-will pack your unsigned int into the smallest type that fits, while Clang and ICC will use the full size. I never realized how non-portable bitfields are. Good to know, wish they were more portable given how much more convenient they are than bit masking for most purposes.
It's a cut. I started to cough at that moment and it was a bit too loud, so I decided to cut it out. This was the best way to do it. Sorry if it turned out too confusing.
It is amazing to see someone else doing the same custom UI programming I remember doing as a teenager in 2001-2002. Actually, the future is HTML-based rendering. If all Windows rendering systems in Linux moved to a Chrome / HTML-based rendering, it would solve many issues because writing an app would mean a lot less effort and a lot of flexibility.
никогда не понимал, почему не юзают сишняк массово проще чем сишняк - ничего не придумали, да и наверное не придумают при этом, на сишняке можно написать абсолютно всё [ну или почти всё] при этом, сишняк позволяет абсолютно всё - это пожалуй единственный язык абсолютно "без каких либо тормозов"
Programming like this is the only way I feel comfortable with JavaScript. But it always slaps me in the face with async awaits and forces me to use really terrible and weird control flows. (If there is a better Javascript way to do it, I am not smart enough for that)
@@TsodingDaily Hmm, I think I know what you mean (though the P is not silent, it's actually spelled "Pferd"). So "pferd_slider" is a decent idea, but I still feel like sliding it is quite horizontal..
I know you are trolling, but youtube like comments so I'll write anyway. React is needed to not spend 2 hours on one button for your application (time to market matters). If one has better UI he will win but it is hard to compete with electron apps by writing native apps for each platform. Have you considered some cross platform tooling like Qt? The logic of the app should stay the same.
@@emaaaaax Doesn't matter. Markets for web applications are still massive, it allows you to ship without requiring installation, and you inherit lots of security features from the browser. Ignorantly you can rebuttal by saying that people can simply just download and install your application, then I would say, what about enterprise software with security requirements. At my company we can get around lots of security checks by shipping a web application, if we shipped a software app, we would have to go through a huge security process just to hot-patch software for each of our clients.
@@JohnSmith-yr4vi Honestly, I don't give two shits about what's more profitable for your or anyone else's company. Installing a computer program isn't that hard. And yes, you are inheriting lots of the security features from the browser, but you're simultaneously inheriting lots of the security vulnerabilities and overall low performance of said browser. Any modern browser is a huge beast, and loading and running all that just to have a simple GUI is... idiotic and lazy. Don't get me wrong, I know it's profitable. What's better than having a standardized, cookie-cutter interface that can be customized by replaceable """webdevs""". Ugh, I think I vomited a little...
@@longlostwraith5106 I'm not privy to this standardized, cookie-cutter interface you're talking about. It also doesn't matter what YOU want, developers are a fraction of computer users. The fact is, clients do not want to install services on their machines. I can deploy an application that runs fine on all platforms with relative ease via web technology, in probably half the time with the same amount of security if not more then what a native solution could do. Sure there are things that I wish I could do in web technology that I can only do in native programming, tough shit.
Not that it's EVERYTHING is in React and when you bring up anything it's like this cult lie follow the leader mindset. The truth is newbies should not touch it. Your learning the REACT WAY. That is not development you run the chance of just learning how to piece things togther.@@paladin9876
@@anon_y_mousse yeah definitely bro, important monitoring services used in RTS actions that are written in React are definitely pointless as an example, but keep going on about how spending 2 hours on a volume button is based
I am finally understanding c/c++ code after 3 years of on and off usage. Now I am listening the industry doesn't love c/c++ as much as they love rust,zig. And what's the deal with the memory safety. Memory safety only matters in kernel space. Windows, Linux is having issues cause they use
If you write idiomatic C++ then memory safety isn't a real concern. If you manage things well in your project then the same applies even if you're using C. Linux only has issues because it's so huge that they literally don't have the time to check every single merge. If they had more funding to throw more developers that were on par with Linus at the project, then they wouldn't have problems, but they don't. Microsoft has the funding to properly maintain Windows, but they'd rather spend it on implementing a dystopian future.
That's exactly my point. c/c++ is stable enough(very stable). We don't need another freaking language every month to flex a muscle. It's a language that just needs to covey a message. Don't need anything fancy.
@@natsudragneel293 Indeed. If someone is just doing it for fun, then I'm all for a new language, but for real work, I say just use what's already there, works and has been tested out the wazoo. I tend towards pure C rather than C++, but I still try to keep up with my knowledge of C++ as well because on occasion I have to use it for work too.
"Memory safety only matters in kernel space" What are you even talking about? It matters more in kernel space, of course (as does every measure of correctness), but these wide sweeping generalization are just as incorrect as insisting Rust must be used everywhere.
@@gianni50725 And Rust doesn't even provide memory safety. It checks some things, but not all, and it invalidates perfectly good code due to an overabundance of caution, while missing whole classes of issues.
i am a React developer, and i'm here to see how React is about to get roasted. It feels so good.
me too haha
no such thing as a React developer, only if you're a project maintainer I guess
@@cheebadigga4092???
i don't think you should feel proud
@@AnzenKodo trust me i don't feel proud lol. Every day i woke up (unfortunately), i'm staring into the void.
Tsoding mastered the genre of react videos.
Slowly turned into React channel Sadge
tsoding is a breath of fresh air and punch in the mouth to the state of programming. I hope we start blt'ing pixels directly to the CGA display memory soon! Let's get back all the cycles we've conceded to all the frameworks!
We should go back to 1995 and re-engineer browsers before the mistake of JS
"I hope we start blt'ing pixels directly."
Don't just hope! Just do it! :D
I started to do that 5 years ago with opengl pixels in my case.
Every pixel in every frame is my own responsibility.
I find it a miracle that I can still sustain my life functions just by doing retro programming.
@@monad_tcpas someone who actively uses JS, god yes it's a mistake. So much weird jank that just makes 0 sense.
@@wearr_ Another mistake was having a mutable DOM, by now its clearly obvious that the idea of the actor model, which is what really underpins React and all the other UI frameworks and even webcomponents is how user interfaces should be built.
Not by ever manipulating a tree of visual rendering components in a flow based HTML made for documents.
No, applications should be made all of them using a logical tree data structure, a model And you don't call it "VDOM", there's no dom, its just a tree, its not a "document object model", its a data structure, not a document.
And the view should react to the model. MVC/MVVM or whatever, that's how you make user interfaces.
DotNet itself had already got that right by 2005.
Flash has got that right, ironically, years ago. It had a VDOM of sorts and a DOM. That what dotnet copied from.
MFC (microsoft foundation classes) in C++ had that, yes, in 1997, because none of those ideas are really new, we just didn't knew they were the right ones.
Even Win32 apps had a object tree, a component tree, aka, a VDOM. Ever wonder why Windows is called Windows, everything on Windows is a Window, because its just a tree data structure, a VDOM of sorts.
It took the "web" almost 15 years to actually notice that applications are not documents, and actually standardize on that idea of building interfaces. As you can when you use Document.createElement. But its still a bodge.
CSS is a mistake, style should be always local to the component, being global makes sense for documents, not for applications.
So the web even with its web components still isn't how applications should be created.
The entire thing should be re-engineered.
React should die, because it shouldn't even have to be needed to begin with.
@@realhet Huh? You say that every pixel in every frame is your own responsibility but you also say your using OpenGL, so which is it? If you are using any draw call or fragment shader you are not responsible for each pixel... the rasterization engine in OpenGL is, you just give it data.
You can add a delay before expanded volume collapses back after mouse goes out. That way there is no need to play that game where you must guide your mouse through a narrowing labirint and if you hit a wall bad ending happens.
0:10
Answered the main topic in 10 seconds of video. What a level!
Nextlevel media content, thank you!
You need to make it laggier so users don't get confused /s
Cool program, but I miss a file selector. For someone used to the keyboard drag-n-drop is really disgusting.
It's on my TODO list!
the React slander will never end
I have no experience with it at all, hardly know anything about it. Only just jumped back into programming recently. But every time I see anything about React, it's never good, so I assume the slander is justified. 😂
Dude it sucks... if it takes months to learn that mean it's poorly designed. Solid.js is a more modern elegant version of React should be.
And it never should, cause it's react.
chad video ending with a raylib pull request.
With audio plugins you’d usually need to implement parameter smoothing for that slider but yours is just fine, so it’s interesting to think about the differences between this and a VST. Unless I missed it somewhere
Rare footage of Tsoding not saying "Looks like we're live"
1:39 bruh i love watching your puns 😂
It would be funny if the speaket icon got bigger when the volume increased.
1:00:09 i literally playbacked and screamingly laugh until next 15 seconds several times. Amazing.
came for the react roast. stayed for the react roast.
He is Awesome person I enjoy listing to him 😃
let's go tsoding!
Only real ones remember the old title and thumbnail
Love the sneaky title change ;)
The next great web revolution, i'm calling it Browserless Web AKA Web 4 AKA WebX (for Elon in case he wants to give us money to start a foundation)
It consists of just not writing any Javascript at all because your Chad Application doesn't run inside Google's cute little browser and instead spits in its face by rendering the UI and making calls to the Backend all in C, not even ++, just C. Imagine the possibilities, the greatest social media of all, an IRC client with fully rendered 3d high-poly Animu catgirls
tsoding == BS_NONE
react_devs == BS_ALWAYS
Came for react slander, stayed for porn folder too smol
He’s funny like mental outlaw Kenny.
dude can reinvent the wheel and expects others to have the capability to do so as well, dude is happy, let him be happy
If you can't do something so simple as making a rudimentary native UI, you're not a programmer. You're a skid.
Don't get me wrong, being a skid pays the bills. But it makes you easily replaceable, so easily actually that even ChatGPT can produce better code than you.
Many skids joke about how ChatGPT writes better code than them, and I view that as a self-insult of the highest order. If a glorified text-predictor is better than you at your supposed area of expertise, you have failed spectacularly.
At 19:24, besides enum-based bitflags and structs, there is also the possibility of struct of bit-fields. That way I think you get both the space efficiency and the clear syntax.
People complain about bitfields because they aren’t portable. I work in embedded so it’s inherently non portable so I use them but 🤷🏻♂️
Flexing on html/css centering never gets old.
just use fucking display flex lmao
Alexey is a master.
01:19:06 --force instead of --force-with-lease?
CLITERAL
I seent it 👀
19:38
Hmm I think bit fields would've worked. I'm not an expert in bit fields though.
typedef struct {
unsigned hoverover : 1;
unsigned clicked : 1;
} Button_State;
They would be stored in a single unsigned int, if I understand correctly.
Don't see a reason why to avoid them here (except for the reason to avoid bit fields in the project as a whole, that I totally get)
The reason for using them is not polluting the global namespace and having convenient lvalue .accessors, of course
Also, you can try this:
int main(){return sizeof(struct{_Bool x:1;_Bool y:1;});}
On my computer, this returns 1.
This is valid since C99
You could also do `unsigned char ... : 1; unsigned char ...: 1` to make it a single byte instead of an entire 4 byte int which sets empty.
@@yaksher, pretty sure it's not specified whether this is allowed or not by the standard. Unsigned int and _Bool are guaranteed to work as of C99
@@alurma Huh, looking into it, it does appear that that's correct. Wild. It also appears that GCC-to some people's complaints-will pack your unsigned int into the smallest type that fits, while Clang and ICC will use the full size.
I never realized how non-portable bitfields are. Good to know, wish they were more portable given how much more convenient they are than bit masking for most purposes.
I C what you did there!
59:50 harder to update raylib
ah shit here we go again
I'm just a state machine.
And I won't work for nobody but you.
ok how did you type FULLSCREEN_BUTTON_SIZE/FULLSCREEN_BUTTON_MARGIN to HUD_BUTTON_SIZE/HUD_BUTTON_MARGIN instantly like that??
It's a cut.
I started to cough at that moment and it was a bit too loud, so I decided to cut it out. This was the best way to do it. Sorry if it turned out too confusing.
lol of course i'm a dummy. really clean up though!
It is amazing to see someone else doing the same custom UI programming I remember doing as a teenager in 2001-2002. Actually, the future is HTML-based rendering. If all Windows rendering systems in Linux moved to a Chrome / HTML-based rendering, it would solve many issues because writing an app would mean a lot less effort and a lot of flexibility.
I really hope it isn't, that would be horrifically inefficient and slow
I don't know my heart just don't want's to learn react ;-; I'm cursed by Svelte
никогда не понимал, почему не юзают сишняк массово
проще чем сишняк - ничего не придумали, да и наверное не придумают
при этом, на сишняке можно написать абсолютно всё [ну или почти всё]
при этом, сишняк позволяет абсолютно всё - это пожалуй единственный язык абсолютно "без каких либо тормозов"
you can't bait us like that lol
Thanks, you're the reason many people have imposter syndrome
Any plans to support musicalizer on iOS/Android?
Soooo, nobody is going to comment on the folder too smol PepeHands
Zozin
Plz make GTA VI before Rockstar games
Clearly, with raylib in c
Programming like this is the only way I feel comfortable with JavaScript. But it always slaps me in the face with async awaits and forces me to use really terrible and weird control flows. (If there is a better Javascript way to do it, I am not smart enough for that)
Always good to see React being roasted, but I feel like this is also a roast to over-bloated UI frameworks like wxWidgets, QT...
show us ur setup
What do you suppose, is the vertical equivalent of a horse-slider?
Maybe a horse-lift?
I usually call it vert_slider :D
@@TsodingDaily Hmm, I think I know what you mean (though the P is not silent, it's actually spelled "Pferd").
So "pferd_slider" is a decent idea, but I still feel like sliding it is quite horizontal..
What is the problem with Electron?
Goodluck with textboxes)
th-cam.com/video/V-o1cKaWOQc/w-d-xo.html
Not as difficult as you might think. Stop being a skid and actually learn how to program.
I know you are trolling, but youtube like comments so I'll write anyway. React is needed to not spend 2 hours on one button for your application (time to market matters). If one has better UI he will win but it is hard to compete with electron apps by writing native apps for each platform. Have you considered some cross platform tooling like Qt? The logic of the app should stay the same.
You don't need react to do that family.
his program is also cross platform.
@@emaaaaax Doesn't matter. Markets for web applications are still massive, it allows you to ship without requiring installation, and you inherit lots of security features from the browser. Ignorantly you can rebuttal by saying that people can simply just download and install your application, then I would say, what about enterprise software with security requirements. At my company we can get around lots of security checks by shipping a web application, if we shipped a software app, we would have to go through a huge security process just to hot-patch software for each of our clients.
@@JohnSmith-yr4vi Honestly, I don't give two shits about what's more profitable for your or anyone else's company.
Installing a computer program isn't that hard. And yes, you are inheriting lots of the security features from the browser, but you're simultaneously inheriting lots of the security vulnerabilities and overall low performance of said browser. Any modern browser is a huge beast, and loading and running all that just to have a simple GUI is... idiotic and lazy.
Don't get me wrong, I know it's profitable. What's better than having a standardized, cookie-cutter interface that can be customized by replaceable """webdevs""". Ugh, I think I vomited a little...
@@longlostwraith5106 I'm not privy to this standardized, cookie-cutter interface you're talking about. It also doesn't matter what YOU want, developers are a fraction of computer users. The fact is, clients do not want to install services on their machines. I can deploy an application that runs fine on all platforms with relative ease via web technology, in probably half the time with the same amount of security if not more then what a native solution could do. Sure there are things that I wish I could do in web technology that I can only do in native programming, tough shit.
ew thats too fast, i need time to play on my phone while software loads like visual studio adds a half an hour to my day every time i fire it up
Okay now write a C equivalent for React Native...
Is this God?
it's too snappy I'm dizzy, horrible UI lmaoooo
Seems like most React developers understand that their work is pointless, but there's a few that seem upset at being told the truth.
It's too fan boyish it's not easy to use. Solid.js is way better but lord all the jobs are in React it's ruining development.
nice elitism bro, I’m sure you are better than them because they use a different technology than you 🎉🎉🎉
@@paladin9876 It's not elitism when it's true.
Not that it's EVERYTHING is in React and when you bring up anything it's like this cult lie follow the leader mindset. The truth is newbies should not touch it. Your learning the REACT WAY. That is not development you run the chance of just learning how to piece things togther.@@paladin9876
@@anon_y_mousse yeah definitely bro, important monitoring services used in RTS actions that are written in React are definitely pointless as an example, but keep going on about how spending 2 hours on a volume button is based
dammit, i told my parents i needed react and they didnt listen!
If you can cross compile your application and run it on multiple OSes , I will remove React from my CV@Tsoding Daily
th-cam.com/video/EB96Auoag6g/w-d-xo.html
Tho, I don't really get removing from CV part. Are you ashamed of something?
I really want you to build a legit app in React someday xD
I am finally understanding c/c++ code after 3 years of on and off usage. Now I am listening the industry doesn't love c/c++ as much as they love rust,zig. And what's the deal with the memory safety. Memory safety only matters in kernel space. Windows, Linux is having issues cause they use
If you write idiomatic C++ then memory safety isn't a real concern. If you manage things well in your project then the same applies even if you're using C. Linux only has issues because it's so huge that they literally don't have the time to check every single merge. If they had more funding to throw more developers that were on par with Linus at the project, then they wouldn't have problems, but they don't. Microsoft has the funding to properly maintain Windows, but they'd rather spend it on implementing a dystopian future.
That's exactly my point. c/c++ is stable enough(very stable). We don't need another freaking language every month to flex a muscle. It's a language that just needs to covey a message. Don't need anything fancy.
@@natsudragneel293 Indeed. If someone is just doing it for fun, then I'm all for a new language, but for real work, I say just use what's already there, works and has been tested out the wazoo. I tend towards pure C rather than C++, but I still try to keep up with my knowledge of C++ as well because on occasion I have to use it for work too.
"Memory safety only matters in kernel space"
What are you even talking about? It matters more in kernel space, of course (as does every measure of correctness), but these wide sweeping generalization are just as incorrect as insisting Rust must be used everywhere.
@@gianni50725 And Rust doesn't even provide memory safety. It checks some things, but not all, and it invalidates perfectly good code due to an overabundance of caution, while missing whole classes of issues.
"ooooo look at me... i'm a pomade abusing edge lord who disses react....".... yeah yeah react isn't perfect. wgaf.
React sucks hard
Same claims, same garbage looking UI 😅 this native windows app is supposed to replace a web application? 😂
Don't forget to post this comment under each of my videos where I do UI in C, okay? :)
Valid enough, React sucks, but even ECMA can get you a basic POC in less than 4 videos.
found the soydev
i dont like what im seeing