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."
← Back to Stories (view on slashdot.org)
The story has a link to ampl.org, the correct link is ampl.com.
John.
K&R is no more. Now we just have R. ;)
'...and how he had nothing to do with the creation of C'
That's something to be proud of!
I have over 70 freaks, do you?
I had nothing to do with the creation of C either!
BWK is teh most amazing people of our times.
Read his book on programming practices that he did with Rob Pike. Its best book evar.
...and someone asked me about the wisdom of gets(), I'd also be pointing at Dennis Ritchie and yelling, "It was him! Burrrn him!"
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?
A likely story. Uh huh. Sure. No, I believe him.
Mix the failings of Usenet with the shortcomings of the World Wide Web and the result is slashdot.
1: but the graphical interfaces are more responsive on Windows than through an X interface.
Isnt that what we've been saying all this time?
2: Yes, long ago. Multics was an acronym for something like Multiplexed Information and Computing Service, and it was big and complicated because it had many of everything.
Are there still any usable capibility systems out there? My friend found an old PrimeOS box with everything. Yet to get it running, as damn near every port is the same (spitz n sparken if you're wrong).
3: C is perhaps the best balance of expressiveness and efficiency that has ever been seen in programming languages.
If anything, LISP is better. If you want 3d virtual worlds which events trigger other events on a time scale, it's HELL to do in C. Lisp allows that kind of control, with the inclusion of CPU hits (in respect to C).
4: And modern systems are so messy and complicated that they are more frustrating than rewarding most of the time.
After reading that statement, Why'd they interview him? The whole idea of programming is to reduce or STOP that result. Programmers make it easier on users (well, supposed to)...
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.
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
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.
If you liked the book you might love the operating system
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
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
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 runs well enough for me, and there's plenty of OSS goodies, links, and documentation to keep most folks happy.
It is kinda interesting that he mentions using SGI IRIX at Bell Labs... they don't seem to be the sort of shop that needs gobs of graphics pipes, hundreds of CPUs, or mountains of IO. Though I guess there are plenty of people that like IRIX simply for all of the performance tools that are part of the development environment. (An environment that's too anal to easily compile most open source software... but that's another rant for another time......)
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 to the masses. Computers were well on their way to the masses through the fine works of the many many other people in the computer industry.
Microsoft has held computers back from the masses. Monopolies charge unreasonably high prices. High prices stop people from buying things. A grindingly competitive software industry would have delivered many more computers to many more people and businesses.
Microsoft has harmed us all, and the world economy, immeasureably, by much more than the money they've pocketed for themselves.
stick to CS, Brian, it's something you're good at.
Python.
Oh, you meant that joke whitespace language? That isn't Python? Oh right.
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 bothered (as a whole) to vote, much less think. And we love the sheep nonetheless.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
Not to mention that Unix was written in C, and since SCO own's everything Unix, they own everything C, which was helped in its propagation by Brian's book with Dennis, both of whom will be the next victims of "ze vicious leetigashun" for illegally spreading word of SCO's property, and allowing people to come up with the idea of derivative works, since C is now owned by SCO, so is everything written in said language...
Somebody shoot me. Please.
One of my favorite Kernighan quotes of all time:
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
... since C is now owned by SCO, so is everything written in said language
That explains why SCO isn't going after Microsoft.
Windows being written in VB and all.
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.
If you were me, you'd be good lookin'. - six string samurai
Here's an HTML version of Why Pascal is Not My Favorite Programming Language. There's a Postscript version on Kernighan's website
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.
-
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 who want to become programmers to avoid taking Brian Kerningham's class?
Like, for example, calling exit() with the non-ANSI argument -1, instead of EXIT_FAILURE
:)
I am only half joking
Never assume such things cannot happen. Actually, Deutsche Telekom (Germany's telecommunications monopolist) is sueing a small company (not even a competitor) for usage of the letter T.
They have been unsuccessful in sueing companies for usage of the color magenta in the past, though.
Umm just one quick question you say that you're running Linux on a Mac; there is no version of BBedit that runs on Linux. Unless you are doing something strange like running it through MOL
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.)
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 both using and programming the Windows environment is daunting."
-kgj
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 debug) simple applications is probably most efficiently done with VB. The color coding of statements is nice. When the student moves on to more complex tasks (say data base access and hashing), then something like C or Java would be preferable.
I'm not a MS proponent in any way, I just agree with Brian's choice of tools for introducing computers to students. As they get more experienced and knowledgeable, I would expect they would move on.
myke
Mimetics Inc. Twitter
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 the same namespace as variables. They should only show up as symbols when comparing or assigning a variable of that enum type. Then there should be a qualifying mechanism to reach them from the outside, like x = person::bill;
Isn't it odd that I'd recommend to people who want to become programmers to avoid taking Brian Kerningham's class?
... 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.
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.
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.
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
Yes, that's slashdot. Someone corrects a mistake by the editors, but because someone else did the same a couple of seconds earlier, he's redundant.
I could care less, but not without a lobotomy
Monopolists use low prices to drive competitors out of businiess,
... because they have to pay their programmers? Just a wild guess there.
Yes. So does pretty much any successful business. If you provide better value than your competitors, you'll eventually drive them out of business if they don't adapt. If you don't provide better value, you'll eventually be driven out of business. You don't have to be a monopoly.
how come OSes and office suites from Microsoft cost more than they ever have?
Um
But back to the original point -- of course Microsoft brought computing to the masses. The evidence is all around you, on your friends' computers, on your co-workers' computers, on the vast majority of the PCs in the world. Would it have been possible for another company to accomplish the same task? Maybe, but (and here's what matters) -- that didn't happen. It was Microsoft that brought computing to the people, and that's the way it is.
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.
EvilCON - Made Famous by
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.
-kgj
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 day, computers were obedient! They had respect for users. You mechs today with your AI and your hoodahey, I tell ya..." (types 'rmmod ai_humor.o')
Liberal (adj.): Free from bigotry; open to progress; tolerant of others.
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.
what does that mean?
Yeah, me too, and I've been doing C/C++ since 1985.
All the style manuals say to limit yourself to one decl per line, and many say to prefer "int* foo" to "int *foo". Sometimes I think we'd be better off if the language enforced both.
The cake is a pie
Not only "Redundant", but also "Overrated". The latter from a really chickenshit moderator. And where were the subscribers on this? Twenty minutes of advance notice, and no one even tried the links? What a useless bunch of zombies (either the subscribers or the editors who ignored them). "Improve the stories by letting subscribers see them early" - another "great" plan bites it.
Pascal may be dead, but in Windows-land at any rate its child, Object Pascal lives on. And if you compare how Object Pascal evolved from Pascal to how C++ evolved from C, Pascal wins every time.
The other neat thing (from one perspective, bad from another) is that Pascal was essentially abandoned to Borland. Lacking the need to standardise it, they added many many useful abilities into the language that make it an ideal Win32 workhorse. Unlike MSVC++, when it would have led to better integration with Windows Borland extended it, for instance IDispatch is integrated into the language seamlessly, so you can do:
var WordDocument :OleVariant;
begin
WordDocument := CreateOleObject("Word.Document");
WordDocument.SomeMethod();
end;
ie in order to support COM instead of messy cludges that make you do things manually support for late bound object methods were added to the language.
Of course that means you were essentially tied to one companies compiler, but nonetheless that doesn't make the language any less nice.
CAn'T CompreHend SARcaSm?
For an interview where Mr. Kernighan did mention emacs, see here...
Actually, quite an interesting read too.
I would argue administer==use
Or perhaps more accurately:
If it was easy to use, we wouldn't have to administer it. My microwave has a 'puter in it. It's easy to use, and I don't have to administer it.
This post is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.
He is also very humble to admit that he is not an expert in anything now. Think of how much anxiety today's geeks have when encountered with new things they don't understand.
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) (not the high-end systems, average desktop systems), MS-DOS was only around $120.00 - $150.00 a copy. Compaired to the multi-thousand dollar cost of even the cheapest Unix systems of the day DOS was a bargain! Sure, it lacked a lot of what makes Unix so great, but it had enough to let people run their entire businesses on their desktops.
Remember, before Linux came into being, Unix (and it's clones, dirivatives, etc...) was an expensive and very closed environment.
Boobies never hurt anyone. - Sherry Glaser.
Timeo idiotikOS et dona ferentes
"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!
Advice: on VPS providers
LJ: You called C "the best balance of expressiveness and efficiency". What about Pascal? There are legions of Pascal programmers in the world. Is it less expressive or less efficient than C?
i don't get this. is the interviewer from mars ? who programs in pascal anymore ?
Pascal's main problem is that nearly every "real world" implementation of Pascal has dealt with the problems presented in the paper, Unfortunately in different and incompatible ways.
High performance implementations of Smalltalk yield comperable performance to C++. Sometimes they are slower, sometimes they are faster. Certainly there are some things where it's going to be hard to beat C++, but Smalltalk is not far behind.
sigs are a waste of space
I have long been familiar with the jargon file, but I've certainly not read it all and wasn't familiar with the B&D entry. Thanks.
I have read The Story of Mel, before, however... although it was a pleasure to be directed to it and read it again.
cheers.
-pyrrho
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.
DO NOT LEAVE IT IS NOT REAL
Whilst K&R is a masterpiece of prose, and Stroustrup, well, isn't, the real reason why K&R is small and Strstroup is both large and incomplete is that C is a clean, small language, where C++, well, isn't.
Any sufficiently advanced technology is indistinguishable from a rigged demo
--Andy Finkel (J. Klass?)
For very early Pascal that was true. As a practical matter most Pascal implementations fall into 4 camps: original pascal, UCSD pascal, Turbo Pascal, and Apple Object Pascal (TurboPascal 5.5,delphi). This is not too different from C: K&R C, ANSI C, Objective C, C++, ANSI C++.
Today, pretty much every Pascal compiler I see implements Borland's Pascal extensions which are the original Turbo pascal set, and the Object Pascal set used by Borland but which was developed by Apple.
"Improve the stories by letting subscribers see them early"
Yeah, let your paying customers fix your mistakes, so the freeloaders get a better product. That's a great plan.
I could care less, but not without a lobotomy
I love reading through code like that! I have encouraged many junior coders to adopt K&R... for me, this is clean looking code.
But consistent application of style should override any urge to inject your own preferred thang. Its a religious for sure but also now is a habit I can't break!cheers /.
Just out of curiosity, is your sig "Nuke the unborn gay baby whales" for Jesus, or Nuke the "unborn gay baby whales for Jesus"? Enquiring minds want to know. :-)
the former
I could care less, but not without a lobotomy