Sorry for dragging up an old post. Programming on Mac OS X is just as legitimate as programming on any other operating system. If you want to develop for micro-controllers on OS X, I would recommend taking a look at MacPorts. It allows access to an easy command line ("sudo port install avr-binutils avr-gcc avr-gdb avr-libc avrdude" - all you need for AVR) repository for bringing in open/free utilities including avr-gcc (http://www.macports.org/ports.php?by=library&substr=avr-gcc
) for AVR/Arduino development! GCC or specifically avr-gcc is the underlying compiler that both the AVR Studio and the Arduino IDE use.
I will admit, I run on OS X. I code between OS X, Linux and Windows though. I have a MBP with OS X dual booted with Ubuntu. I have virtual machines (http://www.virtualbox.org/
) for each of the operating systems as well. From any OS booted (I won't boot Windows on the Mac - it would feel dirty) I can access any of the other OSs through a virtual machine. I prefer Linux and the feel of the GNOME environment to anything else, but OS X still has quite a few hassle free commercial tools to I use. Don't pigeon hole yourself to a single OS.
I prefer gedit (OS X: "sudo port install gedit" Windows: "http://ftp.gnome.org/pub/gnome/binaries/win32/gedit/2.30/gedit-setup-2.30.1-1.exe
" Linux: Run GNOME, its there.) as its cross platform and a reasonable GUI (programmer's) editor. Gedit, with a little configuration could even be configured/augmented to create a make file and compile AVR/Arduino source from a menu. I prefer looking at things and working on the command line, so I have not done this myself, but it is certainly possible - if not already done.
Another thing to keep in mind, for most micro-controllers a hardware programmer is usually required. It is often in the form of a dongle or a USB stick with a cable to hit ICSP or JTAG headers. Specifically speaking of AVR/Arduino, if it has a hardware USB port, you usually don't need a hardware programmer. All AVR chips with USB support have a bootloader burned from factory that allow for programming via USB without an additional hardware programmer. The Arduino platform, by design, is a mix of hardware and bootloader that allows for programming without an additional programmer as well.