Criticism of the C programming language: Difference between revisions

Content deleted Content added
Missing feautures list transplanted from the C article
Cowznofski (talk | contribs)
proliferation
Line 1:
The [[programming language]] '''[[C (programming language)|C]]''' is widely used, minimalistic and [[High and low level (description)|low-level]] by design. C appeared prior to the general widespread usage of small computers, and being minimal and small, was a logical choice for proliferation in the early years of a high growth industry. Despite its popularity, C's characteristics have led to much '''criticism''' of the language. Some criticisms have arisen from misconceptions or misinterpretations of the C standard, while others have some degree of validity. This article is concerned with the latter.
 
Many beginning programmers have difficulty learning C's syntax and peculiarities, and even many expert programmers find C programs difficult to maintain and debug. A popular saying, repeated by such notable language designers as [[Bjarne Stroustrup]], is that "C makes it easy to shoot yourself in the foot." [http://www.research.att.com/~bs/bs_faq.html#really-say-that] In other words, C permits many operations that are generally not desirable, and thus many simple programming errors are not detected by the compiler and may not even be readily apparent at runtime. This potentially leads to programs with unpredictable behavior and security holes, if sufficient care and discipline are not used in programming and maintenance.