Slashdot Mirror


Linux Journal Interview With Brian Kernighan

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."

12 of 333 comments (clear)

  1. expressive by rnd() · · Score: 3, Insightful

    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)?

    --

    Amazing magic tricks

    1. Re:expressive by leoboiko · · Score: 3, Insightful
      --
      Prescriptive grammar:linguistics :: alchemy:chemistry. Stop being a nazi and learn some science.
    2. Re:expressive by jfengel · · Score: 5, Insightful

      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".

  2. Great people are so humble! by civilengineer · · Score: 5, Insightful

    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!

    --

    New year Resolution: Don't change sig this year
  3. Re:he's dead wrong about MS by SDPlaya · · Score: 3, Insightful

    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 prices. Furthermore, outside of the OS, most other pieces of software are easy to migrate away from. If Microsoft's prices were "unreasonably" high, don't you think someone else would have taken over the Office Suite market by now?

  4. totally. I like this guy. by rebelcool · · Score: 5, Insightful

    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.

    --

    -

  5. Re:If I were Brian... by smittyoneeach · · Score: 3, Insightful

    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.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  6. Re:If I were Brian... by Zan+Zu+from+Eridu · · Score: 5, Insightful
    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.

  7. Slashdot should retitle the article by Comatose51 · · Score: 4, Insightful

    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.

    --
    EvilCON - Made Famous by /.
  8. Re:he's dead wrong about MS by DunbarTheInept · · Score: 3, Insightful

    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.

    --

    Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  9. Re:Points in article: by sdowney · · Score: 3, Insightful
    He also co-authored The Elements of Programming Style with P.J.Plauger, and early classic on how, and how not, to program.

    The fact that the language under critque was FORTRAN, unfortunately today, obscures the underlying truths they were discussing.

  10. Re:Holy shit, batman, where's your flame-proof sui by babbage · · Score: 3, Insightful
    In The Power of Myth, 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.