Why would you want to learn C now?

  • 11
    Because it constitutes the building blocks of pretty much *all* modern software.

    Sure, an automatic transmission car is comfier, but they don't let you drive a manual if you only passed your exam with an automatic.

    And the top end stuff like a F1 wouldn't *ever* run automatic transmission, because you can't afford it.

    You learn C to know how stuff works without relying on 17 GBs of node modules. You learn C to be able to squeeze those all important milliseconds in your hot loop. You learn C because it lets you interop pretty much anything else in the world...
  • 3
    @CoreFusionX F1 cars already use automatic transmission because it is more efficient: https://motorsportexplained.com/are...

    And you can do the same as with C with Rust.

    But if you want to work on Software written in C you definitely need to know C. So that is why you might want to learn C. It basically is the network effect of social networks - but for programming languages: "Everything is written in C so i better learn C" followed by "I want maximum interoperability with all the existing stuff written in C, so i just write this new stuff in C too".
  • 4
    F1 are semiautomatic. They don't have a clutch, but the shifting is still manual.
  • 5
    @Oktokolo You can also do the same in C++ as in C, but C is still around, especially in embedded - and Rust won't replace it any time soon.
  • 1
    @CoreFusionX The shifting could easily be automated. But autiomation probably would shift slightly worse than a professional F1 driver. And it is all about milliseconds in that sport. So of course the driver still triggers the shifting manually.

    Formula E transitioned to single-gear though.
  • 8
    @Fast-Nop Fuck, I almost went a day without hearing the R word...

    This is like winning The Game.

    Now I need to drink some WD40.
  • 1
    no reason to learn this weird lang
  • 6
    This thread is rustard bait.
  • 5
    @zlice c doesn't stop you from managing your memory. In fact it requires you to manage your memory.

    I've worked with too many devs that don't understand how memory and compute works together.

    If anything, developers are becoming shit because they are getting lazy because frameworks do everything for them.

    I'm not saying we have to do "everything" by hand, but blaming bad development practices on a language because it's "too open" is crazy.

    Languages are tools, use the right tool for the right job. Use c when you need specific management of memory. Use Python if you're a scriptkiddy. Use node if you hate yourself. Use Ruby if you hate everyone else.
  • 3
    @sariel Use Lua if you hate data structures.
  • 1
    One word. Wisdom
  • 6
    Bait for the Bait God
  • 0
    @zlice I think we're both confused.

    I thought you were being facetious.
  • 1
    @sariel it's not like they need bait to come out of the nooks and crannies
  • 6
    Because it's the most portable language to ever exist. If you write standard C, your program will bulid for everything that is Turing complete.
  • 3
    Also, it's a great middle layer for understanding what really happens when you write in the languages every project used by a non-author should be written in.

    Assembly can't readably represent a class with virtual methods. C easily can. C is the lowest level language from where high level constructs are visible, even if you can't quite have them without extensive and expensive template metaprogramming.
  • 3
    You'll gain insight into how and why a lot of things are done the way they are done at higher levels, and why they were done the way they were done in the past if you have an interest in studying that. I believe there's great value in learning about computers from a historical, "evolutionary" perspective, and it's not like C is just history, you certainly have a lot of compiled C code running in the device you're looking at right now.

    And C is a simple language, some C code tends to be truly beautiful; like I said above, the idioms you'll see in it have influenced code you'll see in more modern languages. You also may hear that Rust is safer and whatnot, but safer from *what*? You don't want to just regurgitate that, do you? Surely you'd want to learn what the actual issue is that it saves you from. The unsafety of C also gives you insight into how cool famous hacks have been done. :)
  • 1
    @Root Skulls for the Skull Throne!
  • 0
    honestly... considering eveything,
    it's still a cool language, even 40 or so years later.

    But so is C++, C#, and Rust for that matter.

    CMake, if done properly is quite a good tool.
    You can use stuff like mold, to improve compile times
    And hinting in IDEs is nowadays good enough, that your Software won't explode immediately when writing it.

    Have written Software in all languages mentioned, liked all of them so far.
  • 3
    for pointers and hookers,
    in fact, forget about the pointers.
  • 2
    @PonySlaystation I used to write interrupt hooks in C.
  • 2
    Embedded systems?
Add Comment