C Tutorial - Introduction
C and C++ are widely promoted as ideal portable, fast, and - in the case of C++ - "object-oriented" languages. This characterization is deserved when C is considered for systems-level programs such as compilers, or for mass-market products such as word processing or spreadsheet programs. C was designed as a reasonably transportable replacement for assembly language that would add some high-level language constructs, but would retain almost all the low-level procedural capabilities found at the machine instruction level. C++ follows in that tradition, adding object-oriented capabilities (encapsulation and inheritance) to improve productivity while retaining C's original features and its philosophy of "bare metal" performance.
But C is increasingly being considered as the best replacement for outdated commercial languages such as COBOL, RPG, and Basic. And many proponents also recommend C and C++ as superior alternatives to the Pascal family of languages (including Modula-2 and other successors to Pascal); to object-oriented languages such as Smalltalk, Eiffel, and Actor; and to the general-purpose language, Ada. C has its place, but in many cases - especially business programming - C can be a poor choice.
Table of content (tutorial index)