[Note: I originally had this as a comment post to Don's blog entry (below?), but it spiraled out of control and I decided it eventually warranted its own entry. Why not use the email list for such discussions, huh?]
While I agree with the spirit of your [Don's] comments and I *think* that having a remoted, usbi enabled reset capability has notable merit, the fact remains that a simple, usb powered and usb programmed microcontroller that requires a single mouse click and a single button push ("mash" is the southern term) is still a helluva lot easier and more convenient than pulling a socketed chip and physically mounting it in a new socket for programming and then replacing it in the circuit. Wow, that's a run-on......lemme reword....
The arduino is popular for several reasons... 1) USB. USB is now ubiquitous. Period. It also provides power, which RS232 doesn't really do...
2) Fashion. Can't be ignored, it's true.
3) Simplicity. Hell, even I would rather peruse some art-o hacker examples than wallow in the data sheet reference sometimes. Sometimes. ;)
4) Abstraction. Sure, it's "C-like", and sure, C is still oft hated, but dammit, it's way more abstract than Atmel (or similar) assembly. Abstractions provide for speed while ignoring [the admittedly *important*] details. Of forest and trees.
5) Cost of entry. Seriously, < $30 and you're up and running (even if it's just blinking LEDs and reading a silly sensor). That's really really hard to beat. Even the dirt cheap AVR boards out there require some extras (like a power supply, pin header cable, or nowadays, a USB adapter). Although other sub-$30 in-circuit programmers exist, they're certainly not as user friendly.
6) Convergence, er, maybe just plain platform independence. I've programmed AVRs from Linux with the stk500, but damn if I can remember which loader I used. With the Arduino it's simple: you use the Arduino loader included with the Arduino IDE and the Arduino compiler. Sure, the vendors have their own IDEs and platforms, but there's often an extra cost (even in the form of an OS requirement, like in Microchip's case).
Wow, I have no idea how a simple desire to have the finger button press removed/simplified/integrated turned into a full post. I'm sure it's unwarranted. ;)
Conclusion: I'd rather button press than resocket a chip or connect to a header. I'd rather button press than accidentally have crap loaded into my device. At the end of the day, I think that's really the reason -- the button press combined with software allows for robust programming.