Most people with a superficial programming experience ask whats so important about this one language.. what have kept it alive and going for 4 decades in such a dynamic industry where new technologies are announced every day.. why do software companies still expect you to know this language even if you are going to work in some other programming language... lets C..
I read Kanetkar's "Let Us C" and found so many rubbish reasons he have given to support C. Then i found out wikipedia and got a book where i got some interesting explanation, i m sharing here........
Earlier days operating systems were written in assembly language, however, the assembly languages were microprocessor specific and hardware dependent. So for different hardware the whole code of the same OS had to be written differently. In such a time Denis Ritchie of the Bell laboratories came up with a system programming language which was platform independent..which means that whatever be the target hardware system, the programmer need not change the code.. the only thing that had to be done is compile the code differently for different platforms.. It was obviously easier to write compiler for different platforms than writing the whole source code for each application every time we change the hardware.. The language was so much welcomed that without any official support it spread throughout the programmers' world. The popularity increased with such pace that it soon became a general purpose language...
Now the question that comes to mind is as we have developed many higher level languages then why shall we still learn C?
One thing to remember is that system programs for all major OS like Windows, Linux and Unix are still written in C. They have not been replaced by any language. This is because code written in C interacts easily with hardware and is platform independent, the reason why C is called a middle level language..
Another important point, all driver programs for all new hardware are mostly written in C , because it gives you a high level interface with a low level operational authority, the property which makes it different.
So, the answer is however boastful other languages maybe, no higher level language gives a programmer that much authority over a system which C gives... As it was designed for System programming it gives you direct access to your hardware. You are free to use pointers and other C stuff to design or destroy your system according to your own will and capabilities.. Obviously, if you carry a sharper weapon, its careful use is your own responsibility...
One may argue that C does not have support for networking and the most popular part of today's computing The Internet environment does not use C for security issues. However, the servers on which the internet is based are still using C based operating systems. So the basic networking part is still handled mostly by C. Only the upper application, session and presentation layers are handled by other languages. And for offline computing especially when designing applications closely related to hardware or OS, C is and will be the language of choice...
So, learning C is quite important.. In following blogs we will discuss the other aspect.. Is it as interesting to be called an art.. Wait for the next article...
No comments:
Post a Comment