Is C BETTER than C++ for beginners? // Code Review

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 732

  • @TheCherno
    @TheCherno  Месяц назад +46

    So what do you think - does the way that C is typically taught teach better programming principles than C++? 👇
    To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/TheCherno . You’ll also get 20% off an annual premium subscription.

    • @GenericInternetter
      @GenericInternetter Месяц назад +8

      VSCode for C++?!
      YES PLEASE!!!

    • @AnimeGIFfy
      @AnimeGIFfy Месяц назад +8

      if you strt with C and you'll like it, youll hate object oriented programming, so yes.

    • @purpasmart_4831
      @purpasmart_4831 Месяц назад +2

      Yeah C++ reliance on OOP is so bad. Whenever I write C++ it looks like C because I just prefer it that way. No classes, lambas, operator overloading, non of that junk.

    • @alexmiller3260
      @alexmiller3260 Месяц назад +3

      after Rust experience I have a trigger on sentinel values and old days naming style with m_'s for struct or class members

    • @adrianordp
      @adrianordp Месяц назад +7

      Yep. I think C is better for beginners than C++.

  • @NordicFrog
    @NordicFrog Месяц назад +259

    "I like what I C" - The Cherno 30:00

    • @cameonn
      @cameonn Месяц назад +5

      It's really mind blowing that a 13-year old already in graphics programming. I was only playing games and knew nothing about programming except shell languages around that age.

    • @ArThur_hara
      @ArThur_hara 19 дней назад

      ​@@cameonn you knew shell language? 🥲

  • @toddwasson3355
    @toddwasson3355 Месяц назад +442

    Me programming at 13:
    10 CLS
    20 PRINT "HI MOM!"

    • @Bempus
      @Bempus Месяц назад +35

      Having access to the internet/unlimited tutrials is a huge advantage though, not saying I wasn't a lazy pos 17 years ago! 🤣

    • @kermitdafrog8
      @kermitdafrog8 Месяц назад +36

      30 GOTO 20

    • @vxcute0
      @vxcute0 Месяц назад +4

      I mean vulkan didn't exist back then, so you are fine.

    • @cybernit3
      @cybernit3 Месяц назад +9

      Ya, in the mid 80s I looked in BASIC than eventually 6510 assembly; then by 1990 got into C on the Amiga. The assembly helped to fully understand the computer that later allowed me to do microcontroller programming later in the 1990s at work. But that is impressive that a 13 can do Vulkan; most programmers complain how much of a pain Vulkan is because of its verbosity.

    • @zlcoolboy
      @zlcoolboy Месяц назад +1

      I tried to get into programming early on, the only programming language I knew of was python. I stopped trying because the setup process for the compiler at the time was so terrible. Most I actually got into was advanced batch files, which doesn't really coun t.

  • @countchocula7985
    @countchocula7985 Месяц назад +56

    24:12 there is a modern way of doing structure initialization since C supports strict assignment. You can do (type){ .field = Val, .field2= val2}; All unmentioned fields get zero initialized.

    • @mangodoor408
      @mangodoor408 Месяц назад +1

      I was hoping someone would point this out 👍

    • @bies_moron4404
      @bies_moron4404 Месяц назад +2

      The designated initializer has been available in c since 1999, it is more functional than in c++20

    • @daven9536
      @daven9536 Месяц назад

      @@bies_moron4404 because it allows out of order initialization (hilarious how C++ is just objectively worse here)

    • @evildrkirby
      @evildrkirby Месяц назад +1

      You can do designated initializers in C++, but only for classes and structs that are "Plain Old Data." I forget what exactly are the qualifications for that, but I believe the type must have no declared constructors, no private or protected fields, and no virtual methods.
      An important difference between the feature in C vs. C++ is that in C, fields may be initialized in any order, but in C++, they must be initialized in the order they appear in the struct or class.
      I *think* you can also use designated initializers with unions, but don't quote me on that.

  • @Manuel-fg1ol
    @Manuel-fg1ol Месяц назад +349

    im sure a lot of us would absolutely love a video on VSCode C++ setup. please take it into consideration

    • @guilhermecorrea3604
      @guilhermecorrea3604 Месяц назад +6

      yes please

    • @CoderShare
      @CoderShare Месяц назад +10

      I'm so confused by these comments. VSCode is a text editor and C++ is just a compiled language. Just learn a compiler and write C++? Microsoft has a debug adapter for C++ that should work fine as an extension if you're trying to debug.

    • @buycraft911miner2
      @buycraft911miner2 Месяц назад

      ​thats what it comes down to: learning the compiler + learning how vs code interscts with debugging tools. not exactly the most begginer friendly topics, and all to just be able to run code @@CoderShare

    • @ldov6373
      @ldov6373 Месяц назад +29

      @@CoderShare he wants to know how to configure vscode to use a compiler and debugger, so that it acts more like a full-fledged IDE.

    • @seankayll9017
      @seankayll9017 Месяц назад

      +1

  • @digital_hoboz
    @digital_hoboz Месяц назад +90

    I think the problem with language being flexible is that when you are in a company and that company has 50 programmers, you can't expect those 50 programmers to be necessarily "good" programmers. So if the language is too flexible then you will get hit with chunks of weird code every now and then.

    • @DiamondWolfX
      @DiamondWolfX Месяц назад +8

      Isn't that what professional code reviews are for?

    • @digital_hoboz
      @digital_hoboz Месяц назад +20

      @@DiamondWolfX you can’t cover everything 100% of the time. Emergencies and time pressure will increase error rate.

    • @arjix8738
      @arjix8738 Месяц назад +3

      ​@@DiamondWolfXif only we did reviews at my company

    • @aresye
      @aresye Месяц назад +1

      JavaScript: **slowly backs out of room**

    • @Diego-Garcia
      @Diego-Garcia Месяц назад +3

      ​@@DiamondWolfX Do they do code reviews at your company?

  • @Saturate0806
    @Saturate0806 Месяц назад +172

    I love C for it's simplicity. I think it should be the first language people learn

    • @AssemblyWizard
      @AssemblyWizard Месяц назад +13

      Sure but what about siplusplusmplicity?

    • @friedrichmyers
      @friedrichmyers Месяц назад +10

      I think it should be the de facto standard way to program things. Not C++
      Only a few features of C++ are useful. Like Handmade hero uses a lot of C++ but it is still pretty good code. It doesn't become too anal with the features.

    • @delicious_seabass
      @delicious_seabass Месяц назад +9

      It's the only language people should learn. Everything else is a waste of time.

    • @tolkienfan1972
      @tolkienfan1972 Месяц назад +6

      I would recommend against any language with undefined behavior as a pedagogical language. There's no point in making things harder than they need to be. Plus C has all kinds of implicit rules that beginners won't know. So stick to something where as much as possible is explicit. Example: suppose x is an unsigned char with value 5. What is the value of (~x) >> 2? In any reasonable language the result would be 0x3e, I think. Tell me what C does is reasonable here

    • @Saturate0806
      @Saturate0806 Месяц назад +4

      @@tolkienfan1972 Some parts of C is really fucked up I agree

  • @ivan_reshetnikov
    @ivan_reshetnikov Месяц назад +249

    Hell yes, VScode for C++ is what we want.

    • @KayleighOwO
      @KayleighOwO Месяц назад +1

      windows 11 settings icon

    • @ivan_reshetnikov
      @ivan_reshetnikov Месяц назад +3

      @@KayleighOwO yes, I'm useless when it comes to changing settings, everyone uses the control panel instead of me :(

    • @Raspredval1337
      @Raspredval1337 Месяц назад +4

      The basic setup would look something like this: c++ extension, clangd extension (provides a better LSP than the default), make or cmake extensions (not really needed, since both make and cmake are text based, the extensions don't add much value), git extension.
      If you're on unix-like system (linux\bsd\mac) use the system package manager to download the compiler (I'd prefer clang, but gcc is also fine) and 3d party libraries. If you're on windows, use MSYS2 to get a unix-like environment + a package manager to download the compiler (mingw (a port of gcc for windows) or clang) and the 3d party libraries.

    • @mr.fantasee
      @mr.fantasee Месяц назад

      ​@@ivan_reshetnikovlol i use the research bar 😂

    • @wowyomad
      @wowyomad Месяц назад

      ​@@Raspredval1337why not use msvc on windows?

  • @Barnardrab
    @Barnardrab Месяц назад +7

    I didn't pick up programming until late in my life. I can relate to the thing you mentioned regarding being an adult. Having to hold down a job really limits how much time you can spend learning.

  • @m4rt_
    @m4rt_ Месяц назад +24

    To clarify, the reason typedef is often used is that if you just do struct Foo { ... } you can then only use it like this struct Foo my_foo; (You have put struct before the name of it.) So we typedef it, which then could be done like this typedef struct Foo Foo; This creates an alias for struct Foo that is just Foo. But you could also inline it like this typedef struct Foo { ... } Foo; or you could use an anonymous struct (one that doen't have a name) and make an alias for it (giving it a name) like this typedef struct { ... } Foo;
    This is also the case for enums, but instead it forces you to prefix it with the keyword "enum".

    • @hashtable3212
      @hashtable3212 Месяц назад +6

      We typedef a struct to be able to use it like a type, without writing struct first

    • @anon_y_mousse
      @anon_y_mousse Месяц назад

      What I like to do is typedef the struct as an array of one element, then you get stack allocation and you can pass it around as a pointer. It's like references in C.

  • @TheEdmaster87
    @TheEdmaster87 Месяц назад +30

    Been using c++ for embedded systems for years, still does the job pretty well

    • @hwstar9416
      @hwstar9416 Месяц назад +8

      hmmm i wouldnt agree tbh. In C++ a missed & can cause a vector to clone itself. RAII has no place in embedded, it's too risky.

    • @rvoisey
      @rvoisey Месяц назад +15

      It's totally doable - the key is to remember you don't have to use every feature of the language! I have lots of C projects filled with pointers to functions that honestly would have been cleaner in C++ for close to the same object output.

    • @ProfShibe
      @ProfShibe Месяц назад

      @@hwstar9416 you don't have to use it just because it's there. Just use the convenience features. Arrays are more performant anyways.

    • @MrHaggyy
      @MrHaggyy Месяц назад

      @hwstar9416 a wrong symbol in any language can totally break your code.
      With C++ you have some really nice control about types and where exactly stuff get's stored in memory. Which makes it a perfect choice for many embedded applications. Because once you made something SPI_1 nothing can cause it by accident, neither UART_1 nor SPI_2.

    • @sdwone
      @sdwone 25 дней назад

      Good for you Dude! And you know how the game works, don't worry what the usual naysayers have to say here! This is a "social" media platform after all 👍🏼

  • @Soraphis91
    @Soraphis91 Месяц назад +22

    13:25 ... it is OOP (data and logic are semantically grouped) which is exactly not like an ECS (data and logic are separated).
    OOP does not mean "inheritance" (that is one part of OOP), but the most fundamental part is grouping logic and data to form an "object".

    • @sacredgeometry
      @sacredgeometry Месяц назад +5

      Absolutely it is OOP. By literal definition.

  • @giffiyt
    @giffiyt Месяц назад +23

    I really like how fast C compiles compared C++. I like programming in C++ more, but sometimes when starting a new project i choose to write it in C just for the compilation speeds.

    • @JohnnyThund3r
      @JohnnyThund3r Месяц назад

      GO compiles even faster then C!

    • @JohnnyThund3r
      @JohnnyThund3r Месяц назад +2

      @@Pear64 Why? What didn't you like about GO? Particularly what makes C better? I find it ~mostly~ pretty easy to work with.

    • @healthystrongmuslim
      @healthystrongmuslim 22 дня назад

      how much additional delay do you find C & C++ compile times? Also, do you mean "it's faster using a compiler built for C"?
      Cuz I sometimes use gcc instead of g++ even when both work, but I don't see the difference. (doubt file extension makes a difference).
      Though I admit I haven't made anything much in C (just used it for Computer Networks' socket programming a little -- REALLY hated how scanf worked, after having used just cpp's cin for 3 semesters prior.)

  • @stone8684
    @stone8684 Месяц назад +37

    It's never too late to start learning programming, but it might be too late to become a prodigy. Making this at the age of 13 is insane.

    • @vaolin1703
      @vaolin1703 15 дней назад

      experienced devs don't spend much time coding anyway these days

  • @JaDanBar97
    @JaDanBar97 27 дней назад +5

    I learned to program in C... and then learned C++ thereafter... this in my opinion is the best way to learn programming

  • @shavais33
    @shavais33 27 дней назад +1

    I must say, I have enjoyed this channel quite a lot. Content creators who pay some attention to the comments in general, and kind of put themselves into the content, are a great boon to the world. I think it really helps make all us introverted nerds feel a bit less isolated.

  • @simplguy-w2m
    @simplguy-w2m Месяц назад +14

    Started writing in C++, and have no experience with low level languages. I actually enjoy it more than I did JS or Python

    • @nothingold5872
      @nothingold5872 Месяц назад

      Same, i wasnt in as high as js or python ( i was in java ) and actually c++ was enjoyable

    • @Faizan1631
      @Faizan1631 Месяц назад +4

      Same, avoided C++ for the longest time because of its reputation but now its honestly my favourite language to code in
      Only thing is that people give me funny looks when I tell them I'm a C++ prgrammer

    • @MrHaggyy
      @MrHaggyy Месяц назад +1

      C++ is in an interesting spot. While it is a high(er) level language, you can get very low level and do all the hardware specific things you might want to do.

  • @CobainSnake
    @CobainSnake 27 дней назад

    This was so helpful for me - as a hobbyist and someone who did not get a CompSci / SoftEng degree or professional training, it's hard to sift through the noise from the different camps and get at more practical, or construction discussions around programming choices (either stylistic, or language etc.). It becomes so confusing to me when bandwagons and/or sub-communities bandy words together.
    I like the general idea of - more tools good for solving problems.
    I've recently learned C, using Raylib to make a simple survivors x asteroids clone, and learning the help that c++ provides (even if it may just be semantics) is so rewarding (and refreshing) to hear.

  • @F1nalspace
    @F1nalspace Месяц назад +12

    Interesting review and regards the actual answer if C is better for starters than C++. My answer is yes, because you learn how the computer actually works. C is such a simple language and still very powerful. You can easiely follow the code flow, which is the opposite of C++. The OOP concept of classes, templates, etc. has nothing todo with computers at all. Its an arbitary thing that some people started and thought it may a good idea. And indeed for some stuff C++ or even other object oriented languages are a great tool. I like both, but am tending more towards C, because it is much simpler and i have more control over it.

  • @pweddy1
    @pweddy1 20 дней назад

    I was listening to your comments on C vs C++ and it reminded me of my Analysis of algorithms class.
    We spent most of the semester implementing different algorithms using dynamic memory allocation and determining the big O notion for each algorithm.
    The last couple week, we reimplemented all the algorithms we learned throughout the semester using arrays, typically on the stack, instead of dynamic memory allocation. And almost every algorithm was faster when you implemented them using arrays on the stack instead of allocating everything on the heap. And you don’t wind up with memory leaks, even if there’s a bug.
    Now I know this isn’t possible for all software, but perhaps not everything in your code needs to live in the heap.

  • @LordHog
    @LordHog Месяц назад +25

    Whether one should use C or C++? I would say it might be better to start off learning what that particular industry uses. For game development it might be C++. For kernel or embedded development it might be best to learn C.

    • @alexmiller3260
      @alexmiller3260 Месяц назад +4

      C is better to learn particularly because it's much closer to ASM, than any other language (except Fortran), but looks extremely familiar to most languages at the same time. learning C++ make it unobvious what happens under the hood of obj.call() or move semantics magic. in C you use those features as something you construct by hand and understand at first place before switching to syntactic sugar in C++ or even Rust. maybe not everyone must begin with C to then be able to write in C#, Python or JS (despite some facts), but C++ requires a bit more background

    • @-rya1146
      @-rya1146 Месяц назад

      @@alexmiller3260 Yeah but c++ memory management is a lot simpler than C especially if the C library uses a complex reference counting system. In C sometimes you have to figure out which 'clean up' function to call because it is no longer clear. Whereas in C++ you can just rely on RAII to handle all of that for you while you just develop your program not spend extra time on unnecessary stuff. Though this is mostly because C has very little standardisation when learning C one of the first things I was told was 'There was as many concurrency libraries as there was C developers' because everyone created there own ways to do it. Meaning every codebase was different despite them all doing the samething.

    • @alexmiller3260
      @alexmiller3260 Месяц назад

      @@-rya1146 it's easier because of destructors, which are called automatically and smart pointers born with RAII in mind, but again, it's a magic which complicate things in C++ specific manner that is supposed to be learnt after you got the basic idea. concurrency is a good point in this case, same can be said about hash tables, inheritance and other things that come from box in C++, on the other hand ease doesn't make it better to begin with (like nobody begin learning concurrency with Go coroutines). yeah, for a working projects I would probably think twice before choosing C, but learning it is essential

    • @alexmiller3260
      @alexmiller3260 Месяц назад

      ​@@-rya1146well, for some reason I can't see my recent reply to you, so, I hope you still can 🥲

    • @GonziHere
      @GonziHere Месяц назад +1

      Nah. Programming is taking data and transforming it. How it relates to the computer that's running it, is absolutely crucial for a good gut feeling down the line (for example, that a small-say10k array might easily outperform hashmap).
      So for learning, something like C, rust and the likes might be annoying, but absolutely crucial. Learning anything else afterwards is easy, but what you've gained from those will stay with you forever.
      Also, it's arguably a difference between programmer and a scripter.

  • @willemvdk4886
    @willemvdk4886 Месяц назад +51

    The fact that a 13 year old made this blows my mind. My son is 13 year old and I tried to learn him LUA a few weeks ago to help him with his Roblox adventures. It was way too much to comprehend for him. I can't imagine him writing a game engine in C haha

    • @XeZrunner
      @XeZrunner Месяц назад +3

      Sometimes, it feels like some people are born with, or somehow end up with natural care for programming :D
      This 13 year-old could have found their interest for programming at its core, whereas others trying to *intentionally* learn it might not end up feeling as much deep interest, making it less smooth to learn.

    • @Arcane_Ayush
      @Arcane_Ayush Месяц назад +2

      ​@@XeZrunner yeah ikr.. but sometimes you need an spark too and sometimes it comes from your end purely am 18 now ( started at 14-15 ) and like am good in python , lua , C ( ofc I won't claim to be actually good but am at intermediate level in all these ) , JS(almost advanced ... can make what I want like games on websites , mini applications etc. but may not be best optimised ) , Java .... and then there a bit of other things like scripting , vulnerability explorationg and ofc several detours in other fields like networking and hacking.. rn have took break from coding intentionally for a year so that could prep for entrance exams and pick CSE there, talking about IITs if you know -- am Indian , but still often find myself to these videos.

    • @fkk1002
      @fkk1002 Месяц назад

      Your son is really dumb. When I was 13 I programmed mods for my favorite games left and right. I don't want to brag, it's just the harsh truth.

    • @OneMeanDragon
      @OneMeanDragon Месяц назад

      @@XeZrunner the want to learn needs to be present is all, it could take 1 application to peak an interest, when I started it was telnet and irc that pushed my interest lol so i went the hard route not only did i have to mess with sockets but also with gui's, mfc gui's are a mess top it off with sockets lol.

    • @friedrichmyers
      @friedrichmyers Месяц назад

      ​@@Arcane_Ayush Same, brother. JEE has me fucked.

  • @spacelem
    @spacelem Месяц назад +2

    In the first year of my maths degree, I took CS as an outside subject, and we learned Java (this was 2003, so Java 1.4 I think), which was my first introduction to programming. Meanwhile in maths we learned Maple, a computer algebra system (CAS) which is an entirely different beast!
    A few years later I learned R, then Matlab, then _finally_ I started learning C++, and used that for many years (along with GNU Octave to plot data, which was a mistake in hindsight, I should have been using R), but I was using in a way that was basically C with vectors and function overloading.
    Anyway, despite starting with Java, I never really got into OOP, and now my preferred coding style sits somewhere in the middle of C's procedural style with some of C++'s syntactic sugar, and R's functional style.
    But I do think if you're starting to learn to program, you could do worse than watch the MIT SICP lectures that used Lisp to introduce the various fundamental principles.

  • @ryandodrill6904
    @ryandodrill6904 27 дней назад +1

    One of the issues I think with c++ is how rapidly and dramatically things can change with each standard. A simple example but when I first learned c++ everything was pointers with new. Then c++11 hit and it was smart pointers everywhere and raii. Then we had make_unique and initializers and new was frowned upon. Then we changed all that to instead pass by reference and return by value and the compiler will use move semantics to avoid copies of objects.
    I get that the compiler maintains compatibility with all old code but it makes it very difficult to keep up with best practices for the language. C on the other hand doesn’t ever really change. What was best practices when I was on school 20 years ago is still best practices today.

    • @ldov6373
      @ldov6373 27 дней назад +1

      From my point of view we don't get much change with each new release. I've been waiting for a networking solution to be added to the standard library for like 10 years, they keep deferring it. C++23 gave us a bunch of tiny changes an ordinary programmer wouldn't even notice. RAII has been a part of the language basically since the beginning, any class that cleans up its resources in its destructor is exhibiting RAII which is pretty much everything in the std library like string, vector, map, list, etc.

    • @ryandodrill6904
      @ryandodrill6904 27 дней назад

      @@ldov6373 I suppose it all depends on what we're looking at. I'm mostly focusing on what's considered the "right" way to write c++ which seems to change with every standard. It's not as though everything changes, there is a lot of similarity but it seems like recommending new things all the time.

    • @IamusTheFox
      @IamusTheFox 26 дней назад

      C++ doesn't change that much though, it rarely deprecates, but provides new and better ways to do the same thing. RAII has been in C++ before the first standard C++.

  • @xbmarx
    @xbmarx 20 дней назад

    I enjoy C because its simplicity kind of forces you to rethink problems and reframe things to a way that's more simple before you solve them. With C++, you have so many powerful tools to sledgehammer complex problems with even more complex solutions.

  • @shaheryarahmad5706
    @shaheryarahmad5706 Месяц назад +1

    It was one of the best day, when I found your Channel for learning C++ and eventually fallen in love with your content. One things are starting making sense and understandable, you would definitely start enjoying. Make sense to me, when I am watching your content which is 6 years old, but regrets me why I haven't watched it back then :/

  • @cd860viu
    @cd860viu Месяц назад +14

    I make games in C and absolutely love it. I like the classes in C++ but that's about it. Not good enough reason to use C++ for me at least..

    • @MrHaggyy
      @MrHaggyy Месяц назад

      The type system and templates might also be something you would appreciate. It let's you separate different things that are represented in the same datatype. So you get an compiler error and not just a warning if cast or point something wrong. Templates go along with this as they provide functionality for each datatype you implement once. So for example you don't need some "if in range of do ... " for each type, only for each native datatype.
      I use both languages and while you would use those features with classes, i personally found them more usefull than the oop features.

    • @JavedAlam-ce4mu
      @JavedAlam-ce4mu Месяц назад

      you can write all C in C++ so why not if you like the classes?

    • @cd860viu
      @cd860viu Месяц назад

      @@JavedAlam-ce4mu Guess I'm just a purist. I can live without classes.. it's just one of the few positives I see with C++ that's all..

    • @SystemsDevel
      @SystemsDevel 29 дней назад

      Rock and Roll 🔥

  • @keyojack2010
    @keyojack2010 16 дней назад

    Hey man, great to meet you in real life at yowcon. My colleagues really enjoyed your presentation and learning about hazel.

  • @Adrian-ld4oz
    @Adrian-ld4oz Месяц назад +9

    I only use the most basic functionality of C++, just classes/objects to help organise the code (no inheritance or polymorphism) . For me it is the easiest, fastest and most agile way to develop.

    • @jamespong6588
      @jamespong6588 Месяц назад +3

      Exactly, after decades of trying all the shiny fancy c++ I reverted back to c style c++ code, it's the best

  • @plescandenis8474
    @plescandenis8474 27 дней назад

    13:10 You could kind of do that by using pointers to functions.
    Yea, yea, is not the same and you would need to pass the object as an argument (obj->init(obj)) and the function could be accessed from anywhere, but I saw a lot of projects do this to mimic this part of OOP.

  • @marekdorobczynski1727
    @marekdorobczynski1727 Месяц назад +1

    I wish I could do this much good programming at 13 years old. The only minor thing I was able to spot, is some for loop were using int iterator type, for indexing the arrays. I think more proper way is to use size_t type for that. Cheers!

  • @frankreich5018
    @frankreich5018 29 дней назад

    Thumbs up for your explanation of the way cpp is tought in general and that it is not necessary.

  • @thewalkingjuju
    @thewalkingjuju Месяц назад

    Listening to you break this C code down without personally having any foundation in C programming went way over my head! The best I've ever done is teach myself a functional understanding of HTML from a book I found in the garbage! 😥

  • @TheRealJman87
    @TheRealJman87 Месяц назад +1

    C is very nice in some ways, especially for interoperability between dynamically-linked libraries, and I also find that working with a pure C interface is often more user-friendly compared to C++. HOWEVER, I would definitely not recommend trying to implement the internals of your project in pure C. The C standard library is very bare bones and you will find yourself spending all your time reinventing the wheel instead of making progress on your actual project. There are no C alternatives to std::vector, string, list, map, unordered_map, set, etc. and the fact that C does not support templates means that if you want generic containers, they have to be written as preprocessor #defines. You could have just written it in C++ internally and created a pure C interface on top of it in the time it would take you to reinvent linked lists and destructors every time something needs them.

    • @anon_y_mousse
      @anon_y_mousse Месяц назад +1

      There are plenty of libraries written in C that provide the equivalent to standard C++ containers. Just because it's not in the standard library doesn't mean you have to write it yourself. I'll give you templates though, as using preprocessor macros and _Generic are more of a pain in the ass than templates are.

  • @sandro5437
    @sandro5437 Месяц назад

    yeah, much needed video about configuring vscode for C++ support

  • @timstevens3361
    @timstevens3361 Месяц назад

    i love C !
    i know other languages,
    before university i knew basic, assembly and C.
    modula-2 and C++ at university.
    15 yrs ago java,
    10 yrs ago it was python,
    7 yrs ago go.
    last 6 yrs only C.
    in C, i only write things as i need them.
    i made a program in C that uses opengl
    to make 2d drawings or 3d models
    from a casual text description,
    executing on words it knows
    and ignoring words it doesnt.
    i once described something to my father,
    after which i asked him "see what i mean",
    he said no, n i realized, i know how to
    make that happen, so i did.
    i call it ncptr,
    because it incepts what i want.

  • @Ikogn
    @Ikogn Месяц назад +6

    What I like about the C style of coding is that with a function named like engine_initialize I can make a search for this exact function name and find only the one I need, you could argue that would be the same by putting Engine::Initialize to find the one implementation I'm looking for but that would require for me to look for the type of the object that calls the function, I cannot just select the function and launch a search.

    • @robinkuster1127
      @robinkuster1127 Месяц назад +2

      There isn't a single editor worth using that does not implement the LSP or runs their own language server style thingy. You can just let the LS look for usages and find every single instance where a function is used.

  • @CrossbowBeta
    @CrossbowBeta Месяц назад +25

    5:19 c++/cmake aficionado being stumped that a project compiles fast.

    • @-rya1146
      @-rya1146 Месяц назад +15

      More often than not in these code reviews the code doesn't compile from the instructions given. So the fact that it compiled at all was a surprise.

  • @paulooliveiracastro
    @paulooliveiracastro Месяц назад +10

    Hey, I love C. What you say is code organization to me is a bit of overhead, or things that don't bother me at all. Quite elegant code.

  • @glee21012
    @glee21012 Месяц назад +1

    Glad you differentiate C from C++ , so many think C++ is just suped up C.

  • @mjthebest7294
    @mjthebest7294 Месяц назад +50

    This is probably the best video you made recently.
    While I strongly disagree about the goodness of "data + functions" linked together, I think you made justice to the C programming language, shutting down the "everything should be modeled" toxic mindset. Let's remember how actual computers work. I guess HandmadeHero alias the legend Casey Muratori would be proud. :D
    Raytracing series comeback please.

    • @user-sl6gn1ss8p
      @user-sl6gn1ss8p Месяц назад +1

      I like linking data and functions when the functions are really about said data and only about it, and each piece of the data makes sense in the context of the whole.

    • @mjthebest7294
      @mjthebest7294 29 дней назад

      ​@@user-sl6gn1ss8p linking functions to specific data imposes a psychological constraint that stifles creativity. By shifting your perspective to focus on functions as tools for transforming data, you unlock boundless potential, eliminate unnecessary complexity, and achieve unparalleled reusability. That way you are close to the metal. Object-oriented programming, while offering an _apparent_ simplification, with its rigid focus on objects, deviates significantly from the fundamental nature of computation, offering a narrowly constrained approach that often limits the true power of programming.

  • @ADSharpeSr
    @ADSharpeSr Месяц назад

    I love your reviews & I've been watching your content for years. This is my first time commenting. When it comes to the whole "engine engine" thing, a great way for him to differentiate type from variable would have been to use the common method of postfixing "_t" to user defined types. So, that should have been declared as "engine_t engine". But since engine is most likely a struct, it would have also been perfectly acceptable to do a typedef struct with a tag. This would have given him a definition that looks something like "typedef struct engine_s { } engine_t;". That would've allowed him to use the declaration "engine_t engine".
    Edit: Also, I wrote that comment before finishing the whole video.

  • @mattgti86
    @mattgti86 Месяц назад

    Enjoyed your discussion on c and c++ data and function organization

  • @Chriva
    @Chriva Месяц назад +13

    C is definitely a good place to start imo.
    There are instances when you need to do your own memory management raw-style with malloc/calloc and, in particular, realloc; something you don't really learn about in c++ courses.
    (And later, C++ has the added benefit of letting you free and handle stuff "automatically" upon destruction of classes)

  • @jsdutky
    @jsdutky 29 дней назад

    I'm quite a grey-beard, so I learned to program on something before C (BASIC and Pascal), and I still recall the brain breakage (e.g. the bewildering for loop syntax, pre- and post-increment/decrement, pointers, type syntax) that was learning C as a new language (prior to the ANSI standard). There is so much about C, and C++ that is just not conducive to the novice, and there are so many better languages available today, that I could not recommend that anybody learn C or C++ as their first language. Python is a better language for the novice: dynamic types, minimal syntax, lots of room to grow. Swift is a better language: the interactive tooling is top notch, the language is stricture than I would like for a novice, but the error messages are really good. Even Java and C# are better than C/C++, though I think they are not very well designed for novices because they are too slavish to C/C++ syntax.

  • @godkingwashington
    @godkingwashington Месяц назад

    Would definitely love a video on setting up VSCode for C++

  • @Test-iv4pm
    @Test-iv4pm Месяц назад +2

    I feel you. C doubles up on the words.
    C++ can be application.start()
    while C is application_start(application)
    Why do I have to write "application" twice 😢my lines are so long.

    • @Neuroszima
      @Neuroszima Месяц назад

      "app" then? XD

    • @maelstrom57
      @maelstrom57 Месяц назад +3

      A C dev would never use a long name like "application_start". The longest you'd see would be "ap_s" most likely.

    • @IamusTheFox
      @IamusTheFox 26 дней назад

      Or in c++, it could be application app{}; :D

  • @aloluk
    @aloluk Месяц назад

    I've been in the industry for 25 years!!!!! This 13 year olds C code is damn good! I'm very very impressed. Well done indeed.

  • @d1metron702
    @d1metron702 Месяц назад +1

    Liked this review so much. Hope to see more C stuff and comparisons with C++ with good technique.

  • @heavymetalmixer91
    @heavymetalmixer91 Месяц назад +1

    I'd love to see how you set up C++ and/or C on VS Code.
    Btw, I can't understand why C still doesn't have namespaces, is there anything wrong with them?

  • @claeslundin5865
    @claeslundin5865 7 дней назад

    Would love to see a VS Code C++ setup video!

  • @danielsharp2402
    @danielsharp2402 Месяц назад +7

    We had one semester of C and only then after OOP stuff, I'd say that's one of the best approaches.

  • @en_hawk6928
    @en_hawk6928 25 дней назад

    I think you should pick up a project that uses intermediate to aadvanced concepts in cpp and try to go about the code and explain it and go further to show alternatives and more.
    You can add parts to it and that could go on Code review. Not to mention how much it would help the beginners like me.

  • @SweLindN
    @SweLindN Месяц назад +4

    From my experience it's more common to typedef an anonymous struct. (ie "typedef struct {} prefix_type_t") or directly say "struct prefix_type" and simply omit doing a typedef. But then again, loads of people do different conventions no matter the language! Personally I would def add "_t" and omit the struct name, or at least captialize it! :)
    For libraries (your own or public) people tend to add their libraries name or the collection of libraries name as a prefix to structs and functions. Taking hazel as an example would give you something like "struct hazle_engine_t" or maybe shortening the "namespace"/prefix to "void hzl_engine_init()".

    • @bitwize
      @bitwize Месяц назад +2

      Type names that end with _t are reserved by POSIX (but not C in general). I don't recommend you use that convention for your own types.

    • @dealloc
      @dealloc Месяц назад

      @@bitwize If your target against POSIX that is. The problem is of course that it could result collision, if you were to include a header that contains a typedef with the same name (i.e. definately don't name anything `size_t`) because chances are high that you are explicitly or implicitly (via. compiler) including a library that contains this definition, esp. if you target Linux, BSD or macOS.

  • @MostafijulIslam-r3b
    @MostafijulIslam-r3b Месяц назад +1

    Yes please, with the VS code setup!
    Using MacOs. And in dire need of a decent IDE setup to start my C/C++ journey.

    • @IamusTheFox
      @IamusTheFox 26 дней назад

      I might also suggest XCode or CLion. I personally use CLion on Mac.

    • @MostafijulIslam-r3b
      @MostafijulIslam-r3b 25 дней назад

      @@IamusTheFox CLion requires a subscription tho! 🥲

  • @RebelGangTv-ge4if
    @RebelGangTv-ge4if Месяц назад +2

    Hey I just started learning c++ & I watch your videos a lot. Is there a way we can get on 1 on 1 where we discuss the best way to find imployment & write better c++ code?

  • @leolaroca
    @leolaroca 27 дней назад

    A vscode c++ setup video would be really intestesting!

  • @vcv6560
    @vcv6560 Месяц назад

    I'm just a few minutes in and yes I already be one of those voting for a video on setting up VSCode. Thank you.

  • @silvermig
    @silvermig Месяц назад

    A video about how to read code, using the debugger, would be great for learning best practices.

  • @RobinJohannesson
    @RobinJohannesson 16 дней назад

    Hey, could you make a video talking C++ 20 modules? What we should/shouldn't use it. Which is preferred header and source files or modules?
    I have started to write a game engine, but I am wondering if I should switch over to modules instead. Since it enhances building times and modularity of your source code.

  • @matsim0
    @matsim0 Месяц назад

    21:42 - so where is the char array holding "CENGINE" allocated? The "window" struct points to the char array, which is instantiated in the initialize function. Where does the C compiler allocate it? I would have guessed on the local stack, but this would lead to problems accessing it later.
    EDIT: probably no problem because it is only used for the window initialization? But then, why is it part of the engine struct instead of a local variable in "engine_initialization"?

    • @emilien.breton
      @emilien.breton Месяц назад

      you can google something like "where are C string literals stored". string literals live for the entire duration of the program.

    • @parcellus
      @parcellus Месяц назад +1

      In the .data section of the executable, same with any other large literal. Basically read-only memory straight from the program. It doesn't go "out of scope" until the program is unloaded. In cpp the scope problem exists because std::string copies the literal into its own allocated heap memory, and if you return a pointer to that, the string will deallocate it before you can use it.
      So:
      const char* foo() { return "Hello"; }
      if fine, but
      const char* bar() {
      std::string ret = "Hello";
      return ret.c_str();
      }
      is not

    • @matsim0
      @matsim0 Месяц назад

      @parcellus ah thanks! Of course, it would treat it like a const Variable. Dummy me.

  • @oleksiistri8429
    @oleksiistri8429 Месяц назад +1

    setting up vscode for c++ would be dope!!

  • @ohwow2074
    @ohwow2074 Месяц назад +24

    Next video: the guy says he's an infact just 3 weeks old, writing his own weather simulator 😐😐😐😐

    • @RoySATX
      @RoySATX Месяц назад +10

      My neighbor's kid wrote an app before leaving the maternity ward. 🚼 It sucked 👎, but still rather impressive.

  • @Riacho_lol
    @Riacho_lol Месяц назад

    This is my favorite video of yours. C is my favorite language atm and I agree with you on the repetition of namespaces/types part, I keep writing thing_function(&thing) all the time and it is annoying. Maybe very lean C++ would be the best language for me in the future. Really cool video!

  • @rm5960
    @rm5960 Месяц назад

    Yes please !!! Do a video on VS Code setup for C++!!

  • @CharlesCarter-j3p
    @CharlesCarter-j3p 7 дней назад

    Love your video's dude, Love how you almost get C red pilled looking and nice C code, almost! Also I definitely think the submission was by a programmer with 13 years experience not a 13 year old and that was lost in translation. Finally "Yeah, well, you know, that's just, like, you opinion man" The Dude 12:27

  • @anton_98
    @anton_98 3 дня назад

    Спасибо!

  • @NikorouKitsunerou
    @NikorouKitsunerou Месяц назад +2

    In C# we like to use static classes, there's no initializing anything and we don't have to worry about some object dangling around in the code. The only time a class gets used is if there's some specific pattern that makes sense.

    • @CharlesVanNoland
      @CharlesVanNoland Месяц назад +2

      That's called "abstracting the machine away", which means "giving up control over the machine", which culminates in "betraying your end-users because you wanted to use the easy language instead of the one that lets you make stuff as fast as it possibly could be".

    • @IamusTheFox
      @IamusTheFox 26 дней назад

      Strictly speaking, globals in C++ are default initialized, so you don't have to do so with them in C++

    • @IamusTheFox
      @IamusTheFox 26 дней назад

      @@CharlesVanNoland When you change a flat tire, do you lift the car up yourself, or do you use a jack? When you need to drive a nail into the wall, do you punch the nail? If you have a talk in front of a large group of people, do you use a microphone, or do you just yell really loudly?
      Keep in mind, you're not communicating directly with the CPU, you're dealing with the abstract state machine that is the C compiler. Maybe you shouldn't use C but use raw asm?
      Genuinely I think that is a bad take, and is at best unhelpful. If you're dealing with an OS, the level direct control over everything is basically simulated.
      "To make an apple pie from scratch, you must first create the universe"

    • @CharlesVanNoland
      @CharlesVanNoland 24 дня назад

      @@IamusTheFox Clearly we have an /r/whooosh situation here. Maybe we should just build computers from scratch?
      Of course there is value in abstraction. I don't think your analogies with the car jack and hammer track though. My point was that we have TOO MUCH ABSTRACTION and HAND HOLDING which has RESULTED in a CRAPTASTIC DECLINE IN SOFTWARE QUALITY ACROSS THE BOARD.
      Hope that's not too much for your big brain to follow.

    • @IamusTheFox
      @IamusTheFox 24 дня назад

      @CharlesVanNoland First, if I missed the joke, you seem very offended by it.
      Secondly, there is absolutely nothing wrong with abstraction. Abstraction is what c is for native assembly. Again, if all abstractions were bad, we wouldn't need c.
      If my analogy failed I'm sorry. I was attempting to convey the fact we do have tools, and to look down on tool use is silly at best, and dangerous at worst.
      I'm not trying to insult you, but I'm not sure you know what an abstraction actually is.
      Unless you are the 0.01% of programmers, you absolutely need every bit of support you can get both from tools and the language. The programmers who are in the 99.99% who believe that they are in the 0.01% are why the NSA and CIA suggest we abandon C++.

  • @JohnnyThund3r
    @JohnnyThund3r Месяц назад +1

    I've been debating if I should continue to write my game engine in C++ or use GO instead... some don't like the fact GO has a garbage collector, but I always thought humans were bad at managing memory anyways and a garbage collector on a compiled language is a no-brainer.

  • @SansidarUploads
    @SansidarUploads Месяц назад

    Would love to see the video about how to set up VS Code for C++. I've tried to do so, but I couldn't get it to see libraries that I had linked to and so on.

  • @arrowsdev
    @arrowsdev Месяц назад

    YES that would be greate a video about setting up VSCode for c++ , thanks

  • @yoshmeme931
    @yoshmeme931 Месяц назад

    I'm very interesting in the video about setting up Vscode for C++!

  • @paxsevenfour
    @paxsevenfour 10 дней назад

    “By the time you’re an adult you’ll know everything.”
    No, by the time you’re an adult, the officially blessed build system and IDE will have completely changed multiple times. Just learn the principles and keep up with current trends. Being an efficient lifelong learner is most of the job.

  • @peacefulexistence_
    @peacefulexistence_ 27 дней назад +1

    10:17
    You just made thousands of C programmers cry in pain
    You'd fit right in with the Fontconfig crowd though.

  • @SeishukuS12
    @SeishukuS12 Месяц назад +1

    Looks like a pretty good start for a newb!
    I'd still like to see what you think about my C engine, but it's ok. 😉

  • @Adowrath
    @Adowrath 28 дней назад +1

    I feel like I would heavily, heavily disagree with the statement that C "naturally" leads to more correct code. You yourself show some ways this is not true: You have to remember to free if you malloc for example, or the init/shutdown ceremony. There is no issue converting a -1 to uint32_t implicitly. There are so, so many footguns in this language, and at least C++ addresses some of them by making the equivalent thing (in newer versions, that is) much more simple to write, either through RAII alone, or in combination with smart pointers instead of raw ones. Yes, it does not disallow using malloc/free, but if you argue that makes C++ bad, then the very same critique applies to C where that's the _only_ way to use so it's _always_ the most precarious one, full stop.

  • @zxuiji
    @zxuiji 29 дней назад

    2:45 Makefiles are simpler to deal with than cmake from my experience, have yet to ever get a cmake file to work but a makefile 9 times out of 10 works with just running the command "make"

    • @lunarjournal
      @lunarjournal 28 дней назад +1

      CMAKE is only really necessary for very large projects. Makefile is adequate for most things no need to overcomplicate the build system.

    • @zxuiji
      @zxuiji 28 дней назад +1

      @lunarjournal even in my own large projects makefiles are easier to work with. Just slap a makefile in every directory that says "include makefile of parent directory" with the final one launching make with specified build.mak or similar. From there you can do whatever you need in a consistent place :)

    • @ldov6373
      @ldov6373 27 дней назад

      I have to disagree, I think modern cmake is objectively simpler than make. You can write a cmake file for small to medium sized programs in 3 lines. And you have the obvious benefit that it's cross platform. getting cmake to build your project isnt much harder than "make". you'd do: cmake -B build && cmake --build build

    • @zxuiji
      @zxuiji 27 дней назад +1

      @ldov6373 the fact that arguments are needed at all makes cmake LESS SIMPLE than make which requires no arguments whatsoever

    • @lunarjournal
      @lunarjournal 27 дней назад +1

      @@ldov6373 CMake also has the worst syntax I have ever come across. At least with make everything is run as a command, CMake can get complicated very quickly. Make is also cross platform as there are ports for Windows and MacOS..

  • @ahmetedizbozkaya7580
    @ahmetedizbozkaya7580 16 дней назад

    C is definetly better for begginners than C++ & other langueges it may be hard but assure you once you understand it learning new things in proggraming becomes 10x faster.(sorry for my spelling english is not my native languege)

  • @vitaliyforij5205
    @vitaliyforij5205 Месяц назад +1

    C++ Setup for VS Code
    I will wait for this video.
    If possible, could you describe some bottlenecks associated with this setup?

  • @tryingtobebetterr
    @tryingtobebetterr Месяц назад

    I feel envious of those who can code comfortably.
    Also, a petition for The Cherno to release a C23 course for beginners and intermediate? Please.

    • @atijohn8135
      @atijohn8135 Месяц назад

      considering the two most popular desktop operating systems still don't support C11 correctly, you might want to wait a while until you tackle on C23 (which is great, but absolutely not ready to be used yet)

    • @tryingtobebetterr
      @tryingtobebetterr 29 дней назад

      @@atijohn8135 Guess I need to learn something else before I worry about C23 (or any programming language, for that matter). I don't even know what I am asking for and why. Thank you so much.

  • @AlexMG54
    @AlexMG54 Месяц назад

    Good video and points made. Code looks pretty good to me as an experienced dev that's been also working on a hobby C engine.

  • @Finkelfunk
    @Finkelfunk Месяц назад

    C is not just one of the best languages to learn for a beginner, it is _the_ best language to learn for a beginner. There is no discussion about this, at all. Everybody who starts programming should first learn a bit of C, then switch to any language you want, doesn't matter.

  • @colinmaharaj50
    @colinmaharaj50 27 дней назад +1

    I started coding BASIC in a summer course, then 8085 ASM in tech school. That was in the late 80s / early 90s. I was 16 y/o. Moved to TP (Pascal) then TC (Turbo C) then Turbo C++. I wrote a Serial based VT220 Terminal Emulator in C then C++ (no windows, no networking) when I started working as a telecoms tech. I finished that project in 1992, when I was 22. I used C++ to treat each serial session in COM1 and COM2 as an object, and used a hot key to switch between one and the other. Fond memories.
    Today I use and still use C++ Builder. A windows based C++ compiler from embacadero.

    • @zardozjones
      @zardozjones 20 дней назад

      You skipped Delphi? Builders compiler is rocket fast (proper precompiled headers/libs) - I used it up until about 5 years - couldn't handle d/com mess with it. Interestingly TP->TC->Object Vision->Delphi/Builder->VCL- are the precursors to C# - same dude designed it.

    • @dangkhanhlinh476
      @dangkhanhlinh476 9 дней назад

      That must have taken you a lot of time.
      very little documentation and tools, plugins were not supported like they are now.

  • @adrianordp
    @adrianordp Месяц назад

    I always felt like VS Code setup for C++ is a must in your channel and I always missed it here.

  • @xb_salami
    @xb_salami Месяц назад +8

    C I feel like is what really escalated my knowledge in programming.
    The language literally forces you to think about things a lot of people unfortunately disregard today.
    Not saying that everyone should switch to C as their goto language, btw.
    Some things in C are actually a pain in the ass to use.

  • @RoySATX
    @RoySATX Месяц назад +1

    Please, Sir, Roast us all by doing a video on setting up VSCode for C++, or rather setting up C++ in VSCode, whatever way that makes sense. BTW, the last video I watched of yours was some time ago (I've been busy burying a couple family member, no I didn't kill them) and you were still sick, you look much better now, hope your feeling better. In case anyone cares, I don't expect anyone to, I feel like crap... I did just bury a couple family members so I should feel like crap. You're free to take pity on me and maybe make a video setting up C++ in VSCode? That's all, too much really, good day!

  • @sdwone
    @sdwone 25 дней назад

    C is such a SMALL and powerful language... Totally uncluttered by modern language concepts like Object Oriented Programming... So yes, I think it's appropriate for beginners! Just keep them the HELL away from Pointers! Until they FULLY understand how a double linked list works!
    I had my first encounter with the language as a module on my Astrophysics course at University when I was in my early 20s.
    Now I have C, C++, C#, Javascript, SQL et al under my belt 30 years later! But then, I did code in assembler on 8 and 16 bit machines as a kid 🤷‍♂️

  • @jamesmnguyen
    @jamesmnguyen Месяц назад +2

    As much as I love C, I can't live without operator/function overloading.

    • @CharlesVanNoland
      @CharlesVanNoland Месяц назад +1

      Operator overloading is the only thing that is missing from C that would make it perfect, IMO.

    • @xCwieCHRISx
      @xCwieCHRISx Месяц назад +2

      @@CharlesVanNoland Worst thing about C is its tiny basic standard library. You have to implement the most basic data structures by yourself.

    • @CharlesVanNoland
      @CharlesVanNoland Месяц назад

      @@xCwieCHRISx But once you do you basically never have to again. C lets you build your own language on top of it that you can use for the rest of your life.

  • @SilentLumi
    @SilentLumi Месяц назад +7

    Meanwhile me back in my 13 y. o. playing Garrys Mod all day long 🤣

    • @marwan7614
      @marwan7614 Месяц назад +1

      Gmod's addon "Wiremod" got me into programming though LUA/Expression 2.

  • @nashiora
    @nashiora Месяц назад +3

    I would *definitely* use C as a teaching tool over C++, personally. Don't get me wrong, as much as I love C it's not a good language. Neither of them are. But the explicit nature of C allows the learner to see and physically play around with a lot of what's hidden by C++. Sure, when you're experienced you can make use of the constructor and destructor, rely on scoping rules and understand name overloading and namespacing. Many of the convenience features of C++ aren't intuitive, but could be taught in terms of "all that stuff you did manually in C that you now understand, the C++ compiler does for you," and *then* it's useful.

  • @CEO_of_memes2
    @CEO_of_memes2 29 дней назад

    Yes would love if you do a vs code cpp setup video

  • @ИвелинъСтояновъ
    @ИвелинъСтояновъ 7 дней назад

    Could you share the theme that you are using on vs code.

  • @vsadrn
    @vsadrn 29 дней назад

    Could you point me to your colorscheme you're using and would it be ok to port it to Neovim? Thank you

  • @enicaeduard
    @enicaeduard Месяц назад +3

    I've been taught C++ in high school, but we were taught the C part, not the whole oop part. Maybe we used it because it has the iostream and fstream instead of stdio.h and stdlib.h . It's a lot less of a headache to use the streams, but with stdio functions you can do more things

    • @IamusTheFox
      @IamusTheFox 26 дней назад

      with printf you can crash your program :D

  • @CristiNeagu
    @CristiNeagu Месяц назад +2

    1:25 Yes, please.

  • @PapaJoeRobertson
    @PapaJoeRobertson Месяц назад

    Do a video on how to set up Vim + Ctags. That set up will work on very low end systems.

  • @michaelhaslow1876
    @michaelhaslow1876 29 дней назад

    Please make a video of setting up VSCode for c++!

  • @ZKachmer
    @ZKachmer Месяц назад

    Thank you, Mr. Cherno!

  • @sumgamelab
    @sumgamelab 27 дней назад

    So.. when can I sign up for Cherno University?

  • @lucasgandara4175
    @lucasgandara4175 Месяц назад

    Where do I sign for the video about c++ on VsCode?