Posted: Thu Jan 10, 2008 7:47 am
Language bashing can be fun and actually educational, but only when done with style. This didn't happen here, so I'll just throw in four remarks:
1) If you do stuff like #define begin {, you are using a C compiler, but you aren't using C. "Using" a language means using its native constructs.
I've seen many a former Java programmer who wrote, in a C++ context, stuff like next() and hasMoreElements(). Such people have not understood what it means to use a language.
2) "C is unreadable - Compare { vs. begin." You could say it's a matter of habit. You could say that begin is more like native language while { is more technical. You could, on the other hand, even argue (as MessiahAndrw did) that it actually adds to readability when the grouping of statements is done by brackets instead of special statements.
But simply throwing up a blanket statement like the above without backing it up with anything beyond your personal opinion is pretty stupid. By the way, I much prefer the bracket style over either begin / end or having whitespaces carrying meaning Python-style.
3) Anyone suggesting redefinitions of brackets, or suggesting digraphs / trigraphs merely because they are "more comfortable to type" should never step near any development team I have any say in, or hope the office is on ground level, because I'll toss him out of the next window.
4) If you want to point out defencies in a language, you should at least know it well enough to correctly know its syntax, the rationale behind it, and the current version of its standard library.
A lot of the statements made about "shortcomings" in C, most especially the posting by Craze Frog on page #1 of this thread, are simply wrong and / or malinformed.
----
That being said, C has its uses where ASM is too low-level and stuff like Basic, Java, Python et al. are too high level. As any language, it fares poorly when used for something it wasn't designed for (like for big applications, string processing etc. etc.).
1) If you do stuff like #define begin {, you are using a C compiler, but you aren't using C. "Using" a language means using its native constructs.
I've seen many a former Java programmer who wrote, in a C++ context, stuff like next() and hasMoreElements(). Such people have not understood what it means to use a language.
2) "C is unreadable - Compare { vs. begin." You could say it's a matter of habit. You could say that begin is more like native language while { is more technical. You could, on the other hand, even argue (as MessiahAndrw did) that it actually adds to readability when the grouping of statements is done by brackets instead of special statements.
But simply throwing up a blanket statement like the above without backing it up with anything beyond your personal opinion is pretty stupid. By the way, I much prefer the bracket style over either begin / end or having whitespaces carrying meaning Python-style.
3) Anyone suggesting redefinitions of brackets, or suggesting digraphs / trigraphs merely because they are "more comfortable to type" should never step near any development team I have any say in, or hope the office is on ground level, because I'll toss him out of the next window.
4) If you want to point out defencies in a language, you should at least know it well enough to correctly know its syntax, the rationale behind it, and the current version of its standard library.
A lot of the statements made about "shortcomings" in C, most especially the posting by Craze Frog on page #1 of this thread, are simply wrong and / or malinformed.
----
That being said, C has its uses where ASM is too low-level and stuff like Basic, Java, Python et al. are too high level. As any language, it fares poorly when used for something it wasn't designed for (like for big applications, string processing etc. etc.).