DEV Community

Aditya Mishra
Aditya Mishra

Posted on

C programming in 2022?

Let's get to the point is C programming language worth learning in 2022?

Simple answer: YES
Reason?

If you are getting into programming it's a good idea to start with c because this language will teach how the bare metal (computer) works.

From memory to cpu instructions, it's pretty simple language compared to c++ and c is worth learning as it would never hurt to keep this old language still alive.

After learning c you should try rust or c++

Discussion (14)

Collapse
lukeshiru profile image
Luke Shiru

You could also learn with Go, which is also low level, but is way more modern. Rust is another great option. I'm not saying you shouldn't learn C, I'm just saying you would be ok without it because there are other great languages at the same level.

Collapse
devlopr profile image
Aditya Mishra Author

Yea but Go and Rust don't directly allow to interact with memory and other stuff which C does, and rust works completely differently in memory management but yea go and rust are definitely awesome languages, i am personally learning Rust

Collapse
lukeshiru profile image
Luke Shiru

Yup. My point (I did say this in another comment) is that those two are great to learn "the basics", in languages that are pretty "bare bones". If you later want to build microcontrollers and stuff like that, then you can learn C after Go or Rust, just to have that fine control over memory, but if you want to go to a higher level language like JavaScript, then you don't need to learn about those kind of low level instructions.

Collapse
guillep2k profile image
Guillermo Prandi

The more advanced memory handling of Go defeats the purpose of studying it to learn about the bare metal. It's lower level than .NET or JavaScript, but still...

Collapse
lukeshiru profile image
Luke Shiru • Edited on

If you want to go in that direction, you can learn C after learning Go. My point is that to learn "the basics" Go is great, you can go to a higher level with JavaScript, or to a lower level with C.

Collapse
darkwiiplayer profile image
DarkWiiPlayer

this language will teach how the bare metal (computer) works.

There is a misconception that C is inherently a bare metal language, but that's not entirely true. Many features of the C language and your OS already provide many abstractions that make it much more pleasant to work with.

Being able to go low-level when needed is definitely one of the advantages of C, but it's not necessary nor something you will likely be doing when you're just learning C.

Collapse
pgirikishore profile image
P Giri Kishore

It’s 2022 and I use C at work.

Collapse
guillep2k profile image
Guillermo Prandi

I've used it until just recently and I would still do if I need to. I work with small microcontrollers, however, so it's almost a given. I sometimes even need to go even lower (assembler).

Collapse
devlopr profile image
Aditya Mishra Author

Oh Boi, it must be fun directly programming MCs

Collapse
devlopr profile image
Aditya Mishra Author

πŸ”₯πŸ”₯ Now that's something awesome

Collapse
apoc101 profile image
Gabriel

I think that if you're not planning to do Operating System builds, C can be fun to learn to make some fast programs that aren't too CPU intensive, but otherwise if you're new you should probably start with Python, which I consider to be a simplified version of C, even if it's slower.

People don't really need to know how to interact with memory, since usually newer languages do it automatically.

And C++ is just more supported with .NET, while C doesn't really have that much. And C is just a pain to learn IMO.

Collapse
eljayadobe profile image
Eljay-Adobe

I'm a polyglot when it comes to programming languages.

I think developers are well served to learn lots of languages, because they have different perspectives, strengths, and shortcomings.

Keep in mind that programming languages are tools, and some are more suitable or less suitable for a given problem domain. Having more tools in one's toolbox is not a bad thing.

Robert "Uncle Bob" Martin is also a polygot of programming languages. He's been pretty vocal about Clojure as being the best language to learn. (I don't disagree with him, I just take "best" with a grain of salt.)

One criterion I consider for programming languages is: if I learn this language, can I get a job using it?

That doesn't stop me from learning a "dead-end" language, just tempers how much effort I put into it. I like to learn one new language every year. Sometimes it's an incremental change, like from C++14 to C++17. Othertimes it's a novel (to me) programming language like F# or Elm.

C? Definitely a skill that one can use for gainful employment. Ditto with Rust and C++.

The job-worthy programming languages are pretty well reflected in the monthly TIOBE index. C is #2 right now.

My favorite programming languages: D, Python, F#, and Elm.

The programming languages I use that pays the bills: C++14, Objective-C, Objective-C++, and C.

I don't have Clojure on my list. Yet. I plan for it to be the language I learn next year, in 2023. It's very Lisp-like. I've learned Lisp back in the 1980s. I'm aware of the blub paradox. I did not appreciate Lisp's strengths back in the 1980s, maybe I'm in a better position to appreciate Clojure's strengths today. The SICP book is available as PDF for free by the authors.

Collapse
cess11 profile image
PNS11

Why would C be a better option than Forth? Do you seriously consider C compilers easier to understand than Forth compilers?

Collapse
pauljlucas profile image
Paul J. Lucas

While C may seem close to the "bare metal," it hasn't been in a long time.