Interview With Brian Kernighan of AWK/AMPL Fame
Reader oranghutan brings us another in Computerworld's series of interviews with icons of the programming world, this one with Brian Kernighan, who helped popularize C with his book (co-written with the creator Dennis Ritchie) The C Programming Language, and contributed to the development of AWK and AMPL. In the past we've chewed over a few other interviews in this series, including those with Martin Odersky on Scala and Larry Wall on perl. "In this interview, Brian Kernighan shares his tips for up-and-coming programmers and his thoughts on Ruby, Perl, and Java. He also discusses whether the classic book The Practice of Programming, co-written with Rob Pike, needs an update. He highlights Bill and Melinda Gates as two people doing great things for the world enabled through computer science. Some quotes: 'A typical programmer today spends a lot of time just trying to figure out what methods to call from some giant package and probably needs some kind of IDE like Eclipse or XCode to fill in the gaps. There are more languages in regular use and programs are often distributed combinations of multiple languages. All of these facts complicate life, though it's possible to build quite amazing systems quickly when everything goes right.' 'Every language teaches you something, so learning a language is never wasted, especially if it's different in more than just syntactic trivia.'"
If a programmer needs to use an IDE, as opposed to just using one for convenience, something is very wrong.
Palm trees and 8
Not the Brian Kernighan of "The C Programming Language" fame, then?
This is frickin slashdot. Who here needs an introduction of Brian Kernighan?
If you're writing unmaintainable code that never gets refactored, with single letter variable names and endless ugly hacks to fix endless bugs, many due to earlier design descisions that can't be fixed because you can't easily refactor, then yes, you're probably correct.
But I'm a good developer, none of those things apply to my code, and I find development in a full featured IDE infinitely more productive.
I'm looking forward to languages that integrate completely with an IDE
Try Labview. And weep.
and leave simple character representation (ASCII e.a.) behind.
That's Labview - no plaintext representation at all. You'll be begging for one soon enough, with or without an IDE, unless your programs are at the "hello world" level of complexity. Some of the reasons are specific to Labview's failings. For instance, version management and project organization exist only as pathetic useless pretences, which obstruct rather than assist. Other reasons are intrinsic to the non-character representation. Try doing a diff between two Labview files, or even try getting a rough estimate of the amount of difference between them; sorry, no can do.
There may be a non-character-based program representation (useful for developing and maintaining non-trivial projects) in the future, but I fear we'll all be retired or expired by then.
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
If you just skim through K&R, then yes, I can see why you'd think it was 'just on C'. But if you actually sit down and work through the problems, you'll find a lot more depth. Of course, it's all C code, but some of those exercises are deceptively challenging, and they really helped me to move beyond the mechanics of the language and start thinking about coding in a more sophisticated way.
The other books mentioned provide important insights into different aspects of programming, but to describe K&R as just a reference book for a single language is a serious understatement. Maybe the thought processes involved in solving those problems are second-nature to experienced programmers, but it was a real mind-opening experience for me, something I've not experienced with other "language references".
yp.