Why C Programming Language is Awesome ?

Why C Programming Language is Awesome ?

Hey guys what's up as this article is titled  Why C Programming is Awesome In the past I've gotten some slack for not mentioning C As much as I probably should but in this article this is dedicated to C programmers So anybody that likes C is gonna hopefully like this article and what I have to say about this language So I'm just gonna touch on a few of the key points of why I think C is a good language to learn Why it's good maybe as a first language maybe just as a a subsequent language If that's something that you're interested in but there's many reasons to learn C I'm not going to be able to mention them all in this article   This is just a few things that first come to my mind whenever I think of the C programming language Alright so number one almost all popular languages are built on top of the C language so every language out there  And I could've listed all of them so if I didn't list C++ or C# then hopefully don't take offense but I mean You can see here some very popular languages like Python Ruby Java JavaScript They are all C level languages so they're languages that are libraries built in C code  that translate into a higher level language which is then called JavaScript or Java or whatever but ultimately the code that you can find in Python is the same code that you'll uh find in C if you break it down enough 500,000 lines of C code power the Mars Curiosity Rover so I find that really awesome  I'm a real big space nerd so I think it's great that uhm that Mars Curiosity is has embedded systems and C is the language of choice for those embedded systems and one of the main reasons behind that is that You can't get bogged down with a lot of large libraries like if you're using maybe C# and .net C# requires access to the .net library to do you know most things that you're gonna do with C# You can't have that kind of overhead bogging down your systems when you're talking about the amount of you know radiation and everything else that these spaceships have to deal with when they're getting sent across space in this case 38,000 miles an hour so you have to have lean and mean systems and 500,000 lines of C code is tested over and over and over and over again over at NASA and eventually you end up getting that C code embedded into these robots and things ultimately that's how it's able to execute and call home and everything like that And I'm probably not doing enough justice with the amount of complexity behind that but you know it is cool that C is the language that they're gonna choose they're not gonna use Java they're not gonna use Python So it's C all the way for something like that.

It's the coding language of choice for kernel development so a kernel is an essential part of the operating system it manages the task of a computer and hardware most notably memory and CPU time So basically it's the most fundamental part of the operating system and it controls all other parts of the programs on the computer  So if you need something that is that needs to be fast like operating systems or anything like that that needs to have very close access to  to hardware on your machine then C is gonna be one of the first languages that you choose to do something like that C is considered a high level language when you compare it to something like Assembly  which can also be used to program hardware and things like that but ultimately C is gonna be the language that you see most often with kernel development So it's been around for more than 30 years it isn't going anywhere any time soon and when I say soon probably in the next decades probably within our lifetimes So C as you can see here is behind Java but that says a lot considering that Java is built for enterprise development as well as C# here so I mean you're gonna see tons of jobs in any sort of enterprise development language like those two But C the fact that it's been around for so long it's in so many embedded systems it's the language that most of these higher level languages are built on top of there's always gonna be some knowledge of C that you're gonna need as a programmer So the fact that it's #2 here you can see in TIOBE it was number 1 last year but now it's number 2 So it constantly fluctuates between like #1 and #2 But I mean it's been that way now for decades and it's gonna be probably decades in the future before we see that change too much So writing code in C will ultimately tell you how a computer really works so with C you have to manage your own memory so it you have to have a very intimate knowledge of how a computer is actually operating For that reason I actually don't do any C development you know I'm typically sticking with  a higher level language like Python or C# or Java I don't normally have to do a lot of embedded systems in fact I don't have to do any so the knowledge of C that I have is because I was just trying to learn and I was trying to you know play around with it and mess around with it so  I'm not a "deep C" guy but ultimately though if you are a C guy and you're managing everything like memory then It is gonna require a very intimate knowledge of how a computer system works of how hardware is being interacted with from your computer programming language so  Uhm it's gonna give you much more appreciation for what higher level languages like Python JavaScript and C# are doing for you when they make certain tasks much easier than what you would have to go through with C  And mainly that's garbage collection is one of the first things that come to mind that I can think of with that So if you wanna start running into some real nightmares try to manage your own memory and understand how all that stuff works and C is gonna require that of you It's in high demand for jobs and it's been this way for a long time so you can see it's relatively flat you know flat curve here all the way back from 2012 and it would probably be something very similar if you go back several decades but when you compare it to something like Java you know Java being the #1 on the TIOBE index you can still see that so many jobs require knowledge of C compared to all these other languages down here So I mean you have python and C# down here like right at about a tie  And then you have Java which is obviously very very big in the enterprise world And then Ruby down here which is basically a one trick pony Ruby on Rails but ultimately those languages pale in comparison to actual C language so you can see you can see how that's  but there's always gonna be a demand in the job market for a C programmer especially a really strong one So C code is very uh portable and efficient it's ideal for applications that require high performance and low memory overhead And many languages aim to be you know run anywhere like Java they have that you know write once and run anywhere and stuff like that with it's JVM they uhm Java Virtual Machine and all languages try to tout that You know that they can be run anywhere but that's really not the case I think anybody who's done C# you run into you know .net libraries that aren't installed on client machines And your code's not working the way you want it to and there's all those headaches and things like that and those are part of the reasons why you're not gonna see uhm you know something like Java and C#  Running on the Mars Curiosity Rover that's just too much overhead there They're gonna you know get just what the program needs it's gonna be tested a million times over And it's gonna be written in something very reliable like C and it's gonna be embedded right into the system so the compiler's there and it doesn't take too much to actually work with the C library it's a relatively small library compared to something like .net or Java So really that's it that's all I got uh so there's plenty of other reasons to learn C And this article is just kind of a shoutout to all the C developers and and uhm  just know that I you know I always have respect for the C language and  That's it so if you guys are interested in learning it .

Comments

You must be logged in to post a comment.