Friday, 23 January 2015

What is 'C'? Why it is important to learn 'C' now-a-days?

This post demonstrates why it is important to learn C programming now-a-days before you learn any high-level programming languages (C++, Java, C#...).

What is C?


C is a programming language developed by Dennis Ritchie at AT & T's Bell Laboratories of USA in 1972. In the late seventies C has began to replace the more familiar languages of that time like FORTRAN, ALGOL and many more. C has proven to be a powerful and flexible language that can be used for a variety of applications, ranging from business programs to engineering.
Possibly why C is a particularly popular language because it is reliable, simple, relatively small and easy to use.
Moreover, in this technical industry where newer languages, tools and technologies emerge and vanish, a language that has proven and survived for more than 4 decades. The first major program written in C was the UNIX operating system. Now, however, C is an important language independent of UNIX. Although it is a high-level language, C is much closer to an assembly language than are most other high-level languages. This closeness to the underlying machine language allows C programmers to write very efficient code.

Why it is important to learn?


There are several reasons why it is much important to learn 'C' today.
  • You can ask anyone who are working on C++ or Java, whether they have learned Java or C++ directly without learning 'C'. The answer is No. I believe that nobody can learn C++ or Java directly. This is because while learning these languages you have things like classes, objects, inheritance, polymorphism, templates, exception handling, references, etc. do deal with apart from knowing the actual language elements. Learning these complicated concepts when you are not even comfortable with the basic language elements is like putting the cart before the horse. Hence one should first learn all the language elements very thoroughly using C language before migrating to C++, C# or Java. Though this two step learning process may take more time, but at the end of it you will definitely find it worth the trouble.
  • C++, C# or Java make use of a principle called Object Oriented Programming (OOP). This organizing principle has lots of advantages to offer. But even while using this organizing principle you would still need a good hold over the language elements of C and the basic programming skills.
  • Though many C++ and Java based programming tools and frameworks have evolved over the years the importance of C is still unchallenged because knowingly or unknowingly while using these frameworks and tools you would be still required to use the core C language elements—another good reason why one should learn C before C++, C# or Java.
  • Major parts of popular operating systems like Windows, UNIX, Linux is still written in C. This is because even today when it comes to performance (speed of execution) nothing beats C. Moreover, if one is to extend the operating system to work with new devices one needs to write device driver programs. These programs are exclusively written in C.
  • Mobile devices like cellular phones and palmtops are becoming increasingly popular. Also, common consumer devices like microwave oven, washing machines and digital cameras are getting smarter by the day. This smartness comes from a microprocessor, an operating system and a program embedded in this devices. These programs not only have to run fast but also have to work in limited amount of memory. No wonder that such programs are written in C. With these constraints on time and space, C is the language of choice while building such operating systems and programs.
  • You must have seen several professional 3D computer games where the user navigates some object, like say a spaceship and fires bullets at the invaders. The essence of all such games is speed. Needless to say, such games won't become popular if they takes a long time to move the spaceship or to fire a bullet. To match the expectations of the player the game has to react fast to the user inputs. This is where C language scores over other languages. Many popular gaming frameworks have been built using C language.
  • At times one is required to very closely interact with the hardware devices. Since C provides several language elements that make this interaction feasible without compromising the performance it is the preferred choice of the programmer.

Please share your thoughts on this post in the comments section.

Karthik Byggari

Author & Editor

Computer Science graduate, Techie, Founder of logicallyproven, Love to Share and Read About pprogramming related things.


Post a Comment