uCtools is an open source collection of microprocessor programming tools. So far they support development for AVR, ARM, MSP430, STM32L1xx and are developing tools for others. If I need to develop firmware for embedded systems, this will be a handy tool to have at my disposal. For now, the arduino IDE seems like the best choice for teaching, since it is simple to use and understand. But who knows? Maybe something else will be better. You don't know unless you explore the possibilities.