Sunday, 3 January 2016

Motivation for learning C

People sometimes ask,

  • Is it worth learning C as it is an old language ?
  • What can you do using C ?
  • Can I do anything in C ? 
In short, yes you can do anything with C, even to see the most beautiful image on your desktop, you are using C. If you are also editing the image in a high end image processor like Photoshop, you are surely using C.

So, instead of writing an introductory article, I am going to show you the way how C helps in computing.

I will be going through a scenario of a building, a building with 10 floors.


I have a 10 storey building.

  • The ground floor is a single portion.
  • The first floor is another portion.
  • The second/third/fourth floor combined together contributes to a single portion.
  • The fifth/sixth floor combined together contributes to a single portion.
  • The seventh/eighth combined together contributes to a single portion.
  • The topmost floor is another single portion.


Now, I want to destroy a portion of the building.

  • If I destroy the topmost floor, probably the remaining 9 stays unaffected except for some garbage cleaning stuffs to perform.
  • If I destroy the Seventh/Eighth floor, the lower 7 sustains beautifully. But the top three floors are destroyed in a single go.
  • If I destroy the fifth/sixth floor, the remaining sustains beautifully. But it destroys all the floors from 5 - 9.
  • If I destroy the portion containing second/third/fourth floor, it will destroy everything from 2-9. Well the building is small enough and it lost most of the floors but still it is having the ground and first floor.
  • If I destroy first floor, everything is lost from 1-9 and it is almost gone but still there is a portion left in the building and its not completely gone.
  • If I destroy ground floor, the whole building is destroyed in a single go.
Do you agree ?
Better you do. Because, you don't have any option to fight gravity.

Now, you understand the consequence on destroying the portions of the building.

Now let's get the real value on each portions and you will understand where C, C++, Java, C#, Android, iOS etc are working.

  • The ground floor is C.
  • The first floor is C++.
  • The second/third/fourth floor is a Java, C#, Objective C, .NET Platform which are written mostly in C/C++.
  • The fifth/sixth floor is combination of OS Kernel and other stuffs which are mostly implemented in C/C++ and the mentioned platforms like Java, .NET, Objective C etc.
  • The fifth/sixth floor is Spring, Hibernate, nSpring, Sharepoint etc.
  • The seventh/eighth floor is Web Development/Standard Desktop Application Development.
  • The topmost floor is where you see different applications like Internet Explorer, Google Chrome, Mozilla Firefox, Microsoft Office Suite, Photoshop, Windows media Player, MATLAB, KMP, Eclipse IDE or whatever application you use in your desktop.

So, you can see where C Resides in the world of Computing.

Now you may argue with me that I am just overrating C. So, here I go with some reference to my answer,
C may be an oldie but its a real goody. So, never underestimate the power of C. Again remember the picture and think if C was not there, what possibly would happen. Possibly we would not see computing in the way we see it today.

And here is the answer for Frequently Asked Questions,

Yes we can write anything using C only. but it will just be reinventing the wheel which is already invented by Sun Microsystem (for Java), Microsoft (for .NET), Apple (for Objective C) and related technology advancements.


Prev     Next

No comments:

Post a Comment