I absolutely refuse to use the Arduino environment, because it appears to be using some completely insane and/or broken build options. I had all sorts of problems with e.g. not being notified of missing header files, misleading error messages, IDE errors during compile (as opposed to compiler or linker errors), etc.<p>Now I just use plain old avr-gcc or gcc-arm-none-eabi and my favorite text editor, and my embedded development experience with Arduino-compatible products has never been better (despite not using anything from the Arduino project).
I haven't tried any of the 'full' IDE's listed yet. I have Eclipse set up for C/C++, maybe I will give it a shot at some point. I've heard of the XCode version as well, but again, haven't tried it.<p>That said, I have found ST + the Stino plugin[1] to be great for my arduino projects. A good linter setup and gdb gives most of what I am looking for. The convenience of debugging with an IDE that auto-populates watches based on context is nice, but rarely are these projects sizeable enough (for me) to need serious debugging.<p>Using Stino + ST (and turning off the Arduino code munging) gives a typical GCC compilation which requires everything you'd expect of a GCC compilation (proper declarations, prototypes, scoping, etc).<p>I can understand why forsaking function prototypes and adding type aliases (such as 'boolean' usable for declarations in addition to 'bool') might make it easier for newcomers to learn to write 'sketches. But I am not sure it's great in the long run. So much of the Arduino code out there is poorly written, including some of the libraries I commonly see floating around. And coming from me (who is far from part of the greybeard C/C++ master engineer cohort), that says a lot.<p>I think that the Arduino platform would likely benefit from a more natively supported 'second step' development environment that encouraged better program organization and DRYness. I can't even count the number of arduino 'sketches' I have seen out there that are a mess of static global const variables declared in 2000+ lines of completely spaghetti'd code.<p>Of course, I think it's great Arduino is becoming so popular, I just wouldn't mind seeing some nicer tools/educational resources for those new to it.<p>[1]<a href="https://github.com/Robot-Will/Stino" rel="nofollow">https://github.com/Robot-Will/Stino</a>
I highly recommend Codebender.cc which is an Online IDE for Arduino.
It has code completion, a lot of already included libraries (you can request for your own), a huge list with examples, the ability to share your code or find another user's code and its on the cloud.<p>For setting up your computer, you don't need to install any special heavy development kit except Codebender's plugin. I remember that after completing a getting started guide in 5 minutes I was able to program my Arduino board!<p>Cheers
If the answer is Eclipse, you're asking the wrong question. Unless that question is "how can I nuke my productivity?", or "we're developing in Java, what's the worst that can happen?".