What Is C
What Is C
What is C :
C is a programming language developed at AT & T’s Bell Laboratories of USA in 1972. It was designed
and written by a man named Dennis Ritchie. In the late seventies C began to replace the more familiar
languages of that time like PL/I, ALGOL, etc. No one pushed C. It wasn’t made the ‘official’ Bell Labs
language. Thus, without any advertisement C’s reputation spread and its pool of users grew. Ritchie
seems to have been rather surprised that so many programmers preferred C to older languages like
FORTRAN or PL/I, or the newer ones like Pascal and APL. But, that's what happened.
Possibly why C seems so popular is because it is reliable, simple and easy to use. Moreover, in an
industry where newer languages, tools and technologies emerge and vanish day in and day out, a
language that has survived for more than 3 decades has to be really good.
An opinion that is often heard today is – “C has been already
superceded by languages like C++, C# and Java, so why bother to learn C today”. I seriously beg to differ
with this opinion. There
are several reasons for this:
(A) 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.
(B)C++, C# or Java make use of a principle called Object Oriented Programming (OOP) to organize the
program. 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.
(C)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.
(D)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.
(E)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.
(F)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.
(G)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.