Is the main way of programming the Arduino's Atmel MCU thru a Visual Programming environment such as Max/MSP? Or do you have to write typical C code?
What are the different ways available?
The main way of programming the atmel chips is using avrstudio a windows IDE or avr-gcc. In C or assembly.
The arduino simplifies this to use a simple variation of c++ in its own simple IDE. There is no visual programming method for arduino/avrs as far as I know.
I program the Arduinos and Atmel chips a couple of different ways --
The quickest and easiest way is to use a uC with the Arduino bootloader and use the Arduino IDE and libraries. Quick and easy but can can be lower performance depending on your task.
You can use the Arduino bootloader and libraries from AVR studio or the command line. I find the command line a lot quicker than the Arduino IDE. Haven't played with AVR studio. When I develop Arduino libraries I usually use this method.
Program the uC using just AVR studio or from the command line. No Arduino bootloader or libraries. Porting the Atmel application code is easy. This is my preferred method. C from the command-line using Make. EMACS for editing files.
I use Eclipse as my main IDE for my Arduino projects and write C/C++. I wrote a tutorial on how to set up Eclipse with Arduino that you might find interesting.
Here's a good tutorial for programming the AVR ATMega chips in C, without the Arduino IDE.
There is a visual studio addin in beta at the moment. its free, if you want to be part of the beta then you just need to email beta @ visualmicro.com or take a look at http://www.visualmicro.com
The arduino addin for visual studio provides intellisense and allows you to select arduino boards, libraries. it also supports compile and upload from visual studio directly to the arduino
For avr I normally program in assembler using a text editor. use avra or something like it to assemble and have my own simplified loader to load the programs into the device (command line).