About GNU Compiler Collection-GCC
GNU Compiler Collection or GCC is free and have been around for a very long time. GCC is supported bu volunteers. This means there is a big community where you can find help for free and from different sources – but response can take longer or you want get at all.
But there is several significant advantages of GCC compiler collection:
GCC is available for many different processors like x86, AVR, ARM;
Code is very mature and works well. It is also well documented.
Sometimes GCC may compile in a bigger and slower executables comparing to commercial products. But again, it is improving. GCC compiler has very scattered documentation around a world so some of it may be wrong or not updated. I don't know if it necessary to mention, that GCC doesn't have any visual designers, but there are many GUI's that support GCC. Like AVR-GCC can be used together with Programmers Notepad or Even with AVRstudio where you can not only compile but debug as well. The biggest benefit of it is that GCC can be built as cross-platform compilers which supports building programs for multiple systems on a single host. At the current time GCC generate pretty professional code and include professional debugger.
The biggest headache can be here is finding a good editor. Dont afraid to try one or another until you find that is most convenient for you.