Why should you learn to program in C?
- It is the de facto substandard of programming languages.
- C runs on everything.
- C lets you write programs that use very few resources.
- C gives you near-total control over the system, down to the level of pushing around individual bits with your bare hands.
- C imposes very few constraints on programming style: unlike higher-level languages, C doesn't have much of an ideology. There are very few programs you can't write in C.
- Most of the programming languages people actually use (Visual Basic, perl, PHP, etc.) are executed by interpreters written in C (or C++, an extension to C).
- You will learn discipline.
- C makes it easy to shoot yourself in the foot.
- You can learn to avoid this by being careful about where you point it.
- Pain is a powerful teacher of caution.
You will fail CS323 if you don't learn C really well in CS223 (CS majors only).
On the other hand, there are many reasons why you might not want to use C later in life. It's missing a lot of features of modern program languages, including:
- A garbage collector.
- Minimal programmer-protection features like array bounds-checking.
- Non-trivial built-in data structures.
- Language support for exceptions, namespaces, object-oriented programming, etc.
For most problems where minimizing programmer time and maximizing robustness are more important than minimizing runtime, other languages are a better choice. But for CS223 we'll be using C.
If you want to read a lot of flaming about what C is or is not good for, see http://c2.com/cgi/wiki?CeeLanguage.