3 ms·
Pretty good. C is unmagical, but that doesn't keep developers from adding their own special magic... Reading Guy Steele's late-1990s defenses of Java, and obse
by etal 18y ago
Pretty good. C is unmagical, but that doesn't keep developers from adding their own special magic...
Reading Guy Steele's late-1990s defenses of Java, and observing how C and C++ actually are used in industry -- yeah, I actually am happy that Sun managed to bring Joe Application Programmer about halfway to Lisp. In general, magic features like built-in garbage collection and all the basic collections in the standard library are a Good Thing. The main problem I see is that C is designed for systems programming, where everything really should be explicit, while most of the code that actually gets written belongs at a much higher abstraction level. Still, even in higher-level languages there are edge cases that make much more sense if you understand how the situation looks from the level of C -- for example, performance profiles.
(At the self-deprecating C shop where I worked last, I was the one deleting macros, wrapping lower-level code with Swig, and pushing Python and shell scripts for new code. We used glib, too -- which removes 10% of the pain while demonstrating ever more clearly that C should not be the primary language for big userland applications.)