The open-source Arduino environment makes it easy to write code and upload it to the i/o board. There are versions for Windows, Mac OS X, and Linux. The environment is written in Java and based on Processing, avr-gcc, and other open source software.