Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

Knuth: Wow

Donald Knuth is a mainstay of computer science from the last what 30 years? He recently did an interview with InformIT talking about some more modern concepts.. Here are some quotes I found quite interesting!


On the multi-core problem

Donald: I don’t want to duck your question entirely. I might as well flame a bit about my personal unhappiness with the current trend toward multicore architecture. To me, it looks more or less like the hardware designers have run out of ideas, and that they’re trying to pass the blame for the future demise of Moore’s Law to the software writers by giving us machines that work faster only on a few key benchmarks! I won’t be surprised at all if the whole multithreading idea turns out to be a flop, worse than the "Titanium" approach that was supposed to be so terrific—until it turned out that the wished-for compilers were basically impossible to write.

later …

They think a magic bullet will come along to make multicores speed up my kind of work; I think it’s a pipe dream. (No—that’s the wrong metaphor! "Pipelines" actually work for me, but threads don’t. Maybe the word I want is "bubble.")


I agree; pipelines rock!


On unit testing and mocking

As to your real question, the idea of immediate compilation and "unit tests" appeals to me only rarely, when I’m feeling my way in a totally unknown environment and need feedback about what works and what doesn’t. Otherwise, lots of time is wasted on activities that I simply never need to perform or even think about. Nothing needs to be "mocked up."


On extreme programming

Still, I hate to duck your questions even though I also hate to offend other people’s sensibilities—given that software methodology has always been akin to religion. With the caveat that there’s no reason anybody should care about the opinions of a computer scientist/mathematician like me regarding software development, let me just say that almost everything I’ve ever heard associated with the term "extreme programming" sounds like exactly the wrong way to go…with one exception. The exception is the idea of working in teams and reading each other’s code. That idea is crucial, and it might even mask out all the terrible aspects of extreme programming that alarm me.


On reusable code

I also must confess to a strong bias against the fashion for reusable code. To me, "re-editable code" is much, much better than an untouchable black box or toolkit. I could go on and on about this. If you’re totally convinced that reusable code is wonderful, I probably won’t be able to sway you anyway, but you’ll never convince me that reusable code isn’t mostly a menace.


At the least these words should be stopped and thought of.

This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

9 Responses to Knuth: Wow

  1. Nick Aceves says:

    I’ve always said that Knuth’s understanding lies mostly in theoretical computer science, rather than in practical, everyday software engineering.

    As a mathematician and computer scientist, knuth kicks ass. As a software architect, probably not so much. I’ve admittedly never looked at the Tex source code, but just because it has a huge user base and is rock solid doesn’t mean it was architected particularly well or makes thorough use of good coding practices (the converse is also true).

  2. Michael Dorfman says:

    Yeah, and what do academics know, anyway?

  3. Greg says:

    Michael … didn’t you know Tex was trivial? :-) not like it has a large user base or anything … just those pesky academics.


  4. Michael Dorfman says:

    Adron wrote: “Not sure if any of this is taken out of context as I didn’t read the interview. But just from these comments, he seems to be discredited as someone that could actually produce solid applications or good code. But I’m not one to decide until after someone has proven themselves. ”

    Let me get this straight– you’re don’t believe Knuth is capable of producing solid applications or good code, but you’re willing to give him the benfit of the doubt if he can prove himself?

    Wow. Apparently, Tex isn’t enough for some people. I’m literally speechless.

  5. Lucas Goodwin says:

    @Tom: So right. HUGE difference from software engineering and computer science.

    I love the comments on reusable code. Yes, black box components can be a pain, but reusable and maintainable components are critical to building solid projects on time and on budget.

    The key to reusability is reducing coupling, which XP/Agile and Unit Testing has led to tremendous advances in. Funny that Knuth rails against all three.

  6. Chad Myers says:

    In my mind a large portion of the blame of how much software sucks today should be place squarely on the ‘hero coders’ and the perception they give management that we should all work 100 hour weeks and bang out 100,000 lines of code a week and everything will just work.

    Much of what XP is about is combating this mentality on both the management AND the developer side (because developers have this tendency also) and to keep things on a more sustainable pace, focused on business goals instead of ‘the latest shiny metal object’ which programmers love to toy with.

    So I’m curious, if he really means all that. Of course, as a computer scientist/mathematician, you really DO want hero coders because it advances the science. In business, you really DO NOT want hero coders because it creates a buggy, unmaintainable mess.

  7. Tom says:

    He does indicate the dichotomy that seems to exist between “software engineers” and “computer scientists”. He falls into the latter camp, while most people that read this blog fall into the former. Computer science is not synonymous with software engineering.

  8. Adron says:

    Not sure if any of this is taken out of context as I didn’t read the interview. But just from these comments, he seems to be discredited as someone that could actually produce solid applications or good code. But I’m not one to decide until after someone has proven themselves.

    It also seems that since Agile/eXtreme is so far from the mundane waterfall crap they teach in academia he’s probably upset about that. Is also appears that he hasn’t noted or read about the fact that Agile is very successful in producing a much higher success rate than most other software development processes/paradigms.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>