Writing software is harder than writing books

According to computer scientist Donald Knuth, someone who has written numerous books, writing software is more difficult than writing books.

The most important lesson I learned during the past nine years [1977 – 1986, when Knuth developed TeX] is that software is hard; and it takes a long time. From now on I shall have significantly greater respect for every successful software tool that I encounter. …

The amount of technical detail in a large system is one thing that makes programming more demanding than book-writing. Another is that programming demands a significantly higher standard of accuracy. Programs don’t simply have to make sense to another human being, they must make sense to a computer.

Emphasis in the original. Taken from Selected Papers on Computer Science. In another paper in the same collection Knuth says

I was surprised to learn that the writing of programs for TeX and for METAFONT proved to be much more difficult than all the other things I had done (like proving theorems and writing books).

Related posts

12 thoughts on “Writing software is harder than writing books

  1. Wow .. thanks for highlighting this! I cannot think of proving theorems, but I was of the opinion that I could code a bit. Is being a ‘good’ programmer beyond the reach of mere mortals like me, when the legend himself finds it hard !?

  2. Donny, Knuth’s comments can be discouraging or encouraging, depending on how you look at things. You could despair that you’ll probably never find programming easy. Or you could reassure yourself that everyone finds programming hard and maybe you’re not so bad at it.

    I used to think I was no good at programming because I found it so hard. It took me a while to realize that although I’m no superstar, I’m actually not a bad programmer.

  3. You must mean “writing software is harder than writing *technical* books”. Some fiction writers spend days on a single word.

  4. It would not make sense to say that writing a novel is harder or easier overall than writing a web browser. They’re very different activities. But you could compare the two activities along specific criteria.

    I believe that writing fiction is more fault-tolerant than writing software. Even the best authors have inconsistent details throughout their works: a character’s last name might accidentally change between the beginning and end of a novel, a timeline might be impossible, etc. That doesn’t keep the works from being enjoyable to read. Some people may even take pleasure in finding such inconsistencies. But software cannot tolerate analogous errors. Computers are less forgiving than fans.

  5. Writing a computer program is like teaching subject matter to a computer. Not only do you have to translate the subject into language the computer can understand, to program correctly you must verify the computer has “learned” the material. The larger a program becomes the harder it is to verify the computer has correctly retained all that it has been taught. The book author is under no obligation to verify his tome has been read and absorbed, but the best ones seem to find a way.

  6. You have valid points but I think you are confusing fault with something else entirely. Fault in fiction is not a missed semi-colon, it’s a character performing some action that goes against what that character believes. It’s not properly justifying why two people have fallen in love. It’s not quite getting to the root of a feeling. I would say that getting those ideas on paper is much harder to do than writing a program. A program can always be explained in complete detail–even proven to be consistent. You can’t do that in fiction. There is always something left unsaid, some person whose mind takes in the words in a slightly different way.

    Regardless, I think we both have valid viewpoints. I just wanted to point out that it really isn’t as simple as you seem to have made it.

  7. Yeah i agree writing a software is more difficult than writing a book.Because writing a book needs creative mind but writing a software needs high logic.

  8. The problem that many writers face is seeing the writing process through to its conclusion. Finishing a book can actually be harder than writing the majority of it. So you want to write a novel, maybe you have started one and can’t finish it. Here is one writer’s (my) perspective on the writing process, how to approach it, manipulate it and make it yield the results that you want. Bear in mind that some of my own strategies are unorthodox, they are strategies that I have applied to my writing through my learning about other areas of daily life

  9. Both are easy writing a book and writing a software.It depend on skills,difference is only that writing a software required technical and logical skills but book writing required creativity of mind.

  10. There are many people that come to English speaking countries without knowing how to speak or write in English. This is where English writing software will truly come in handy. Anyone who is willing to learn and spend the time on this type of project should be able to get in touch with the benefits of this software. Start right now and make sure that effective software is chosen.

  11. Thanks Jermey Gilber,
    Learning English is totally off topic however. The discussion was on writing software vs writing books.

Comments are closed.