Quote:
Originally posted by AidanII
C is a little odd, in that it provides many things to help a programmer on their way, at the same time as offering many places to fall over. It's far too sloppy with many things, conversions, initalization and others... After all, just *how* many bugs are down to null pointers?
That's what I mean by unstructured - it allows the programmer to be as sloppy as they please.
AidanII |
That’s a fair statement. I prefer the term flexible to unstructured, as it's possible to right very structured code in C, depending on programming style.
C is very flexible, which is why it's not particularly good as a training language ... it allows people to get into bad practices (taking short cuts, not thinking algorithms through, etc.) too early.
That being said, its flexibility is also a great strength. It means that you can take a short cut in the code, when the speed/memory requires it. It allows you to play with pointers and variables alike, which is close to machine code, and means that you can manipulate data structures in ways that you can't even dream about in many other high level languages. On a slightly biased note, I also find C one of the most cosmetically easy languages to read.
It has a wealth of libraries and UNIX (and flavours of) users probably know that all the typical methods in these libraries are documented within the man pages. Thus making UNIX a lovely platform to develop C upon.
The only language that I use which is probably more flexible is Perl. Some of the things that can be coded in Perl are scary, but cool.
Motorola "6809" and "6811" are the only two code sets that I have played with. I liked them. Don't know how to go about programming machine code for Windows platforms ... that might be a challenge. Anyone know where I should start?