Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Unix Operating Systems Software Programming IT Technology

Linux Journal Interview With Brian Kernighan 333

pndiku writes "Linux Journal has an interesting interview with Brian Kernighan where he talks about AWK, AMPL and how he had nothing to do with the creation of C."
This discussion has been archived. No new comments can be posted.

Linux Journal Interview With Brian Kernighan

Comments Filter:
  • Correct AMPL link (Score:5, Informative)

    by JohnGrahamCumming ( 684871 ) * <slashdot@jgc.oERDOSrg minus math_god> on Wednesday July 30, 2003 @10:55AM (#6570658) Homepage Journal
    The story has a link to ampl.org [ampl.org], the correct link is ampl.com [ampl.com].

    John.
  • Woah (Score:5, Funny)

    by Sir Haxalot ( 693401 ) on Wednesday July 30, 2003 @10:56AM (#6570667)
    '...and how he had nothing to do with the creation of C'
    That's something to be proud of!
  • by Anonymous Coward on Wednesday July 30, 2003 @10:56AM (#6570668)
    I had nothing to do with the creation of C either!
  • by stevens ( 84346 ) on Wednesday July 30, 2003 @10:58AM (#6570681) Homepage

    ...and someone asked me about the wisdom of gets(), I'd also be pointing at Dennis Ritchie and yelling, "It was him! Burrrn him!"

    • Huh, I consider gets to be a minor (!) snafu compared to the vile mind poison of:

      int foo, *bar;

      And the way that C interprets type modifiers as right to left except that any modifiers on the far left to the first type. Gnnn.

      If I had a penny for every time I'd seen developers failing to completely understand C types because of this, I'd be handing my wet towels to Bill Gates.

      • Can you explain that?

        int foo, *bar; creates an integer named foo, and a pointer to an int named bar. Right? Or am I wrong?

        What do you mean by the order of type modifiers? Can you give an example?

        What I like is the way you can declare a variable const (ie, it's not constant and should not change) yet still assign to it and get away with merely a compiler warning.

        • by AlecC ( 512609 ) <aleccawley@gmail.com> on Wednesday July 30, 2003 @11:20AM (#6570877)
          int foo, *bar; creates an integer named foo, and a pointer to an int named bar. Right? Or am I wrong?

          So you have one declaration line which created variables of two totally disinct types. Fine for the opriginal creator, lousy for the maintainer, who sees a line declaring ints and had to do a serious double take to find that some of them are actually pointers. Abuse further as

          int foo, *bar, flash, *bang, up, *down, left, *right;

          Without reading the line again, what was the type of "up"?

          And as for the other, I can never define any sort of function pointer in one line: I always have to typedef tthe function and then have a pointer to it. While I can work out, with a manual in hand, how to do it in one line, the syntax is so unintuitive that I never do it: I will just have to reach for the manual again wh
          en I maintain it.

          The mistake I would junk is allowing enum {fred=36, bill=19, joe=333} ; Which confuses predefined constants with the classic enumeration. The cost saving of a lookup table to convert the 0, 1, 2 sequence is tiny, and the knock on effects are horrible.

          • by rot26 ( 240034 ) *
            int foo, *bar, flash, *bang, up, *down, left, *right; Without reading the line again, what was the type of "up"?


            I'm not disagreeing with your point, but the acceptable (if not great) solution is to choose your variable names more wisely.
            int Foo, *pBar, Flash, *pBang, Up, *pDown, etc;
            • by muffel ( 42979 ) on Wednesday July 30, 2003 @11:59AM (#6571196)
              int Foo, *pBar, Flash, *pBang, Up, *pDown, etc;
              yuk. I can only agree with what Linux says in "CodingStyle":
              C is a Spartan language, and so should your naming be. Unlike Modula-2 and Pascal programmers, C programmers do not use cute names like ThisVariableIsATemporaryCounter. A C programmer would call that variable "tmp", which is much easier to write, and not the least more difficult to understand.

              [...]
              Encoding the type of a function into the name (so-called Hungarian notation) is brain damaged - the compiler knows the types anyway and can check those, and it only confuses the programmer. No wonder MicroSoft makes buggy programs.
            • And what about this, then:
              int pFoo, *Bar;

              Which falsely labels pFoo as a pointer and Bar as not a pointer, when the opposite is true? How's THAT for confusing. The problem with encoding type name with the variable is that it now means there are two seperate ways where you "define" the type - the one for the compiler's benefit and the one for the human reader's benefit. Since they are totally independant of each other, they can disagree - leading to no end of confusion. I much prefer coming up with a
            • by PD ( 9577 ) *
              Hungarian notation is evil, essentially because it doesn't help the compiler, and it hinders the human programmer. The chunks of letters between two spaces are called words, and if they correspond to words we already know, we recognise them faster. In so many places we've discovered that overloading meanings into a single coded word is a bad idea (think databases). It's no fun trying to decipher a database field that looks like "A45T9923OT" into a thing called "department A4 (paper size) palate T, 99th stac
          • The problem isn't:

            int foo, *bar;

            The problem is when the C++ people come and insist you put the * by the type instead of by the variable.

            int* foo, bar;

            That line confuses the hell out of people learning the language. foo is a pointer, bar isn't. That's the big reason I always insist on putting the * by the variable name rather than by the type.
            • by smittyoneeach ( 243267 ) on Wednesday July 30, 2003 @12:04PM (#6571264) Homepage Journal
              Yeah, but the variable is just a label. The actual type in question is either int or int*.
              However, you example clearly shows where 'the C++ way' (and I'm one of these who got into coding after C++ was fairly standardized, and so never have done any 'real' C) is not the preferred answer.
              The preferred answer is: knowledge.
          • The mistake I would junk is allowing enum {fred=36, bill=19, joe=333} ; Which confuses predefined constants with the classic enumeration. The cost saving of a lookup table to convert the 0, 1, 2 sequence is tiny, and the knock on effects are horrible.

            The advantage of enums over constants is type checking by the compiler (warnings are issued if you try to assign a constant to a variable declared as an enum) and also warnings issued when you do a switch on an enum (as in switch(enum varBlah)). This might
          • by Zan Zu from Eridu ( 165657 ) on Wednesday July 30, 2003 @12:19PM (#6571405) Journal
            So what is wrong with:

            int foo, flash, up, left;
            int *bar, *bang, *down, *right;

            Or even better:

            int foo;
            int flash;
            int up;
            int left;

            int *bar;
            int *bang;
            int *down;
            int *right;

            Just because a language allows a construct doesn't mean you have to use it. This is a coding-style argument, which are of course all subjective.

            I can never define any sort of function pointer in one line: I always have to typedef tthe function and then have a pointer to it. While I can work out, with a manual in hand, how to do it in one line, the syntax is so unintuitive that I never do it: I will just have to reach for the manual again wh en I maintain it.

            This is a valid problem that has to do with operator precedence. In C the operator precedence is arranged in such a way most commonly used expressions can be written without a lot of brackets. I think this is more convenient, because normally you don't define a lot of function pointers, but you do use at least some pointer arithmetics.

            The mistake I would junk is allowing enum {fred=36, bill=19, joe=333} ; Which confuses predefined constants with the classic enumeration.

            A constant in C is not the same as an enum. Simply put constants are addressable, enum items are not. One could choose to introduce yet another construct for unaddressable constants, but this is far more practical.

            And again, you don't have to use every feature in a language just to make your code more interesting. C was designed as a language-of-choice, not as a bondage-and-discipline language. If you don't like your freedom, don't use it, but please don't start whining you've got too much freedom.

          • The mistake I would junk is allowing enum {fred=36, bill=19, joe=333}; Which confuses predefined constants with the classic enumeration. The cost saving of a lookup table to convert the 0, 1, 2 sequence is tiny, and the knock on effects are horrible.

            The cost of the lookup table is not necessarily trivial. It depends how often it's used. The C enum is good at adapting to arbitrary numbering schemes, especially if they have gaps. enum{fred=36, bill, joe};

            My only complaint is that the enum values enter t

        • His example doesn't properly illustrate the problem. the problem is when the first parameter is the pointer, as follows:
          int * foo, bar
          To the typical novice C programmer, that looks like it means "foo and bar are both of type 'int *', when in fact it means "foo is int *, while bar is just int" That is confusing. One thing I would have liked to have seen done differently is to use actual words for the different numerical formats. I'd rather see something like: hex$ff80 rather than 0xff80. This is espe
      • I find even worse the C++ idiom of:

        char* x, y

        This style is explicitly encouraged in the Stroustrup book. Now, what type is y? Easy because you're looking out for something, but in the middle of maintaining strange code it's easy to miss.

        Cheers,
        Ian

      • Huh, I consider gets to be a minor (!) snafu compared to the vile mind poison of:
        int foo, *bar;

        Why? It is perfectly possible to write a C program that contains int foo, *bar; and performs correctly for all inputs. The same is not true for a C program that calls gets.

    • by thogard ( 43403 )
      The 1st gets was based on a
      while(*buf++=getchar())
      type of loop
      Once the preprocessor got more goodies, and STDIO was cleaned up, it became:
      #define gets(x) fgets(x,BUFSIZ,stdin)
      So in the days when there were only 100 or so Unix sites you could declare strings with
      char buf[BUFSIZ];
      and you couldn't overflow it.
  • by Anonymous Coward on Wednesday July 30, 2003 @10:59AM (#6570689)
    Isn't SCO already suing Brian, both for being involved in a Linux OS, and because "C" happens to be found in the middle of SCO's trademark name?
  • From the article: "I use Solaris at Princeton, Irix when I visit Bell Labs, and FreeBSD on my Mac; I also have Cygwin on several PCs so that standard tools are readily available."

    That's odd... How useable is the FreeBSD PPC port nowadays? Last I heard it only booted and nothing much more. Isn't he confusing FreeBSD and NetBSD? Or is he referring to the FreeBSD userland in OS X/Darwin?

    I love FreeBSD though, I'd love to run it on my iMac instead of OS/X.

    • Isn't he confusing FreeBSD and NetBSD? Or is he referring to the FreeBSD userland in OS X/Darwin?

      As he metioned that most of the free unices these days are alike, I'm guessing that he's referring to the FreeBSD userland.

      I love FreeBSD though, I'd love to run it on my iMac instead of OS/X.

      Mac OS X runs pretty well on the G4 iMac that I use. Apple's flavor of X11 [apple.com] runs well enough for me, and there's plenty of OSS goodies, links, and documentation [apple.com] to keep most folks happy.

      It is kinda interesting that h
    • by pohl ( 872 )
      Can't speak for Mr. Ritchie, of course, but it could be that he was refering to the FreeBSD 4.4 built into MacOS X [apple.com]
      • If you mean the "FreeBSD" userspace, then maybe, but I've yet to see anybody argue convincingly that MacOS X is actually "freebsd with stuff on top". It has a different kernel, different IO layer, the FreeBSD de-facto graphics layer is X11 not Quartz, and so on. Calling MacOS FreeBSD is like calling Windows with Cygwin Linux. I think this guy knows the difference ;)
        • by pohl ( 872 )
          It's true that there is the Mach kernel involved (here's a simplified cake-layer diagram [arstechnica.com]), but from the context that Ritchie provides ("The way I use them, which is as a casual programmer, it doesn't matter--they are all the same...") none of that is really relevant. The APIs that he expects from a unix are there in the FreeBSD 4.4 code layer. (X11 is there too [apple.com], by the way). He would have to be using the word "FreeBSD" very pedantically to mean that it's FreeBSD/PPC and not the FreeBSD 4.4 in OSX. It d
  • expressive (Score:4, Insightful)

    by rnd() ( 118781 ) on Wednesday July 30, 2003 @11:10AM (#6570777) Homepage
    He mentions that he considers C to be the best combination of expressiveness and efficiency. I wonder, fellow Slashdotters, what you think the most expressive language is (efficiency aside)?
    • by garcia ( 6573 ) * on Wednesday July 30, 2003 @11:20AM (#6570876)
      vuglar language.

      Flash [littlemikey.com] video of Monty Python's famous skit ;)
    • by ryants ( 310088 ) on Wednesday July 30, 2003 @11:20AM (#6570880)
      what you think the most expressive language is (efficiency aside)?
      Chinese. In no other language can one syllable mean anything from "chicken" to "the interlocking fates of all beings in the celestial orb".

      And let's not forget crisitunity.

      • There was a news item [bbc.co.uk] a month ago about how speaking Chinese requires the use of both sides of the brain, whereas english only use one side.

        I'm actually trying to learn chinese and I'm having a rather difficult time of it. Damn intonation....
      • Re:expressive (Score:3, Interesting)

        by DunbarTheInept ( 764 )
        But if you don't leave some audio clues *out* of the literal meaning of the language, it is actually less expressive since you can't communicate any 'tone' to what you say. (For example, how do you express "this thing I am saying is sarcastic" or "This thing I am saying makes me happy" in a language where you cannot change the tone of your voice without having it end up being a totally different word?)
    • Re:expressive (Score:3, Insightful)

      by GnuVince ( 623231 )
      Lisp and Smalltalk are two VERY good languages at being very expressive. And both are old enough to have had enough research that they are now as fast as C++.
      • Re:expressive (Score:3, Insightful)

        by turgid ( 580780 )
        And both are old enough to have had enough research that they are now as fast as C++.
        I suppose that all depends of the compilers and interpreters involved.
      • C++ can get pretty damn these days, but yeah, I'd throw Lisp, Smalltalk, and for totally different reasons, APL into the pool.
        • "C++ can get pretty damn these days"

          I of course meant "pretty damn expressive", although many would argue the original version was correct. ;-)
    • Re:expressive (Score:4, Insightful)

      by leoboiko ( 462141 ) <leoboikoNO@SPAMgmail.com> on Wednesday July 30, 2003 @11:31AM (#6570976) Homepage
      Lisp [paulgraham.com]. See "Succinctness is Power" [paulgraham.com].
    • Re:expressive (Score:3, Insightful)

      Well, define "expressive" first, then maybe people will be able to give better answers....
    • Re:expressive (Score:4, Interesting)

      by swordgeek ( 112599 ) on Wednesday July 30, 2003 @11:45AM (#6571076) Journal
      Forth.

      After years of basic, fortran, 6502 assembler, pascal, and probably something else that I've forgotten, forth was magical. Still is.
    • Re:expressive (Score:5, Insightful)

      by jfengel ( 409917 ) on Wednesday July 30, 2003 @12:07PM (#6571298) Homepage Journal
      You've got to be careful with your terminology here. All languages are equally expressive in the sense that anything you compute in one can be written in another. (At least in terms of computability. Access to hardware is a different matter.)

      In your context, you might mean "expressive" in the sense of "saying as much in as few words as possible." Since C is a typed languge with explicit memory management, it's going to be more verbose than an untyped garbage-collecting language like Lisp or Perl. (Well, they have very limited typing, especially once you start adding constructs on top of the core language.)

      Or you could mean "expressive" in exactly the opposite sense, where you have to be more "expressive" about the types of things. In this sense C is far less expressive than strongly typed languages like Haskell or even C++/Java.

      Or you could simply be referring to the verbosity of the language, where COBOL holds the title of most ugly language and APL is without a doubt the shortest. (APL is indistinguishable from line noise.)

      In the end the value of a "language" has less to do with the core language and much to do with the libraries for hardware access (memory, screen, disk, network) and compatibility with common features provided by the OS (clipboard, windowing, etc.)

      So you pick your language for a host of reasons few of which have anything to do with a core "expressiveness".
    • Prolog.
    • Mozart and Curry.
    • Re:expressive (Score:3, Interesting)

      In the Turing sense, all languages have equivalent expressiveness.

      In the Kolmogorov sense, the "complexity" of a program differs between two languages by at most a bounded constant (the length of the interpreter of one language in the other).

      But in the real world, I think K (http://kx.com) beats any other language in terseness (and is speedwise competitive with C as well). Rebol is also amazingly terse, even if not as fast.
  • He teaches VB! (Score:2, Informative)

    by Anonymous Coward
    Brian K is a really nice guy, it seemed to me. Another gift of the city of Toronto and the University of Toronto to humanity! I heard him talk at UofT a year or two ago. It seems he teaches Visual Basic in his programming course at Princeton. I'm a C nut so that came as a shock to me. Still, I really admire the guy.
    • He's teaching it to people who don't know how to program I would imagine. Can you imagine trying to explain C for the first time to non-cs people? Gads...he must have done it for
      his sanity!

      sri
    • by $rtbl_this ( 584653 ) on Wednesday July 30, 2003 @11:51AM (#6571123)

      I'm a C nut...

      Just be glad you're not dyslexic as well. :)

    • by Merk ( 25521 )

      Ugh!

      Is there a more vile language you can teach to newbies? I guess it must be meant to weed out the people who don't really want to program.

      There are so many better choices than VB for teaching, if you really want to show people a GUI, try Java. If you just want something that is clean and easy to get started with, try Ruby or even Python. But VB? It has awful namespace problems, an absurd mishmash of methods vs. functions vs. subroutines, etc. Yuck.

      Isn't it odd that I'd recommend to people

      • I think you're missing the point that VB is very simple to create simple input -> processing -> output applications. BASIC is also quite tolerant of of syntax and declaration errors which avoids heavy groans when something upchucks because a variable isn't properly declared. Not to mention that it also has the same syntax (which is probably the root of the problems that you have mentioned) as GW-BASIC that has been available for 20+ Years.

        With the Visual Studio front end, learning to create (and de
      • by Serf ( 11805 ) on Wednesday July 30, 2003 @12:42PM (#6571612)
        Isn't it odd that I'd recommend to people who want to become programmers to avoid taking Brian Kerningham's class?

        I know people who have taken his classes. I live with one of them (a CS type), and used to live with another (a non-CS type). All of them have nothing but good things to say about Kernighan's classes.

        The class in which he teaches VB is oriented towards non-CS types, and, from what I saw of my former roommate's coursework, I can't imagine a better course to give people who are basically computer illiterate SOME idea of just what goes on inside the magic box, and some familiarity with all the issues surrounding information technology (legal, ethical, etc. ... like what you see on Slashdot every day). It's not just a programming course -- it covers pretty much every aspect of the field of computing and its related subjects, though in somewhat limited depth.

        Complaining about VB's namespace problems in this context is like bitching about giving a toddler a tricycle because he'll never win the Tour de France on anything with three wheels. My former roommate had no problems with his programming assignments that he wouldn't have had in any other language, and, judging from what I've seen of people trying to pick up C and Java for the first time, VB is a far better choice of language for a course that aims to give people a flavor of what computers are all about.
    • by __past__ ( 542467 ) on Wednesday July 30, 2003 @12:42PM (#6571616)
      It seems he teaches Visual Basic in his programming course at Princeton. I'm a C nut so that came as a shock to me.
      Well, he certainly is in good company [ibiblio.org].
  • by civilengineer ( 669209 ) on Wednesday July 30, 2003 @11:19AM (#6570868) Homepage Journal
    He says " I wound up at Princeton" and "through good luck I got a job at Project MAC at MIT" and "probably because of the MIT experience, I got a job at Bell Labs in the Computing Science Research Center". Princeton, MIT, Bell Labs?? not easy!
  • by Anonymous Coward
    I hate it when somebody smart that i respect in one domain, says something stupid about another domain:

    Like many people, I have mixed feelings about Microsoft. They have done much good for the world, producing a common environment that has enabled a lot of creative people to build new software and hardware and sell it at reasonable prices. Microsoft's work has made computing accessible to a huge population who would otherwise not be able to use computers.

    listen folks: Microsoft did not bring computers t

    • While your argument may be beginning to hold some weight now, I find your position wrong for most of the history of computers. Historical Microsoft has been on the low-end of the price scale. In fact this is why they are scrambling against Linux, because they've usually been able to beat competitors by undercutting them in price (often destroying markets at the same time). I think you can argue that Microsoft has stifled innovation, but I don't think you can argue that they charge unreasonably high price
    • by DunbarTheInept ( 764 ) on Wednesday July 30, 2003 @01:19PM (#6571935) Homepage
      Microsoft didn't bring computing to the masses, nor did it hinder it, the HARDWARE platform it was lucky enough to be attached to brought computing to the masses. The openness of the PC hardware made it more affordable than alternatives, and made the hobbiests like it for tinkering, giving the best of both worlds, attracting people BOTH from the 'I want to tinker' camp, and from the 'I want it cheap and don't care about the details' camp. Remember the 80's? The Mac was universally hated by the very same people who today talk about how cool OS/X is for being BSD based. That's because in the '80s the marketplace was driven by people who were willing to learn new software and new languages without even blinking an eye, and so the computer buying decision was driven more by the hardware than the OS that sits on top of it.

      Think about when PC's were becoming popular in the '80s with thousands of titles available for Microsoft DOS. The fact that the OS was DOS was largely irrelevant to those packages. They took over the whole machine when they ran and the OS's job was over once the program was running. So people didn't care that DOS was crap. What mattered is that at a time when the hardware wasn't fast enough to make a real OS feel "snappy", DOS could be shoved aside so your program had the whole CPU and memory to itself. It worked because at the time you couldn't spare the memory and time for a "real" OS.

      DOS was a success because it was attached to PC's, not because of any features of DOS itself.

    • by RatBastard ( 949 )
      While MS is overpriced and abusive today, historically they did lower the bar for entrance into the computer realm. Befor MS-DOS and Windows, every brand of computer used its own OS (if you want to consider ROM-BASIC an OS) and software had to be rewritten for each platform.

      With MS having the forsight and balls to reserve the ownership of MS-DOS and grant IBM a license they opened the doot to one OS running on machines manufactured by multiple venders.

      Consider that when your average PC cost $4,000.00 (US
  • ...computers are too hard to use and too hard to program.

    Sure, hiding the details is a Good Thing.
    I think there is a counterargument, though; y'all just can't express differential calculus easily in arithmetic terms.
    The genius of MS is in targeting the lowest common denominator. Why does Joe User care about the difference between physical and logical partitions? Redmond has the a:\ b:\ c:\ market firmly in hand.
    The utopian vision of 'source code for all my people' will never occur; they can't be bothe

    • The genius of MS is in targeting the lowest common denominator.

      yeah, but that denominator keeps going lower. To what are they going to change "My Network Places" (shudder) that's dumber-down than THAT?

  • by smarthippy ( 528114 ) on Wednesday July 30, 2003 @11:55AM (#6571162)
    nothing to do with the creation of C? then why am i supposed to be using his coding style?! hrmph. i'll put my {}'s where i damn well please, now that the ugly truth has come to light.
    main() {

    for(;;) {
    printf("suck it!"); } }
  • by Rinikusu ( 28164 ) on Wednesday July 30, 2003 @11:57AM (#6571179)
    Let's see:
    1) He mentions he writes interfaces for.. Visual Basic
    2) He mentions he writes code in Java
    3) He mentions Microsoft in a positive light
    4) He admits to owning a Mac

    Fuck, man, the only thing he didn't do is say "vi" or "emacs".

    Does this mean that, in reality, all of the contention regarding languages, operating systems, and idealogies is completely artificial and that we should really just use what we like instead of jumping on a particular bandwagon and denying the legitimacy of anything else?

    Man, I think I want to go back to bed.

    • by rebelcool ( 247749 ) on Wednesday July 30, 2003 @12:01PM (#6571221)
      Very practical. He wants to use the computer as a tool. Not a propaganda platform. Windows is fine and dandy for some applications, Unix for others. It all depends on what you're trying to do.
    • by machine of god ( 569301 ) on Wednesday July 30, 2003 @12:22PM (#6571432)
      You read the article didn't you. DIDN'T YOU. Never do that again.

      (It led you to assume that the rest of slashdot will.)

    • In The Power of Myth [amazon.com], Joseph Campbell talks about how among pretty much all religions, the laity & clergy get caught up in how their religion is better than all the others (the classical religious wars). However, most of these religions have a mystical wing -- monks, yogis, etc -- and in general the members of these groups are much more willing to reach out to the other groups and not try to paint things in terms of "us vs. them".

      Kernighan sounds like he applies this kind of perspective to computers. From what I've read, for all the flame wars about Perl vs. Python, Vi vs. Emacs, *NIX vs. Windows, etc, the "monks" in these groups seem to be much more focused on the commonalities among systems rather than the differences between one and another. Kernighan talks about all the languages and operating systems he uses; Larry Wall gleefully puts the best of every language he can get his paws on into Perl; Guido van Rossum doesn't seem to object to letting a future version of Python run on top of Perl6's Parrot runtime engine; Craig Mundie has no fear preaching the Microsoft word at the Open Source Conference; and Tim O'Reilly tells people that he gets along well with all the people he has met at Microsoft.

      I think that's wisdom.

  • by NearlyHeadless ( 110901 ) on Wednesday July 30, 2003 @11:57AM (#6571183)
    Here's an HTML version of Why Pascal is Not My Favorite Programming Language [lysator.liu.se]. There's a Postscript version on Kernighan's website [bell-labs.com]
  • these guys (Score:5, Interesting)

    by Anonymous Coward on Wednesday July 30, 2003 @12:24PM (#6571444)
    My aunt used to work with these guys at the Labs here in NJ quite often. Shes dieing now and we sit for hours and talk about how she used to program in C and how much she loved unix. Hours on end of stories about these guys and different projects. I work with a guy now who worked with her, lots of stories from him as well. Awesome stuff, true geniuses. Gotta thank these guys for changing the world.

    -- chris

    http://elusive.filetap.com
  • BK: "Like many people, I have mixed feelings about Microsoft. They have done much good for the world, producing a common environment that has enabled a lot of creative people to build new software and hardware and sell it at reasonable prices. Microsoft's work has made computing accessible to a huge population who would otherwise not be able to use computers. At the same time, I am unhappy with some of their products. An operating system should not crash very often, if at all, and the sheer complexity of b
    • I'm sure most programmers, deep down inside, feel the same way. Windows is the undisputed king of the desktops. It is just easier to use Windows than most other OSes. No one can deny its role in popularizing computers. What drove some of us nuts is that it crashed a lot and some of the practices of MS. With Windows 2000, the first complain really quiet down a lot.
      • I, Parasite (Score:3, Interesting)

        I'm sure most programmers, deep down inside, feel the same way. Windows is the undisputed king of the desktops. It is just easier to use Windows than most other OSes. No one can deny its role in popularizing computers.

        All True.

        What's more, I make a decent living off of Microsoft's products -- and like a good parasite, I don't actually harm my host.
      • It is just easier to use Windows than most other OSes.

        Correction. It is just easier to use Windows software under Windows than most other OSes. But beyond that it's actually pretty mediocre.

        Compare the individual components of Windows to their counterparts in the UNIX world. Compare *just* the window manager part (not the desktop) to Blackbox. Blackbox is easier to use. You can easily control the z-order of windows, snap to window or screen borders, etc., making it very easy to organize your windows on t
  • by Comatose51 ( 687974 ) on Wednesday July 30, 2003 @12:46PM (#6571649) Homepage
    It should read, "Conversation with God (or a God)".

    Jokes aside, the names Kernighan and Ritchie are firmly planted in the minds of most CS majors. We have "celebrities" like Torvald or Stallman but at the end of the day, professors always say "Read page XXX in Kernighan and Ritchie", which we always proceeds to ignore until our code doesn't work. Then once again, we reach for the pretty little white book and thank someone or something for the well written proses. Unlike many other CS books, K&R seem to have cover most of the possible contingencies a fledgling CS major might have. I hate books that tell you how to do things only in one way, their way. K&R was written so well that I didn't have to.
  • There are only two real problems in computing: computers are too hard to use and too hard to program. We've made enormous progress on both of these over the past fifty years, but they are still the real problems. And I predict they still will be problems 50 years from now.

    Interesting. So in 50 years, we won't have a Star-Trek like voice interface for our computers? Damn.

    80-year-old LMCBoy: "computer, make me a ham sandwich"

    Mycroft 2: "Poof! You are a ham sandwich." (mechanical laughter)

    80yoL: "In my
  • by kbeer ( 21963 ) <slashdot AT kenbeer DOT info> on Wednesday July 30, 2003 @01:09PM (#6571847)
    In the interview KR said:

    There are only two real problems in computing: computers are too hard to use and too hard to program.

    Does everyone buy this? What about issues of availability and maintainability? How about:

    There are three real problems in computing: computers are too hard to use, too hard to program and too hard to administer.

  • by afabbro ( 33948 ) on Wednesday July 30, 2003 @03:06PM (#6572996) Homepage
    "What were the AWK and AMPL languages designed for?"

    "Brian, what do you think of UNIX? Is it a good and reliable platform for development?"

    "Is it true that you suggested the name "UNIX" for the long ago OS, Multics? What does that word mean?"

    "What are your hobbies? Reading? Sports?"

    "Could you say that you love computers (IT)?"


    Etc. What a waste of a good man's time.

    Nearly all the interview questions are either (a) things widely available in the literature (as in FAQs, not digging research - did the interviewer really not know what AWK stood for? If so, shame on him), or (b) idiotic questions that I might ask if I was interviewing a 6th grader.

    If you can't think of anything interesting to ask your subject, don't bother with the interview!

An Ada exception is when a routine gets in trouble and says 'Beam me up, Scotty'.

Working...