Advantages & Disadvantages of C Language: C Programming Features

Advantages / Characteristics of C Programming Language

C Programming Language

C Programming Language

  • C Language is a CASE SENSITIVE language.
  • Reusablility: Programs written in C can be reused. You can save your C programs into a library file and invoke them in your next programming project simply by including the library file.
  • Readability: C Programs are easy to read.
  • Maintainability: C Programs are easy to maintain.
  • Portability: C Programs are portable across different computer platforms by just recompile them according to the relative operating systems.
  • Learnability : You don’t have to remember many C keywords or commands before you start to write programming in C.
  • Major parts of popular operating systems like Windows, UNIX, Linux is still written in C.

Development of other languages based on C

  • Many other high-level languages have been developed based on C. Example, Perl is a very popular programming language in World Wide Web (WWW) design across the Internet. Perl actually borrows a lot of features from C.
  • If you understand C, learning Perl or PHP is a snap. Another example is the C++ language, which is simply an expanded version of C, although C++ makes object-oriented programming easier. Also, learning Java becomes much easier if you already know C.

Disadvantages of C Programming Language

  • C is not Object Oriented Programming Languages(OOPL) that’s why C++ comes into existence to overcome the disadvantages of C language.
  • There is no runtime checking in C language.

There are some concepts that are not present in C language:

  • Constructor
  • Destructor
  • Namespace and and other OOPS features ( Inheritence, Polymorphism, Encapsulation, Abstraction etc).
  • There is no strict Type Checking  i.e , when we pass an integer to an floating point type variable.

Comments

  1. says

    Advantage: Readability
    Have you seen some of the http://www.ioccc.org/index.html entries?  C can actually be quite unreadable.  It depends on how insane the coder is and if they are coding with an eye on maintenance.  Some coding styles make readability difficult as well.

    Advantage: Maintenance
    This sort of goes hand in hand with Readability and Portability.  If a program is not easily read, it’s not easily maintained.  Then you have cross platform issues with APIs that let you do something on one machine but not on another. etc.

    Advantage: Portability
    Sure simple programs work nice on all platforms…  But once you use functions and features outside of the std libraries you are in a world of hurt.  Other languages address cross platform issues as part of the language but in C you will have byte order issues, OS API issues, compiler issues, …  There are some difficulties to tackle which leads to maintenance issues.  E.G. add a feature that works on Windows may need some deep thought to get working on OSX or Linux.

    Advantage: Learnability
    Some will argue that point.  Pointers usually get a lot of new users.  Those who never had to deal with Assembly.  But I’ll have to agree on this to a certain degree.  If you keep things simple, it’ll be simple to code in C.

    Disadvantage:
    Even though C is not object oriented doesn’t mean you can’t code in an object oriented way.  I don’t see this as a real minus.  I’ve seen some C++ code developed in house and I’m just thinking, “you know, if you wrote that in C it wouldn’t have been that much more typing and it would probably be a little easier to read and understand.”  But I’m never going to win that battle.  Too many are sucked into that OO programming requires C++ way of thinking.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>