
Choosing The Right Arduino IDE - kigster
http://kiguino.moos.io/2014/08/02/arduino-ide-alternatives.html
======
wyager
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.

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).

~~~
k2enemy
I completely agree. And for the times that I have to work with Arduino
libraries, etc, I use the ino command line toolkit. [0]

[0] [http://inotool.org](http://inotool.org)

~~~
kigster
Thanks for pointing out inotool.org – i didn't know it existed, and it looks
pretty cool.

One big wish I have is to find a way to write automated tests for my Arduino
libraries. Or even for pure C/C++ classes used by my libraries, but I havent'
yet invested into setting up Eclipse to build/run tests with an Arduino type
project. Curious to know if anyone has a solution to automated testing of
Arduino and pure C/C++ libs that are used by their Arduino code?

Regarding the other remark below – nobody is doing it wrong as long as they
are doing it. The post is a personal opinion, and should be taken as such. If
Qt Creator works better for you, great! Write a blog post about it ;)

------
perrylaj
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.

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.

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).

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.

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.

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.

[1][https://github.com/Robot-Will/Stino](https://github.com/Robot-Will/Stino)

------
cmpahar
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.

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!

Cheers

------
yarrel
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?".

~~~
kigster
I am sorry if you are not productive in Eclipse, perhaps compared to other
tools. I write software every day, and Eclipse ended allowing me to have the
_highest_ productivity of all tools I surveyed in the blog post. I wanted to
write a simple robot automation library, and I was struggling at every step
with other tools, but with Eclipse I was able to get going very quickly and
build, refactor, test my code rapidly. This is what I've been looking for,
this is what native Arduino IDE did not provide, and so I wrote a post about
it :) Pure and simple.

