Forgot your password?
typodupeerror
Programming Software

Interview With Brian Kernighan of AWK/AMPL Fame 117

Posted by kdawson
from the series-of-pipes dept.
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.'"
This discussion has been archived. No new comments can be posted.

Interview With Brian Kernighan of AWK/AMPL Fame

Comments Filter:
  • "Need" an IDE (Score:2, Insightful)

    by betterunixthanunix (980855) on Wednesday October 07, 2009 @08:14AM (#29668431)
    If a programmer needs to use an IDE, as opposed to just using one for convenience, something is very wrong.
  • by Anonymous Coward on Wednesday October 07, 2009 @08:20AM (#29668467)
    Not the Brian Kernighan of "The C Programming Language" fame, then?
  • Re:"Need" an IDE (Score:4, Insightful)

    by OzPeter (195038) on Wednesday October 07, 2009 @08:26AM (#29668491)

    If a programmer needs to use an IDE, as opposed to just using one for convenience, something is very wrong.

    Once you cover the basic needs of food and shelter, everything after that becomes a convenience

  • Re:"Need" an IDE (Score:2, Insightful)

    by drbinofski (1650115) on Wednesday October 07, 2009 @08:30AM (#29668515)

    If a programmer needs to use an IDE, as opposed to just using one for convenience, something is very wrong.

    Once you cover the basic needs of food and shelter, everything after that becomes a convenience

    So this would be the application of Maslow's Hierachy of Needs to programming!?

  • Re:"Need" an IDE (Score:5, Insightful)

    by characterZer0 (138196) on Wednesday October 07, 2009 @08:33AM (#29668531)

    I need an IDE to do my job. I could lay out graphical forms by hand, but it would take long enough as to not be profitable.

  • Seriously (Score:4, Insightful)

    by Anonymous Coward on Wednesday October 07, 2009 @08:34AM (#29668539)

    This is frickin slashdot. Who here needs an introduction of Brian Kernighan?

  • by Anonymous Coward on Wednesday October 07, 2009 @08:34AM (#29668553)

    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.

  • Re:"Need" an IDE (Score:3, Insightful)

    by skrolle2 (844387) on Wednesday October 07, 2009 @09:17AM (#29668857)

    Bullshit, you only make this argument based on your comfort zones and your levels of trust.

    When you write code in a language that is not machine code you require some sort of text editor, you require some sort of file system for organizing your text files, and you require a compiler and a linker for making executables out of your human-readable code.You need to trust that all your tools actually do what they're supposed to do, and you need to be comfortable in that environment.

    An IDE is simply one more tool in the chain that might organize your files differently, that might automatically invoke your compiler, and that might automatically highlight and analyze your code for your benefit. It's still just tools in the chain, and you still need to trust them. An IDE does not bring anything fundamentally different.

    You only make your argument that an IDE is unnecessary because you are comfortable not using one, and because you probably don't trust them. And from that you argue that "real programmers" shouldn't use an IDE, because you don't, and you consider yourself a "real programmer".

    However, I might as well make the argument that "real programmers" don't need text editors or compilers or linkers. How can you trust your compiler, hm? No way, a programmer should be able to enter machine code directly, and that text editor and compiler should only be for convenience, not necessity. And get off my lawn!

    But that argument is of course stupid, text editors and compilers and higher level languages add to the productivity of the programmer, in the same way that IDEs add to the productivity of the programmer. Not using the best tools available is just stupid masochism.

    Then again, in 10 or 20 years there will be something on top of IDEs that make them look as primitive as a simple text editor does to Eclipse, and I'll probably be whining about the young folks and their newfangled thingies, and I won't trust them, because my comfort level is in an IDE as we know them today. Hopefully, I'll not be as old and stuck in my ways as you are though.

  • Re:"Need" an IDE (Score:5, Insightful)

    by Anonymous Coward on Wednesday October 07, 2009 @09:24AM (#29668913)

    I think you draw the line when a language "requires" an IDE so bloated that it runs slow on a Core 2 Duo machine, and makes you want to code in Notepad instead, except you can't because the language is too convoluted.

  • Re:"Need" an IDE (Score:3, Insightful)

    by Anonymous Coward on Wednesday October 07, 2009 @09:45AM (#29669161)

    Bullshit, you only make this argument based on your comfort zones and your levels of trust.

    Profanity, straw-man, pseudo-psychology.

    When you write code in a language that is not machine code you require some sort of text editor, you require some sort of file system for organizing your text files, and you require a compiler and a linker for making executables out of your human-readable code.You need to trust that all your tools actually do what they're supposed to do, and you need to be comfortable in that environment.

    Appeal to the obvious.

    An IDE does not bring anything fundamentally different.

    Opinion presented as fact.

    You only make your argument that an IDE is unnecessary because you are comfortable not using one,

    Straw man.

    and because you probably don't trust them.

    Straw man.

    And from that you argue that "real programmers" shouldn't use an IDE, because you don't, and you consider yourself a "real programmer".

    Changing the content of parent comment.

    However, I might as well make the argument that "real programmers" don't need text editors or compilers or linkers. How can you trust your compiler, hm? No way, a programmer should be able to enter machine code directly, and that text editor and compiler should only be for convenience, not necessity.

    Extending parent's position to absurdity.

    And get off my lawn!

    Ad hominem.

    But that argument is of course stupid, text editors and compilers and higher level languages add to the productivity of the programmer, in the same way that IDEs add to the productivity of the programmer. Not using the best tools available is just stupid masochism.

    Ridiculous comparison between programming languages and GUI widgets.

    Then again, in 10 or 20 years there will be something on top of IDEs that make them look as primitive as a simple text editor does to Eclipse, and I'll probably be whining about the young folks and their newfangled thingies, and I won't trust them, because my comfort level is in an IDE as we know them today.

    Unjustified extrapolation.

    Hopefully, I'll not be as old and stuck in my ways as you are though.

    Ad hominem.

  • Labview (Score:3, Insightful)

    by AliasMarlowe (1042386) on Wednesday October 07, 2009 @10:04AM (#29669393) Journal

    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.

  • by yankpop (931224) on Wednesday October 07, 2009 @10:16AM (#29669523)

    unlike K&R, which focuses just on C

    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.

  • Re:"Need" an IDE (Score:3, Insightful)

    by Angst Badger (8636) on Wednesday October 07, 2009 @10:17AM (#29669531)

    While I'm not sure what the low-level representation of the code has to do with anything -- that's a detail that ideally ought to be hidden by the IDE anyway -- I couldn't agree more. There's nothing wrong with better tools, and there are tasks that are flat-out impossible without better tools. Is there something "very wrong" if a traveler can't get from NY to LA in a single day without using an airplane? Of course not.

    I've been programming since the punch card era, and I used to think that the greatest menace to our profession was the new kid who hadn't learned his history. Thirty years and a lot of new ideas later, I still think ignorant newbies are a problem, but I've come to recognize an equal menace in ignorant oldbies who found something they liked and then stopped learning. Machismo and arrogance are just as harmful in software engineering as they are in every other area. Brian Kernighan is still picking up new languages and tools and doing so with an inquisitiveness, humility, and grace that one rarely sees in much less talented developers. Let's hope it catches on.

  • by elnyka (803306) on Wednesday October 07, 2009 @10:24AM (#29669617) Homepage

    Not the Brian Kernighan of "The C Programming Language" fame, then?

    That's exactly what I was thinking. I'm like WTF with the title of this thread (??????????)

  • Re:"Need" an IDE (Score:1, Insightful)

    by Anonymous Coward on Wednesday October 07, 2009 @10:55AM (#29669971)

    Gosh, you know a latin phrase. How about learning what it means now? Also picking up the basic concepts of sentence composition and verbal argument might be a help.

  • Re:"Need" an IDE (Score:5, Insightful)

    by Just Some Guy (3352) <kirk+slashdot@strauser.com> on Wednesday October 07, 2009 @10:55AM (#29669983) Homepage Journal

    I'm looking forward to languages that integrate completely with an IDE, and leave simple character representation (ASCII e.a.) behind.

    Oh, me too! I can't wait until diff and patch no longer work, and every version control system has to explicitly support every distinct language, and examples on Stack Overflow are files you have to download and open in an IDE before you can examine them, and Google has to learn each language's binary serialization so that it can search code snippets.

    In a time when every other type of file is moving to standardized formats, I just love the idea of my industry balkanizing into a million crap representations. That is certain to make us all more productive.

  • Re:Labview (Score:3, Insightful)

    by Doctor_Jest (688315) on Wednesday October 07, 2009 @11:23AM (#29670329)
    Having used LabVIEW for about 15 years now, I can safely say that it ain't all that bad. The diagrams are intuitive, and for what it does, it does well. Doing a Diff is as simple as using the "compare" tool in LV itself. (It even circles the differences for you...) It doesn't replace python for my text manipulation and other quick turnaround code, and LV CERTAINLY doesn't replace C for the good stuff. (I prefer Vi, but I can use emacs just as well..) It pays not to be pigeon-holed. :)

    Is it perfect? Far from it. :) It's got its quirks (what language doesn't?) But for rapid complex data analysis, I've not found much that'll beat it on speed (you could always spend the day writing Matlab, I suppose...)

    Version management requires a separate tool (we use Clearcase here), and if you're having trouble reading code diagrams, perhaps you need more instruction on how LabVIEW works. I have no trouble reading other people's VIs, understanding the inputs and outputs, and the logic flow. The data-flow paradigm is easy to dismiss as junk, but once you get a handle on it.. it is as intuitive as breathing when you're writing a VI to control a device (or 10). :) it just sounds like you don't like LabVIEW because it's graphical (I had the same prejudice when I started using it), but taking the time to master it means you can write just about anything with it... and that's the mark of a good language.
  • Re:"Need" an IDE (Score:4, Insightful)

    by Abcd1234 (188840) on Wednesday October 07, 2009 @11:36AM (#29670489) Homepage

    I think you draw the line when a language "requires" an IDE so bloated that it runs slow on a Core 2 Duo machine, and makes you want to code in Notepad instead, except you can't because the language is too convoluted.

    1) Uh, since when did the nature of a language dictate how fast/slow an IDE implementation is?
    2) Why, dear god, would a slow IDE be evidence that a language sucks?
    3) What language are you using that is "too convoluted" to use outside of an IDE? Because I've used quite a few, and I've yet to come across *any* language that "requires" an IDE.

  • Re:"Need" an IDE (Score:3, Insightful)

    by skrolle2 (844387) on Wednesday October 07, 2009 @11:46AM (#29670605)

    If you "need" to use a compiler, then you're limited to working in environments where one is available!

    An IDE is a tool just like a compiler is a tool. There really is no difference, other than the fact that some people don't like IDE's.

    I don't need a compiler to write my code, but it would be extremely time-consuming to do my work without one, so in practice I need one to be able to reach a meaningful level of productivity. In the same way I don't need an IDE write my code, but it would be extremely time-consuming to do my work without one, so in practice I need an IDE to reach a meaningful level of productivity.

    But what the GP was saying is that I'm somehow less of a programmer because I can't do my job without an IDE, but if that's the case, I'd rather have a job and produce code in my IDE, than be a "real programmer" without a job.

  • Re:"Need" an IDE (Score:5, Insightful)

    by rsborg (111459) on Wednesday October 07, 2009 @12:38PM (#29671349) Homepage

    For me, this development can't go fast enough. I'm looking forward to languages that integrate completely with an IDE, and leave simple character representation (ASCII e.a.) behind.

    That platform arrived in the 70's and it was called Smalltalk. All current mouse-based GUI systems are an offshoot of the original Smalltalk system. Wiki link [wikipedia.org]. In reference to your dream-system, things like this were pretty potent and ahead of their time:

    Smalltalk is a structurally reflective system whose structure is defined by Smalltalk-80 objects. The classes and methods that define the system are themselves objects and fully part of the system that they help define.

    This would obviously allow you to edit your IDE/OS in real-time/at runtime.

  • Re:"Need" an IDE (Score:3, Insightful)

    by DuckDodgers (541817) <keeper_of_the_wolf.yahoo@com> on Wednesday October 07, 2009 @01:47PM (#29672075)
    Most employers these days seem to favor specific experience over general skills. The chances that someone working on funky Javascript websites for a few years will find their next job writing server side C code is damned small.

    I made the move from C++ to Java four years ago. I'd like to move back, or at least out of Java, simply for some variety. But I have a family to support, and the potential employers I've talked to that don't use Java would only be willing to bring me in at about half my current salary. I'm looking to contribute to an open source project that uses some language other than Java, both for fun and to boost my resume. Until then, I'm stuck with the kind of work I do today indefinitely.
  • Re:Seriously (Score:2, Insightful)

    by Haelyn (321711) on Wednesday October 07, 2009 @02:36PM (#29672701)

    Slashdot is the only place where you can win a dick size war by having the smallest one ;)

Our informal mission is to improve the love life of operators worldwide. -- Peter Behrendt, president of Exabyte

Working...