if I click "download", the IDE feels a compulsion to recompile my code
Yeah, it made more sense when there was less code compiled :-(
And around here, it's "Upload." :-)
In a sane world, [the avrdude] command line would be displayed in the output window,
Turn on "verbose upload" in the preferences dialog, and it will show up.
I was told that __ATmega328P__ is defined for Adafruit Uno R3 builds, but in fact it does not appear to be defined,
and I am unable to find any "official" document describing preprocessor symbols.
avr-gcc "umbrella" rather than Arduino specific: http://www.nongnu.org/avr-libc/user-manual/using_tools.html
I am told [obvious preprocessor usage] won't work, although I cannot imagine a world in which something like this is possible.
The IDE generates function prototypes for you. It inserts them "after #include statements, which in the case of your conditional compilation block, is likely to be inside the #if clause for the wrong processor. Or something like that.
It's 2014, you have to be tablet-aware.
The code wasn't written in 2014. And tools don't "have" to be anything.
(Also, it's an IDE that was "Stolen" from "Processing"...)
(Just out of curiosity, are there any "professional" tools that are "tablet-aware"? Arduino might come out ahead, just by virtue of not having three lines worth of tiny buttons at the top../)
(hmm. Are you proposing that "click&drag" behave differently than it does now? Or that "swipe" be detectable separately? Do tablet APIs even DO that? I must confess that most of my windows-side development is still being done with WXP.)
Professionals need good tools, too.
And there are MANY professional-calibre tools that will permit you to do Arduino/avr development. Atmel Studio (VS based), Eclipse, and XCode, to name a few.
As a professional, I have zero interest
Blah, blah. "As a professional", you are not the target audience for the Arduino IDE.
It takes a while to get over that, and to appreciate the implications :-(
(Also, it's not clear just what "Arduino" *is*, as a "product." The IDE is OSSW mostly borrowed from Processing. The hardware design is largely outsourced (much apparently from chip vendors?) It's close to be primarily an evangelical company, and it can
be depressingly difficult to get major bugs fixed, much less changed treatments of "non-goals" (like "professional level" IDE.)
So, in summary: many of your complaints are valid, but they probably won't get fixed, and the trick is to just 'deal.'
I have been a programmer for over 50 years [((Carnegie Mellon University))]
Bring back those PDP-10s! And, oh, for DDT...