And it is surprising how much you can learn from reading code, the most humbling thing I learned from reading other people's code is that I'm not nearly as good a programmer as I thought I was.
I haven't read a program yet that didn't teach me something.
Reading programs is hard work though, it can tire you out pretty quickly, especially in the stage before things start clicking in to place and you can start to predict what's coming next based on the parts that you've already grokked.
It's also work no one knows you did; unlike reading a book or a blog post, you can't really reference or quote a codebase to prove you know what you're talking about, because you can't expect the people you're talking to to have read the same exact lines.
Seriously? As a programmer, the problem I'm often on a mission to fix in /src is that I haven't learned enough.
My only regret is not pushing more changes back upstream
Also, while you did touch on the hacker culture I think that's the most important factor. As hackers we're practically born to tinker. When we tinker with hardware ,say a remote controlled car, no one confronts us and asks "Hey, man, why are you tinkering with that car?" More often than not you'll get people saying "Hey, that's really cool!"
Furthmore, it's easier to take a get tangible changes from tinkering with a program than with a piece of literature. You can't miss the impact of gravity on gameplay in a game like HATETRIS but very few people will pick up on the significance of a new piece of text in the middle of a novel.
I really like how jsankey put it when he said "If you put something out there, you should be flattered that people take enough interest to tinker with it."
Browser-interpreted code makes this quite a fuzzy issue. What are the rules with running tools like GreaseMonkey? Is there a legal or moral line that shouldn't be crossed with tools like GM?
As an aside, I wonder if there is any gender bias in the "publish code"-->"you want it changed" conclusion. I've observe that females tend to state problems in order to find empathy, and males tend to state problems in order to find solutions (of course, this is a gross simplification). Mixing these two types when a problem presents itself can sometimes result in conflict. Perhaps the same tendencies in people sometimes conflict over code (i.e., some present code to look at and admire, others see it as an opportunity for improvement).
This makes perfect sense in the art world (and writing is a form of art), as you never really "derive" from a piece of art; instead, you first look at the mechanisms by which it communicated its message to add those techniques to your repitoire of skills, and then re-use those skills on your own works. That makes perfect sense in an artistic medium, where any single stroke or word or note may be chosen from an infinitude of options—but programming requires formal grammar—a finite set of ways of expressing each concept—and thus there is relatively little merit in studying the technique by which a single problem was solved.
On a separate note, for the first few paragraphs he seems to be completely unaware of the medium of fan-fiction—which is about as core to "the culture of online fiction" as you can find.