I would like to see an option to turn off/byapps the "Processing -> C++" preprocessor, and instead directly write the main() function,
include my own prototype declarations, header files, calls to any required intialization functions, etc.
You might think "well, just ditch the Arduino IDE and go directly to avr-gcc", but the cost in doing that is that you lose access to the great wealth of Arduino libraries written by third parties, many/most of which rely on the "wiring" Arduino core libs to some degree.
So I'd ideally like to stay in the Arduino library "ecosystem", just opting out of writing "sketches" in "Processing", and instead writing C++ programs directly all the way through. I already write a considerable amount of C++ for my Arduino programs when I decide it's time to package certain things up into an Arduino "library" anyway -- I'd just like the option of doing this all the way through.
I already use my own editor by selecting the "use external editor" feature -- I really appreciate being able to do that.
Why do I wish to be able to disable the "Processing" preprocessor? Mostly because, for me, I find the benefits are far outweighed by the drawbacks. I've been bitten too many times by bugs that have me wasting way too much time chasing nonsensical compiler errors. The inability of the "Processing -> C++" preprocessor to even manage standard C/C++ conditional preprocessor directives is well documented. This makes configuration management a pain, and while the Arduino development team are well aware of the issue, it has been made clear it's not on the list for fixes (sounds like the preprocessor regular expression code has gotten to the stage that no-one fully understands exactly what it's doing anymore) -- so it looks like it's not going to get fixed anytime soon.
But I've come across weirder and harder to understand (and therefore workaround) bugs -- most recently I had some code that would throw up spurious errors (some name collision of some sort going on under the hood, I suspect), but would compile without error when the offending code was placed in a seperate .h file and then inlined in the sketch in the same place via a #include directive.
That just about did it for me.
So I'm just at the stage where I really think I I'd like to leave "Processing" behind me (except perhaps for really quick and dirty apps where the typing time is actually a significant part of the development time.)
Would anyone else like to see turning off the "Processing -> C++" preprocessing as an option within the Arduino toolchain? I appreciate the simplifications that "Processing" offers over real C++ is a boon for programming novices, but not everyone who programs Arduinos is a programming novice, and one size doesn't fit all. I'd very much like the option to be able to trade off the costs and benefits of using "Processing" on a case by case basis -- seeing an extra checkbox under "Use external editor" that says "Use C++ instead of Processing" would be a very welcome feature indeed.
Alternatively, anyone who has been down this path have any advice on how to proceed sidestepping "Processing" without throwing the Arduino baby out with the bathwater (so to speak)? Thoughts and discussion appreciated.