"This is what happens when C programmers start making websites" 😂
@saeedhaidar13756 ай бұрын
Man I laughed so loud🤣🤣🤣
@kausdeka6 ай бұрын
Pokémon evolution!!
@V0ngard3n6 ай бұрын
@@saeedhaidar1375I have got literally kicked out of a team call for laughing my soul out for this 😂
@ashley_noveyplush5 ай бұрын
reading this comment at the same time tsoding says it hits different
@ulughank2 ай бұрын
I actually made the website and I'm not a C developer 😭
@mateusvmv6 ай бұрын
Everyone talking about C killers, meanwhile I'm looking for the C healer
@CHURCHISAWESUM6 ай бұрын
Everyone ask what is C nobody ever ask how is C :L
@Jupiter__001_6 ай бұрын
HolyC
@mateusvmv6 ай бұрын
@TempCrap-nn4cm tell me about it!
@gwentarinokripperinolkjdsf6836 ай бұрын
I am starting to learn how to use clang tooling and I have some ideas about extending the C language. In particular I want comp time functions
@Shonicheck5 ай бұрын
@@gwentarinokripperinolkjdsf683 Do you want compile time functions like in zig? If yes then zig is your answer!) You can also perfome computations using good'ol macro-magick(though heavy use is ill-advised), also most of the simple computations that can be done in compile time are already done in compile time by using optimisations of modern compilers(though yes, this behaviour is NOT a guarantee). If you are talking about meta-programming then *light* macros are all you need. Anything more than that - you might as well use just c++ at this point(you can treat c++ as a feature dump of c extensions), since it has compile-time functions and a metric ton of other features like that.
@j-wenning6 ай бұрын
The FAQ now has a "How do I use WASM?" section now.
@GesteromTV6 ай бұрын
14:11 face asking : " do i developed it in my dreams or something?"
@XeZrunner6 ай бұрын
14:07 that slow look at the camera is hilarious LOL
@psteven56 ай бұрын
Why are you still using C3 ? C23 is already out smh
@solidnywonsz5 ай бұрын
Who cares about C23? We already have C99
@psteven55 ай бұрын
@@solidnywonsz i saw someone say that on the C3 video after this one and i realized i could have made the joke way funnier
@tristanperalta29 күн бұрын
@@solidnywonsz C99 > C23
@idkncc6 ай бұрын
My brain is too soyed to understand after previous web development streams
@sciencedaemon17 күн бұрын
Soy is good for you. It's all the fast food you are eating.
@wassimulator6 ай бұрын
I actually talked with the creator of C3 a little some time back. It was throughly a good experience both from a programming language and a personal standpoint.
@notdeus38346 ай бұрын
One day, I'll be able to fully comprehend the things you say
@zxcv881117475 ай бұрын
This is how charming he is.
@vanyabenadryl6 ай бұрын
44:10 I think it's actually a good idea, cuz defer also accounts for breaks/continues in the while loop, in case you want to use them
@kebien60206 ай бұрын
Making the comments into KZbin subtitles is interesting. Never thought about that option
@harleyspeedthrust40136 ай бұрын
a.f(b) is different from f(a, b) in which namespace f is a member of. I don't care much for method chaining, but it is useful to have built-in syntax that groups all methods for a type into their own namespace.
@davidbriggs81096 ай бұрын
They are actually the same thing, in my own POV sha
@ElPikacupacabra6 ай бұрын
You can do f_a(a, b) if you insist. Manual namespacing. But the fact that a function takes a is sufficient to classify and search for such functions.
@bonenintomatensausАй бұрын
The one thing OOP is good for
@vovakolodiy22706 ай бұрын
We already have c with four + It names C#
@hpntic6 ай бұрын
C sharp sucks
@lobotomy-victim6 ай бұрын
C hashtag is awful
@satibel5 ай бұрын
@@hpntic c# is c++ flavored java, but with pointers and near-c speed, it's good for rapid iteration where you don't wanna care about lifetimes nor memory size and just want to do something, but p5.js and python are too slow. currently I mostly do tool dev, so c# is my go-to
@misikovich4 ай бұрын
Yo using SUBTITLES as CHAT LOG?? THAT'S GENIUS. Wow, im really impressed I've never seen so clever use of subtitles.
@gamefun25256 ай бұрын
We got a sequel to C before GTA 6
@v8metal6 ай бұрын
I swear I couldn't stop laughing throughout the entire video. Thank you, you made my year.
@Kitulous6 ай бұрын
i didn't expect the emacs mode of this language to be inspired from tsoding's thing hahaha
@wazawalter4 ай бұрын
c# but someone forgot to press shift
@vovagusse6 ай бұрын
Can't wait for part 4. That one's gonna blow everyone's minds.
@SimGunther6 ай бұрын
There is actually a C4 PL, but that language is a little too explosive for my taste
@bossgd1006 ай бұрын
There is actually a C16/17/18 PL, but that language is only for android
@theevilcottonball6 ай бұрын
I have a C17 compliant compiler, but not on android.
@GreggHarris-gm7ef6 ай бұрын
Arab programmers: "I'm in love"
@smnm6 ай бұрын
Press 6 for beatbox mantra
@markblacket8900Ай бұрын
that is a very cool feature!
@Mekelaina6 ай бұрын
I checked C3s change logs and apparently "printn" was once "println" and they willingly changed it for some ungodly reason. Revision 2023-03-18 apparently
@ardnys356 ай бұрын
it would be too good perhaps that's why. they had to get us
@0LoneTech6 ай бұрын
I guess they thought it was more C-ish to use n as in than ln as in natural logarithm. You know, just like in puts. Wait...
@christofferlerno26336 ай бұрын
I hated how long and garbled printfln looked, and then I learned a bit of F# (F# uses printfn) and `printfn` quickly grew on me. A huge advantage is that it's much easier to read (fln is not good for readability).
@0LoneTech6 ай бұрын
@@christofferlerno2633 But as discussed all over these comments, fn now stands for function, even if the subprograms aren't functions at all. To please the parser, apparently.
@0LoneTech6 ай бұрын
@@christofferlerno2633 Thanks for the writeup. To me it still seems like overcomplication and NIH, though. I read about to see what the macro capability did, and it doesn't seem capable of the sort of thing I see C's preprocessor used for often, like generating multiple distinct definitions and arrays from reparsing one included file with different macros depending on pass. I also didn't see how to preserve accesses like we often do with volatile.
@icesentry6 ай бұрын
The nice thing about methods is that auto complete is much nicer with them compared to having the entire list of all functions.
@technite53605 ай бұрын
Can't wait for C4, it will be the bomb
@technite53605 ай бұрын
Why the need to add fn for a function tho...
@catsby90514 ай бұрын
@@technite5360truthfully a disgusting design choice that seems to provide 0 benefit
@TheAlexgoodlife6 ай бұрын
People like methods mostly because it makes the code read almost like english. " a = b.copy(c)" is in the same order as subject, verb, object. It also keeps the current translation unit's namespace a bit cleaner I guess.
@RukopisyNarnie6 ай бұрын
raw c is more like English. a = fsin(b). A is float sinus of b.
@TheAlexgoodlife6 ай бұрын
@@RukopisyNarnie consider a void function call to a function that modifies or requires self. It would read as "Operation(self, arg)", this could be "compare(a,b)", with a method it would be "a.compare(b)". Its really just to make it easier to read and parse, I argue that not having to explicitly pass self into the function makes it a worthwhile addition in its own right
@RukopisyNarnie6 ай бұрын
@@TheAlexgoodlife It doesn't seem more readable to me. I guess it makes it easier to chain it for functions that return its "hosting type".
@samuraijosh15956 ай бұрын
this is also kinda the same grammar convention in declarative functional programming right?
@RukopisyNarnie6 ай бұрын
@@samuraijosh1595 I am not sure if I understand what you say
@stephenkamenar6 ай бұрын
21:16 it's not "just a syntax" (well it is, but) it's actually important for organizing your code. i think it's a huge problem to not let you namespace functions like this. without it you just have a million global functions maybe namespaced with Foo_next() but Foo.next semantically lets you know the function is only relevant to the Foo struct/class
@SteveRowe6 ай бұрын
I like that you wrote your own C3 mode before you knew C3 existed. 420 IQ move!
@FryAndLeelaAndBenderКүн бұрын
I read the tutorial and explanations for C3 compiler last night and I started to like it. It seems a good evolution over C and presents a lot of features I expected to use in C (because much of the time I use C++ syntax but for writing c-like programs - I mean, C++ without classes and all that object-oriented stuff I don't like). I hope they can port this compiler to write embedded code for some microcontrollers. It'd be wonderful!
@GegoXaren6 ай бұрын
The only language that is syntaticlly consise that I've every seen is the dead language OOC. That was the most beautiful thing I've ever seen.
@christofferlerno26336 ай бұрын
OOC. That brings back memories, last time I read about that one was ages ago.
@porky11186 ай бұрын
26:50 If you want compiletime access of the complete language, rather use Lisp or Scopes.
@raykirushiroyshi27526 ай бұрын
Das crazy,can't wait for c4
@rodelias93786 ай бұрын
I watched the entire video. Now I can say that I have 10 years experience in C3.
@KeyT3chАй бұрын
The builtin Vector types just works with raylib's Vector2/3 structs. That was beautiful.
@NeohSpace6 ай бұрын
"Javascript damaged my brain" I think he speaks for all of us
@androth15026 ай бұрын
windows stuff might be there for cross-compilation.
@dragonkid52046 ай бұрын
have you looked at Odin-lang? I've gotten really into it as of late, it has defer and builtin vector type arithmetic as well. I'd be curious to see what you would think of it.
@RukopisyNarnie6 ай бұрын
He played with it on stream. You will probably find recording of that stream on chanel.
@dragonkid52046 ай бұрын
@@RukopisyNarnie I couldn't find it, do you know what it is called? or around when it was?
@RukopisyNarnie6 ай бұрын
@@dragonkid5204 I have no idea, but I remeber him trying it.
@RukopisyNarnie6 ай бұрын
@@dragonkid5204 Maybe I mixed it upnwith something. Sorry.
@mishaerementchouk6 ай бұрын
@@RukopisyNarnieis it possible that you were thinking about zig? There was indeed a zig stream but I don’t recall an Odin stream.
@rafagd6 ай бұрын
14:00 that moment when you just want some pretty colors on your screen and you get doxxed by a random repo maintainer
@oglothenerd6 ай бұрын
The random beet boxing made this all the better.
@avasam065 ай бұрын
Adding chat in CC is novel. Probably breaks KZbin's Machine Learning too. double awesome.
@valentinrafael92012 ай бұрын
I heard that the next version, whatever comes after 3, will be really explosive ( if you cannot get the joke, I’m sorry ).
@Highwind_6 ай бұрын
First thing I will do is to alias c3c to "cccc", the way it should be.
@achiyazigi38696 ай бұрын
This comment is underrated
@nuhuhuhuhuhuhuhuh-f6q6 ай бұрын
for changing the color you could use the vector swizzling to move to 0xFF along the color! color = color.brga;
@jwill59546 ай бұрын
c3 before gta 6 is crazy
@valshaped6 ай бұрын
"What's the point of `fn` keyword?" The fn keyword takes parsing a function definition from O(n^3) to O(n) (if i remember right) by making the grammar fully predictable EDIT: I did not remember right, lmao, I remembered very, very wrong
@mrglick50506 ай бұрын
What does n represent in a function declaration? I thought it's constant time.
@valshaped6 ай бұрын
@@mrglick5050The number of tokens in the function definition [`void`, `main`, `(`, `)`, `{`, `}`]
@sigurdhermann7816 ай бұрын
@@mrglick5050tokens?
@JustMaiyak6 ай бұрын
It’s probably the length of the file in # of lines
@valshaped6 ай бұрын
@@mrglick5050 Number of tokens in a function definition; though, I'm probably wrong about that. It's only when you get to nesting functions in other functions that you'd have ambiguity with expression statements. \shrug
@ruroruro6 ай бұрын
1) The ".o" files that were created with --target wasm32 are actually WebAssembly binaries, not ELF object files. So it seems that wasm "just works (tm)". 2) If you don't like prefixing everything with "raylib::", you can just have the main file and the raylib.c3 use the same module. You don't have to create a new module for each file. Although it is indeed a bit weird that there is no import blah::* or using blah or even import blah as foo.
@RealPeoplePerson6 ай бұрын
If you don't want to write a module's prefix when calling something from it, you can probably make a macro that iterates over every member of the module and creates an alias.
@nimaaskarian6 ай бұрын
I've wrote a todo app and I've called it c3 because of it expanding calcurses todos to have a tree-like structure. I think I have to start a lawsuit against them.
@DriftJunkie6 ай бұрын
Now we know what language was C3PO programmed with
@leshommesdupilly6 ай бұрын
Man, I'm still waiting for the day they will add classes to C :D
@memetech-5 ай бұрын
I feel like the subtitles are not doing their job here... They're nice, if not for the fact that now I don't get the *real* subtitles
@angelcaru5 ай бұрын
You can still enable the auto-generated subtitles
@ilyasssaadi95945 ай бұрын
1:11:29 the language redeemed itself and he is expressing how much he loves it
@pedrokalil44106 ай бұрын
the end for each may be because otherwise it could be confused with generate a block. needed because for loops accept statements, most commonly the block statement
@ErikBongers6 ай бұрын
I'm gonna wait for C4. It's gonna be explosive.
@RadioactiveBluePlatypus6 ай бұрын
Can't wait for C4 programming language that just explodes your computer at compilation
@stzi76916 ай бұрын
Regarding the $foreach: When it is executed at compile time the compiler loops and generates all the io::printfn() - lines.. and then there is no loop any more in the resulting code. In order to not confuse with scope, because it isn't, they did chosse the $endforeach, maybe. To annotate that you do not have a scope you could also used special curlys like ${ and $} to annotate that this are only lingual curlys but they will not exist anymore, when the compiler slided over it.
@yoavmor90026 ай бұрын
Hot take: C will die when Intel comes up with a new instruction set architecture. But as long as they keep making them backwards compatible, we're stuck with C.
@ChristopherGray005 ай бұрын
no? GCC/clang are made to have maximum compatibility, they'll just port to a new instruction set... that's one of the fundemental jobs of a compiler. also, intel won't change to a new ISA, i'm not sure why you think that would even remotely be a good idea for them
@satibel5 ай бұрын
@@ChristopherGray00 itanium lurking around in the corner like oscar the grouch.
@ChristopherGray005 ай бұрын
@@satibel itanium? you mean that ISA in 2001 that immediately flopped when it came out and that intel had zero reason to proceed with? yeah, no one is going to use a proprietary one-company ISA and move their entire infastructure over for it. companies will just move over to AMD for better top-level performance with no changes needed.
@paulzupan37324 ай бұрын
I think the a.f(b) syntax reads more naturally, similarly to the "subject verb object" sentence structure in English, and if there's no runtime overhead compared to f(a, b), I say why not.
@musicdev6 ай бұрын
I’m not sure if this version will take off, but when they fix all the problems and release it as C4, I’m sure it’ll blow up
@tomaszstanislawski4576 ай бұрын
There is a plan to add "defer" to C, there are even actively discussed proposals on WG14. However, "defer" introduces quite many complication due to odd corner cases. Moreover, "defer" is virtually unusable without lambdas that have their own problems.
@OREYG6 ай бұрын
More like, whoever proposed a defer was the same person who proposed lambdas, and used the defer as a vehicle to push his lambda proposal. You don't need lambdas for defer to work, and edge cases are mostly related to go-to.
@GegoXaren6 ай бұрын
Auto exists in C, but you have to register a function for each type. Look up the GLib macros for g_auto, g_autoptr etc etc. It uses __attribute__((cleanup(...))) to do it.
@tomaszstanislawski4576 ай бұрын
@@GegoXaren This GCC extension, not a standard portable C. Btw. it is possible to use nested functions with statement expression to get a lambda-like function that can be used with `cleanup` attribute. Something like `({ void foo(void*){...} foo; })`
@byharix25426 ай бұрын
Oh man, can't wait for C4
@HeyItsDoodler6 ай бұрын
14:41 broke me
@xravenx24fe5 ай бұрын
800x600 is of the orthodox aspect ratio but the holiest resolution is 640x480.
@axthd6 ай бұрын
The language looks very promising.
@BeenYT6 ай бұрын
libc doesnt have a fraction type its just a struct containing quotient and remainder from an integral division
@darioabbece39486 ай бұрын
14:40 the video is now turing complete
@badrakhariunchimeg10315 ай бұрын
Folders have to sorted by allocation sort folder
@heavymetalmixer912 ай бұрын
Ngl C3 looks relaly interesting, though it's still quite early in development.
@jose61836 ай бұрын
"What is this JAVA!?"...Yeah I totally agree 😂
@Lorenzo19386 ай бұрын
I think zozin could love Odin language (and i'm not payed to say that). After years of C/C++, Rust and some other Scheisse, it is very refreshing to use it
@GreyDeathVaccine28 күн бұрын
1:36 Flashbang!
@rostislavarts6 ай бұрын
But wait... Sequel to C is actually D
@27onionnebell406 ай бұрын
but there's already a programming language called D. and it requires a runtime (including GC! 🤔), or you are limited to a subset of functionality (called BetterC).
@fbarneaАй бұрын
Hello russian Tom Scott
@borodinden6 ай бұрын
"not readable, only maintainable"
@jc-aguilar6 ай бұрын
Okay, this language looks very cool. The only things that I don’t like are the contracts stuff and defer. I think the using keyword in C# is better approach than defer, you can really see the scope of the thing that you are “using”
@egorsozonov74256 ай бұрын
No it’s not better, it introduces extra indentation and helps turn your code into The Tower of Doom
@donovan63206 ай бұрын
Or you could define using() declaration as open ended and it effectively has the same scope as the function. That being said, if you are using enough calls to make a tower of Doom of using statements, you're probably doing something wrong.@@egorsozonov7425
@remondrk6 ай бұрын
Man I should catch up to all the recent videos
@badrakhariunchimeg10315 ай бұрын
Read only is have to boble recursive sorted
@rithvik_6 ай бұрын
the semantics look more like rust than C
@bossgd1006 ай бұрын
crust
@Anubis101106 ай бұрын
lol 😅
@Mohamed_Ahmed-2226 ай бұрын
crust
@paulkanja6 ай бұрын
@@bossgd100 okay no cap this is a good name for a language that melds the two
@a.lollipop6 ай бұрын
@@paulkanjaI NEED THAT
@nephew_tom6 ай бұрын
14:11 That is c-2-emacs-2-human recursion...
@BingoDan9366 ай бұрын
Have you reviewed Forth? Do you think it can replace C? The only high level language older is Fortran. First language to use a database and 2D CAD. It is low level, like C, though not as fast. Incremental compilation. Rapid development, 50x faster than C. Extend and design the language as you need. Is used in the real world, mostly microcontrollers. Is used by NASA, by Riad Airport Saudi Arabia security management system, large construction management software. Large active user community, FIG.
@crix_h3eadshotgg9929 күн бұрын
*cough* lisp *cough*
@SlinkyD6 ай бұрын
First you find code based from your old code then René shows up. You not only famous, you a legend. 🎓🎩 👑
@secretgogeta6 ай бұрын
Programming in C4 is like exploding a bomb
@androth15026 ай бұрын
if you like the built in vectors and swizzling, you might also like odin. it doesn't have methods. heh.
@nefrace6 ай бұрын
We need a full version of Kawaii Frikkin Desu
@GilbertLaurel6 ай бұрын
Nice! starting to like C3
@sciencedaemon17 күн бұрын
Even just looking at the basics of this language I can see elements of Lisp, but poorly done because it is in a C (algol) language. The "killer" features in this (and other similar languages) are everyday things in something like Clojure.
@tomaszstanislawski4576 ай бұрын
GCC/CLANG provides vector extension.
@jawad97576 ай бұрын
a """C replacement""" without sum types and some level of pattern matching on them in this day and age is just a meme
@tigrankhachatryan61195 ай бұрын
correlating those two concepts makes no sense
@naranyala_dev6 ай бұрын
[PARENTAL ADVISORY] 18++
@alifkhan41286 ай бұрын
I actually liked the syntax of c3. Linking native libraries is very easy. It has modules, generics, macros and what not. I think I like it more than zig already.
@cheebadigga40926 ай бұрын
looooooooool that simpc-mode coincidence was awesome!!
@brunopanizzi6 ай бұрын
we survived 30 mins without raylib
@warko46 ай бұрын
Can you review V lang?
@badrakhariunchimeg10315 ай бұрын
That prob should have starting point
@stercorarius6 ай бұрын
i love delicious programming language slop
@markblacket89006 ай бұрын
looks like zig with less crappy syntax
@badrakhariunchimeg10315 ай бұрын
For each then should have name
@RPG_Guy-fx8ns6 ай бұрын
I want a prequel to C. something closer to ASM, but with more verbose operations.
@badrakhariunchimeg10315 ай бұрын
Read write read only space can you make
@kurtz24916 ай бұрын
there is a build folder for temp files you just have to use c3c init