An interview with Donald Knuth
shem gave us
the hook-up to a review with Donald Knuth [?] . He talks about retiring early from teaching to work on his writing, as well as his on-going project of writing The Art of Computer Programming
← Back to Stories (view on slashdot.org)
Ok, so I might be poorly informed about the current trends in computer programming :-)
t ml) to "Write programs of superior quality"?
Is there anyone *really* using "The CWEB System of Structured Documentation" (http://www-cs-faculty.stanford.edu/~knuth/cweb.h
I've never seen any programs written in CWEB (nor in FWEB or any other WEB) apart from those on Knuth's site and those that are distributed together with the CWEB distribution.
It's 11pm, do you know what your deamons are up to?
Well, that's sort of true, but on the other hand, having to do preview in realtime means that you can't do computationally expensive processing very much in a WYSIWYG system. That's one reason that output from [La]TeX looks so much better than output from Word. For a lot of basic things like tight-setting blocks of text and hyphenation, even high-end DTP packages like Pagemaker don't do as well as TeX.
Also it's relatively easy to "repurpose" documents in any kind of markup, be it TeX, SGML, whatever, by changing the processing you do on them.
--
The scalloped tatters of the King in Yellow must cover
Yhtill forever. (R. W. Chambers, the King in Yellow)
The scalloped tatters of the King in Yellow must cover
Yhtill forever. (R. W. Chambers, the King in Yellow
Fair enough, as long as the user knows that it's just a preview of how the document may finally appear. Unfortunately, most users view it as being the physical document itself. For example, if a paragraph describing a figure doesn't appear on the same page as the figure, the WYSIWYG user will fiddle with the document until the paragraph and the figure happen to appear on the same page. That works fine until next week when you add another paragraph, which may mess up the formatting. Someone working with te document at the markup level will explicitly tell the computer, "I want these things to be on the same page." One user is working with the logical structure, and the other is trying to manipulate the physical appearance. For most text (especially if it is "living" text that gets edited later), the logical structure is what counts.
Another place where I've seen WYSIWYG make people do more work is in GUI application development. A "Visual ____" programmer lays out a form on the screen. To make it look good, he lines up a bunch of fields so that they are in a column. But instead of explicitly telling the computer that the fields are supposed to be in a column (like you would with a GUI toolkit like, for example, ClassAct or MUI (sorry, I'm most familiar with Amiga stuff)), he's just putting them all at horizontal pixel #241. Later, when he changes something on the form (even changing a font is enough to mess things up!), all of the WYSIWYG layout has to be redone by the programmer, instead of the computer. Why? Because the visual programmer isn't treating it as just a preview. To him, the preview is the end product.
No, of course not. With a image processing program, assuming your display is good enough to accurately show the image, the WYSIWYG display is the final product itself. It's just pixels.
---
Have a Sloppy day!
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
Knuth's contributions to computer science is awesome. If all he had done was TeX, he would still be among the greatest. Ditto even if he had'nt written Tex! Admittedly, Knuth probably knows more on combinatorics or "concrete mathematics" than most mathematicians; and more on alogrithms than any computer scientist.
I could'nt see a post mention another of Knuth's lasting contributions: to parsing. The Yaccs and Bisons owe much to Knuth.
FPGAs have been around for a while. It doesn't make any sense to rely on the limited resources and clock speed of an FPGA to implement a CPU to compete with state-of-the-art processors on the market. Sure, it is fun to implement drop-in replacements for 6502 or Z80 in a relatively small Xilinx FPGA; but try coming up with something to compete with Alpha.
The Freedom CPU project was discussed a while ago in the EDN magazine, and almost all professionals agreed it was completely unrealistic. If the Linux hacker community would start hardware design projects; instead of ocerly ambitious projects like Freedom CPU, they should concentrate on simpler, more realistic, and more useful projects: An open-source design for a PDA can be an example, just think about something like Itsy running Linux, based on a commodity processor, with GPL'd design files freely available on the Net. As with Linux distributors, I am sure there would be a lot of enterprising people who would produce low cost kits/finished products based on the design. MIT had a small embedded computer board design based on the Motorola 6811 that they used in their robotics classes; and the design was (perhaps it still is) freely available over the Net. It was immensely popular among hobbyists a couple of years ago. I have been thinking about posting this to Slashdot for discussion for a while now.
This would have been great, but Freedom CPU, IMHO, is totally unrealistic. Of course that's my opinion, and time will tell.
Zigbee Central: A Zigbee weblog
Again, from the article:
Before he can rest in the promised land, Knuth faces one last mountain. He must redesign the generalized computer used in his book for programming examples and exercises from a 50-year-old von Neumann-style machine with inefficient commands to a more modern RISC (reduced instruction set computer) system permitting faster operation. (Intel processors in most PCs are of the older variety; PowerPC chips in recent Macintosh models are RISC.)
"I'm trying to design it so it's 10 years ahead of its time," says Knuth. "I've studied all the machines we have now and tried to take their nicest features and put them all together." This super RISC machine, which he calls MMIX, is essentially a teaching concept. But he says he "would love to see it built.
I'm spending a lot of time documenting it so someone could build it. The design will be in the public domain." In the midst of his "Computer Musings" series of introductory talks on MMIX, Knuth is mere months away from completing this phase of his work.
-- What you do today will cost you a day of your life.
I know this is completely off-topic, but I have a $2.56 check from Knuth and it's one of my only prized possessions. His attempts to bring varying types of aesthetics to programming are sorely needed. Read _Literate_Programming_.
The difference between theory and practice is that, in theory, there is no difference between theory and practice.
This seems a good a time as any to get this off my chest: Not only do I consider WYSIWYG to not be an important feature, but I think it has caused a lot of harm.
Maybe it's just because I grew up using text formatters like "runoff", but one of the things I liked about markup-based formatting was that I always knew that the document would always come out right, even efter I made changes. When I first encountered a word processor (WordPerfect) in the late 80s, even though it wasn't really WYSIWYG, it tried to be, and it infuriated me that whenever I added a paragraph to a document, I always had to scroll down and "fix" all the formatting problems that it might cause further down the document. Eventually I discovered that when I used WordPerfect's "reveal codes" mode, it was about as good as a traditional text formatter.
And things haven't changed since then. Now the people in the office are using MS Word, and I swear: they spend just as much time manually formatting documents as they spend typing text. It's ridiculous! WYSIWYG makes the user do formatting work that should be done by the computer.
And then there are the web "masters" (*cough*) who use WYSIWYG HTML-authoring tools. This trains them to think that WYSIWYG is even possible on the web, and they make web pages that look all screwed up if you don't have you window the exact same size as theirs, for example.
WYSIWYG sucks! Markup forever! Long live runoff, nroff, troff, TeX, HTML, etc!
---
Have a Sloppy day!
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
Mathematics belongs to God, and Knuth is our prophet.
From the interview:
Knuth says he realized then that TeX wasn't just a digression, it was itself part of the vision. "I saw that this fulfilled a need in the world and so I better do it right."
This is the crux.
-- What you do today will cost you a day of your life.
I too was lucky enough to win a copy of any book I wanted in a semester-long programming contest (1 hard problem per month). Unfortunately, I only got to choose one book, so I kept winning it in succeeding semesters until I received all three! It saved me money that I surely would have spent on these fine volumes.
On another note, one of Knuth's 50-point problems was solved within the last few years. Check out this site to find out more about the problem, and its elegant solution. (The solvers' book, A=B, is available in PDF format until April 2000, I believe.) Knuth was so impressed by their work that he wrote the foreword for their book. Definitely cool stuff.
-jason
"If you're not part of the solution, you're part of the precipitate."
Come again? The MMIX machine had a rather completely specified instruction set, and 64-bit registers wasn't in it.
I can see an emulator for mix written in any of several portable languages (pick one that has a really good optimizer). This would allow the algorithms to be directly transcribed, etc. And I think that it already exists. But it would seem to have rather limited uses.
What might be very interesting would be a series of optimizing translators that would translate from particular cpu machine code into mix, and then back to another machine. The only question I would have about this would be: Why is mix better than either the JVM or whatever Python calls it's virtual machine (PVM?). MIX was designed when hardware was a very expensive resource, but the economics have changed, and it now no longer optimizes the correct things. (Although you MIGHT be able to design a MIX emulator that would run entirely from within the CPU cache. That could be an interesting, if rather machine specific, option.)
I think we've pushed this "anyone can grow up to be president" thing too far.
I had helped someone solve a nasty problem, and it being used in a commercial venture, they wanted to pay me. Company policy didn't permit this since I was a 17 year old kid, and not an official contractor or employee, so a gift of any book in print was offered.
Without blinking, I asked for (and received) "The Art of Computer Programming" (all three volumes). It still sits on my shelf and I use it as reference material, particularly to point novice programmers where I work to some algorithm they need explained.
Sometimes they complain, "But it's 25 years old!" My reply is usually something like, "Well, then you've got 25 years to catch up on... this is the best start I can think of."
In Liberty, Rene
according to a feb 3rd, 1999 article at play.com his 'New York Times' column is syndicated throughout the United States as well as internationally. It appears in over 130 papers including the Chicago Tribune and Houston Chronicles.
Unlike the people who get a lot of publicity for being free software or Open Source gurus, Knuth hasn't sought a lot of publicity for his contributions. But they are there for all of us to benefit from.
Much of my work on the printing subsystem of Gnome consists of adapting the beautiful work that Knuth and his students did with TeX and Metafont. The more I study the original sources for this work, the more impressed I am by their depth overall "rightness." I do believe that it is time to adapt the best parts of the work to a more modern environment with interactive editing and so on, but this in no way detracts from the magnitude of the original work. And, because it's free software, I can!
So, thank you, Don Knuth, for being a pioneer both in computer science and in free software.
LILO boot: linux init=/usr/bin/emacs
I personally use LyX for all my non-business word processing. It always does The Right Thing, allows you to get a sense for the structure and organization of your document (which I've always had trouble doing with plain Latex or SGML), but discourages/prevents using ad hoc formatting. It is essentially a visual tool for writing Latex (or DocBook or Literate Programming): its paradigm is WYSIWYM: What you see is what you mean. www.lyx.org.
I find it funny to see Knuth popping up here. Last week I got hold of The Art of Computer Programming Vol 1 to look through the lists and tree stuff again. It gets better everytime I look at it. I was however wondering if anyone else has a source of similar quality info but taking more consideration of the effects of a SMP machine, locks, cache, NUMA etc.
http://www.munich-irish-rovers.de