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.'"
There are a few books I recommend to kids just starting out in the industry.
Code Complete
Writing Solid Code
Programming Pearls
and The Practice of Programming
Even old stalwarts like Kernighan's The C Programming Language aren't as useful in the longterm as the 4 books above are.
Anyone who wants to make the jump from "code monkey" to professional should really take the time to read the books.
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?
Cries of "We're not worthy, We're not worthy" were heard.
My ism, it's full of beliefs.
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 am most impressed with his fine work writing the first known 'Hello, world!' program.
Reply to That ||
Bring me a new interview with Alan Turing and maybe that would peak my interest
Now that could be quite the challenge. I hear he's not granting many interviews lately.
Reply to That ||
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
By now is an entire desktop
I personally use Emacs, with syntax highlighting and various other modes, because it is helpful and speeds up the process of writing code. There have been times, however, where I have not been able to use Emacs for some reason (e.g. I had to write some code on a system that did not have it installed). Once I was reduced to using a line editor to write some code (yes, in the 21st century), and while I hope to never experience such a situation again, I was able to deal with it and get the work done.
All too often I see programmers who are completely helpless when they cannot use their favorite IDE, which is the problem I was alluding to. An IDE is a great tool that can save a lot of time, but when it gets to the point where people cannot figure out how to run a Java program without starting up Eclipse, something very bad is going on.
Palm trees and 8
Oh please. Sure, and there is something very wrong if VLSI designers need CAD software as opposed to it being convenient.
Now I know why some "enterprise" level software leaves something to be desired. It was probably written by someone who thought vi is all you need.
Curious, do you spend most of your time dealing with accidental complexity?
It has already been stated everywhere in this discussion that the real way to program is by using cables and switches.
Be that as it may, you still receive the same amount of masochism points for not numbering the punch cards, and then dropping them in the hallway later on.
Reply to That ||
I argue that many standard class libraries (especially Java) are too complex. There is too much inheritance going on at the expense of ease-of-use.