OOP in Pure C
2:00:13
4 сағат бұрын
Async Engine in C
3:12:16
9 сағат бұрын
Is John Carmack Right about UI?!
1:52:02
12 сағат бұрын
Programming Audio is Dangerous for Your Hearing!
3:08:41
My Own 3b1b Animation Engine but in C
2:06:44
Parsing Lisp with Rust (Tula Ep.03)
2:42:18
Esoteric Language Development (Tula Ep.02)
2:27:29
My Next Video Project (Tula Ep.01)
2:06:05
I dramatically sped up my code
1:34:09
Content Aware Scaling in C
2:36:04
Eepers Gameplay Trailer
1:36
Ай бұрын
Control Your Dependencies
1:45:07
2 ай бұрын
Reviewing Your Pull Requests
1:39:37
Hare Programming Language
1:39:25
3 ай бұрын
Rewriting Raylib in JavaScript
2:12:47
Easy Web Games in C
2:54:16
3 ай бұрын
Easy Annoying Popups in C
1:37:31
3 ай бұрын
I fixed Lua
2:16:48
3 ай бұрын
GameDev in Assembly?!
4:00:03
3 ай бұрын
I made JIT Compiler for Brainf*ck lol
3:07:56
Zip works Better than AI
2:09:06
4 ай бұрын
Пікірлер
@namenlos_null45
@namenlos_null45 44 минут бұрын
Ура, вы же понимаете что им учить этоь язык как нам из СНГ их языки программирования
@Nextdesu
@Nextdesu 49 минут бұрын
About type punning, i dont know c but shouldnt your color type be a union? Than you can treat it as both a struct and u32 and explicitly indicate this.
@hornat3964
@hornat3964 Сағат бұрын
1с типо шутка для тебя?
@monad_tcp
@monad_tcp Сағат бұрын
Oh, I remember having to call _init I made an elf library loader for freaking Windows. I made an application that loads elf files on freaking Windows. This is roughly what I was trying to do. gist Luiz-Monad/218cd2b6195eaabecdc110020e9cd523 The magic is using a custom elfload_dlsym like this one github GregorR/gelfload/tree/04d505fd1e5d2695a9076aa54ff8b193b1989d7f Then you can compute the address of the pointer yourself with the thing loaded in memory after you just do a fopen and copy the shite to the RAM yourself. Then its a matter of just jumping there, aka, calling the function pointer This sort of code is ironically "multiplatform", you only need a C library able to read ELF files and what's platform specific is just a MemMap function to mark data as executable.
@lindx2533
@lindx2533 2 сағат бұрын
a pochemu ne na russian ?
@NoizyCr1cket
@NoizyCr1cket 2 сағат бұрын
36:24 "Barney Soursoup" 🤣
@NikoirOfficial
@NikoirOfficial 2 сағат бұрын
Я в первые в жизни вижу такой язык. Можно узнать что это и как?!?))
@rogo7330
@rogo7330 2 сағат бұрын
One thing why people talk about C as "old" and "hard" just because libc is very old, full of bugs and most of the times inconvinient. I personally reference to it as "undefined code with global states library". Thankfully POSIX does include functions where you can provide a pointer to an instance of the state, thus having ability to do several things at the same time, but it is not everything at it honestly should be the default. If Python would not had a lot of predefined classes for strings and stuff it would be very annoying language to write in. Standart library of the language _is_ the language these days.
@prayer4675
@prayer4675 5 сағат бұрын
Знатная кружка.
@nordgaren2358
@nordgaren2358 6 сағат бұрын
Oh no. Does he find out that vtables aren't FFI safe in this video?
@RandomGeometryDashStuff
@RandomGeometryDashStuff 6 сағат бұрын
02:54:27 why no `data->tasks.capacity = 0;`? edit: duplicate of chat 02:57:53
@TomGDrAccessibility
@TomGDrAccessibility 7 сағат бұрын
No, it is not because “everyone does it,” it’s by design and very deliberately about accessibility. What has happened to our education system?! Actions requiring user input MUST be cancelable according to the WCAG POUR principles. What about users who use switch control / switch access? Or neurodivergent users who need to interact with a button to see if it even is actionable? I guarantee you won’t be able to come up with all of the reasons users may have for needing this feature. How can you have a video about this without even mentioning accessibility?
@MrOnePieceRuffy
@MrOnePieceRuffy 7 сағат бұрын
Whats this Question? A good language has a string class. Case closed.
@dutchdykefinger
@dutchdykefinger 9 сағат бұрын
i started C++(11) not too log ago, i already knew some ansi C and dabbled in arduino C i think half of my c++ shit is just old C library shit at this point lol i do use strings here and there, but there's plenty of c_str() and char* still going on :D i don't use classes either, i'm just using good old structs and pointers, wrapped in namespaces i do like the namespaces paradigm a lot for organizing my codebase, so the namespaces kind of act as (strictly public) " classes". right now i'm working on a 2d (cpu only) engine with SDL2, i guess i'm a bit of an odd one out still using mingw32-64 at this point i just started diving into pthreads yesterday and i'm making gigantic strides in performance now i can tap into my entire cpu :D i'm really having a blast so far, i do have my C background so everything comes pretty easy to me and most has been a breeze and i'm pretty fucking chuffed with myself lol
@markmckenzie5343
@markmckenzie5343 9 сағат бұрын
44:18 the way you said "pure" lmao
@Nice__One
@Nice__One 10 сағат бұрын
Боже, орала в голос😂 Автор молодец😊
@alanwest6949
@alanwest6949 10 сағат бұрын
Yes.
@Rose-ec6he
@Rose-ec6he 10 сағат бұрын
You missed out linking the source in the description today, i dont know if that was intentional or not. I personally find it extremely valuable, i have learnt so much from being able to follow along with your process by video and consulting your source when I mess up any details or want a rough idea of conventions to follow. Obviously, I don't expect this of you but if this was a slip-up, here's your opportunity to fix it. Anyway, love your content. Thanks again
@friedrichmyers
@friedrichmyers 12 сағат бұрын
My rule is simple. Write C in C++ and if things needs to be bananas, use C++ features. I still don't write classes unless I HAVE to. I don't use the new C++ std library functions unless I HAVE to.
@tapwater424
@tapwater424 8 сағат бұрын
I add templates to all my functions to increase compile times by 1000%
@Korrmet
@Korrmet 12 сағат бұрын
Я как-то помню хотел сделать свой компиздюлятор с преферансом и куртизанками, но сука ни один из генераторов парсеров не херачил мне портируемый код, а самому все это писать тупо не вывез.
@Cmanorange
@Cmanorange 12 сағат бұрын
26:10 raysan appreciation post
@pedrokalil4410
@pedrokalil4410 13 сағат бұрын
Oh my god, you launched this video right as i am making async oop in C. Tho i am making it more as an general purpose language (i think i will create my lang and transpile to this subset of c i created)
@Da-DOS
@Da-DOS 13 сағат бұрын
Cool. I need to learn russian now.
@thaddaeusmarkle1665
@thaddaeusmarkle1665 13 сағат бұрын
Bro probably pays more for tea than to heat his house lol.
@BobChess
@BobChess 14 сағат бұрын
C++ can do C but C can't do C++
@dutchdykefinger
@dutchdykefinger 9 сағат бұрын
well that can't be entirely true C++ was literally a C library for over a decade at bell laboratories, until c++ was standardized to its own standard in 1998 lol of course C compilers were updated with new tricks to support more things for the library in C as it evolved, before c++ became its own thing but it was still a newer ISO standard of C rather than a C++ compiler. before 1998, C was the only one that could do C++ lol there's a reason pretty much every C++ compiler can compile C, they wouldn't all go out and implement backward support for C in their C++ compilers for shits and giggles, it was already there because it evolved from C that's pretty much the only reason they almost all can and do, C is the cause, not the effect lol
@prof.dr.davidbuzatto
@prof.dr.davidbuzatto 14 сағат бұрын
I'm a C enthusiast and the only thing I miss is a standard implementation of the elementary data structures like lists (stack, queue, deque, list), priority queues, sets and symbol tables (red-black trees and hashtables).
@rusi6219
@rusi6219 5 сағат бұрын
LISP programmers be like:
@ominusliticus8264
@ominusliticus8264 14 сағат бұрын
Not sure if you'll read, but to use `std::vector<std::unique_ptr<Task>>`, your plug_update function should call `std::make_unique<Task>(Move_Vec2(...))` for every new task, instead of `new Move_Vec2(...)`. The cleanest way is to then use fold expressions and `push_back` or `emplace_back`
@ConnectionRefused
@ConnectionRefused 14 сағат бұрын
I know you *explicitly* said you just want to do more programming and less BS (I can relate, btw), but I really loved this and hope you consider doing more videos like this one where you just talk about stuff and explain how you think. Also, your explanation of why you use C - wanting your programs to survive for decades, and how simple things are what survive in the long run - helped give me words for some ideas I've had bouncing around in my head re: wanting to build things that feel solid and mature, and will outlast the hype-du-jour
@frednora
@frednora 15 сағат бұрын
This idea is not good. Maybe he wants to 'pull the trigger' because he likes 'first person shooter games'.
@arunvignesh7015
@arunvignesh7015 15 сағат бұрын
I remember this causing some controversy in samsung phones shutter lag, where it only takes picture once you release the shutter button while apple goes burst mode with act on press. I wonder if there can be specific applications for this. Interestingly all our hardware buttons are act on press buttons unless they are spring loaded or magnetic flip type buttons that can be more akin to act on release only after a tipping point. Both seem to have its uses and using common sense we can conclude that its better to use act on press for activation and registration, and act on release to invoke a state change.
@maxpoulin64
@maxpoulin64 16 сағат бұрын
I think the proper solution for the state preservation would be a custom allocator that keeps tracks of allocations like React hooks work: when reloading, the allocator just hands back out the same allocations in the same order so your state is preserved. Then you also get to detect when the data layout changes and force a full reload if the number of allocations change or the requested size changes. It still would break the objects though, so you'd also need to only do that for the state and have a separate struct just for state so you don't overwrite the vtable pointer. Fundamentally hot reloading native code without breaking pointers is hard.
@jonaslamprecht9169
@jonaslamprecht9169 16 сағат бұрын
I am going to ask my boss to switch all our projects at work to GrechaJS.
@misisumegi6138
@misisumegi6138 16 сағат бұрын
im not 100% sure i assume it crashes because you unload the dynamic library and thus the pointer to the vtable is invalidated (sorry i didn't fully watch the previous episodes) to update to it i think the simplest way would be to create a copy of each element but there are 2 problems 1 there are no virtual copy constructors 2 you cannot use polymorphism because the vtable is outdated at minimum now the best way i can think of solving this is creating a copy factory function that auto registers new classes using CRTP and identifies types using typeid but im not sure if it would work i will try to implement it by the next vod and report about it
@Protoex
@Protoex 16 сағат бұрын
Why do some people dislike OOP ? I'm aware of the problems related to performance, but other than that, I don't know.
@maxmustermann5590
@maxmustermann5590 17 сағат бұрын
I was asking myself some time how he got this good, but when implementing hash tables in C reminds you of your childhood that's probably the answer
@rssszz7208
@rssszz7208 17 сағат бұрын
Am learning cpp hope it helps😅
@GoldoEb
@GoldoEb 17 сағат бұрын
1:26:00 BTW, you can also specify the name of the "X" macro. Just use the macro parameters like in the following example. #define LIST(handler_) \ handler_(banana) \ handler_(apple) \ handler_(cherry) And now you can have multiple different X-macros (handlers) and each of them will be defined.
@hedlund
@hedlund 6 сағат бұрын
Ooh, never came across that before. Cheers!
@DannysGalaxyTab
@DannysGalaxyTab 17 сағат бұрын
"What do I do now??? What do I fukin do??!!" haha
@hughjass6928
@hughjass6928 18 сағат бұрын
Short answer is yes
@jgfjfgjfhjf
@jgfjfgjfhjf 18 сағат бұрын
> I don't mind to use somebody's library, if it is not shit meanwhile in .js land 🐵
@VladislavAkimenko
@VladislavAkimenko 18 сағат бұрын
Черников переписывай «Хэйзел» на «ХУЯ»
@nobodyspecial1553
@nobodyspecial1553 18 сағат бұрын
I just like writing code in C. That is all. I make no claims about superiority. I'm a guy who programs for pleasure. 😏
@dutchdykefinger
@dutchdykefinger 9 сағат бұрын
my c++ code is filled with standard C library shit lol, it's deceptively close to ansi C under the hood the way i play with it lol but man i love the namespaces, i kind of use them as (strictlt public) classes to organize and categorize my codebase, but it's mostly just good old structs and pointers under the hood, i don't even bother with c++ class implementation, but i do love the namespaces
@michaelmas9817
@michaelmas9817 18 сағат бұрын
yeah yeah, Java is just a subset of JavaScript
@joseoncrack
@joseoncrack 10 сағат бұрын
🤣
@user-ej2ed8nz1i
@user-ej2ed8nz1i 18 сағат бұрын
Абракадабра
@ZoraAlven
@ZoraAlven 19 сағат бұрын
44:22
@user-th9nk2po8n
@user-th9nk2po8n 19 сағат бұрын
Я боюсь людей которые пахают 4 месяца ради лулзов )
@dvillegas
@dvillegas 19 сағат бұрын
Oh god not Qt, anything but that, we have a legacy app at work on Qt, I have no fucking clue what it does or how it does it and touching it terrifies me everytime
@vladimirkraus1438
@vladimirkraus1438 5 сағат бұрын
That's not a problem of Qt but the problem of your badly designed application or your lack of understanding of Qt. Qt is still (one of) the best tool for professional grade desktop applications.
@nordgaren2358
@nordgaren2358 19 сағат бұрын
I recently had to model C++ "inheritance" into Rust, so that I could "make" C++ structures in Rust for patching Elden Ring. It was pretty cool! There's some pain points in Rust. Mostly just stuff that has to be done manually. I could imagine C is even more painful in that regard.
@rusi6219
@rusi6219 17 сағат бұрын
Well if you tried C you a) wouldn't have to imagine and b) find out that you're wrong
@nordgaren2358
@nordgaren2358 16 сағат бұрын
@@rusi6219 I have done it in C for less complicated projects. How am I wrong ? You literally have to do things more manually in C.
@aniketbisht2823
@aniketbisht2823 19 сағат бұрын
Seeing you use macros all over the place gives me aneurysms, as a C++ programmer. I guess this is what "production" C looks like because you need generics and meta-programming in large projects. In C++ using templates (with concepts) and function overloading helps you achieve this (along with little bit of constexpr). You said you are not a fan of "dynamic" languages. Here C is no better than those dynamic languages. Whereas in C++ most (generic programming) errors would be caught at compile time and the usage of static_asserts and concepts make those errors easy to reason about. 44:04 It's embarrassing to see this dude. This function macro, in C++, could have been a simple function template (with appropriate constraints).
@monad_tcp
@monad_tcp Сағат бұрын
C++ template metaprogramming is the embarassing thing
@patrickjdarrow
@patrickjdarrow 19 сағат бұрын
Me watching this as a python script kiddie 👁️👄👁️🍼