@Zeroeightfifteen

Versuch doch einfach mal den avr-gcc bzw. WinAVR. Die sind freie Software und du vertust dir nix, wenn er dir nicht zusagt. Zudem kannst du den wie gesagt mit verschiedenen Oberflächen verwenden und bist unabhängig vom Betriebssystem (sowohl was Compiler als auch was Progger (avrdude) angeht).

Andere AVR-C-Compiler (Keil, IAR, ...) liegen jenseits der Portokasse und sind teilweise selbst für kleine Firmen unbezahlbar.

avr-gcc compiliert Standard-C. Wenn du später auf einen anderen Compiler umsteigen willst, kannst du deine Quellen mit kleinem Aufwand dorthin mitnehmen -- vorausgesetzt, der neue Compiler ist selber auch kein Sonderlocken-C. Arbeit machen Portierungen von Dingen, die nicht im C-Standard spezifiziert sind, wie etwa Interrupt-Programmierung.

Das Interface für avr-gcc ist die Kommandozeile einer shell/Eingabeaufforderung, aber es gibt wie gesagt IDEs, die um avr-gcc herum ein Framework deiner Wahl schaffen.

avr-gcc ist zwar frei (und sogar kostenlos), was aber nicht heissen soll, daß er nicht leistungsfähig ist. Er macht guten Code, erlaubt dir einen Blick in den generierten Assembler, unterstützt unterschiedliche Debug-Formate und Optimierungsstufen und unterstützt den *kompletten* Sprachumfang von C! Du hast die Wahl zwischen Standards wie ANSI, ISO-C89, ISO-C99, GNU-C mit Spracherweiterungen usw.

Bleibt noch die Frage, was du unter "gut" verstehst...

Oft wird darunter verstanden, mit Kenntnissen für einen Tretroller einen Ferrari fahren zu wollen

In dem Maße, in dem man so ein komplexes Programm einsetzen will, muss man sich auch damit auseinandersetzen, gleiches gilt für die Hardware (AVR). Der Versuch, durch Rumclicken und Nichtlesen von Dokumentationen und Handbüchern Zeit zu sparen, ist oft Zeitveschwendung und häufige Frustrationsquelle.