Monday, November 1, 2010

Why C?

For me C is a language that gives you a lot of freedom. Using C, a programmer can access almost every device on his machine. You can even combine C and Assembly to get the best results.
C programmer vs other High level language ones is like a difference between a driver and engineer. Both can drive the car but engineer knows how every part of car is working whereas driver only knows how to use different parts to drive the car.

  • C can address and manipulate memory by direct address. A program can obtain  the memory address of any object (both data objects and functions) and manipulate without restriction the contents of the memory specified by the address. This capability is good to have because it allows flexibility. However, you have no protection from the program overwriting critical parts of the operating system when you are programming a PC using DOS.
  •  C has a powerful library of functions. This library of functions enables programmers to perform I/O, work with strings (which are arrays of characters), and perform many other tasks.
  • Speed of the resulting application. C source code can be optimized much more than higher-level languages because the language set is relatively small and very efficient (other reasons too, discussed later). It is about as close as you can get to programming in assembly language, without programming in assembly language (if you don't know what assembly is just Google it). Heck you can even use assembly and C together!

  • That leads to a second advantage that C has which is its application in Firmware programming (hardware). That is due to its ability to use/work with assembly and communicate directly with controllers, processors and other devices.

  • C is a building bock for many other currently known languages. Look up the history of C and you will find that it has been around for some time (as programming languages go anyway). Take a look at Python for example a fully Object-Oriented High-Level programming language. It is written in C (perhaps C++ too). That tells you if you ever want to know what is going on under the hood in other languages; understanding C and how it works is essential.

  • That leads to the final advantage that I will touch on (there are no doubt others and disadvantages as well); C is a compiled language versus an interpreted language. Explained simply, this means that the code is compacted into executable instruction (in the case of windows anyway) rather than being "translated" on the fly at run time. This feature also lends heavily to the speed of C programs.

No comments:

Post a Comment