Criticism of the C programming language: Difference between revisions

Content deleted Content added
m reverted; paragraph was meant to restore some balance to otherwise overly negative slant
STBot (talk | contribs)
m clean up - bother me at my talk if I mess up using AWB
Line 36:
* A lack of [[infix notation|infix]] operators for complex objects, particularly for string operations, making programs which rely heavily on these operations difficult to read. The [[Lisp programming language|Lisp]] language, with no infix operators whatsoever, exhibits this problem to an even greater extent.
* Heavy reliance on punctuation-based symbols even where this is arguably less clear, such as "&&" and "||" instead of "and" and "or," respectively. Some are also confused about the difference between bit-wise operators ("&" and "|") and logical operators ("&&" and "||"), especially since the former can frequently, but not always, be inserted in place of the latter with no change in behavior.
* Unintuitive declaration syntax, particularly for [[Functionfunction pointer|function pointers]]s. <!-- Note that these Conway quotes do talk about C++, not C --> In the words of Conway, speaking about the very similar C++ declaration syntax:
<blockquote>
Specifying a type in C++ is made difficult by the fact that some of the components of a declaration (such as the pointer specifier) are prefix operators while others (such as the array specifier) are postfix. These declaration operators are also of varying precedence, necessitating careful bracketing to achieve the desired declaration. Furthermore, if the type ID is to apply to an identifier, this identifier ends up at somewhere between these operators, and is therefore obscured in even moderately complicated examples (see Appendix A for instance). The result is that the clarity of such declarations is greatly diminished.
Line 122:
*[[Pascal and C]]
*[[Comparison of programming languages]]
 
 
[[Category:C programming language]]