Yeah, GIMP is great. It is open-source software, so it is free. I am a software developer and I can give you a few things to keep in mind about open-source software in general that you might not be aware of:
Open-source software, particularly the GNU-licensed one, is free for everyone to extend and contribute. This is the best thing about such software. The worst thing about it is that it is free for everyone to extend and contribute.
Development on its own produces code, not software. When developers develop there has to be someone to make sure they stay on track. Software development tends to be very very detail-oriented business, so there has to be someone to keep the big picture in mind. When there is little or no overseeing happening, there is nothing to enforce quality and testing standards, as well as that the resulting software addresses the needs of its users. This problem only gets worse (much much worse) as the software grows and open-source software tends to grow very rapidly.
This is not to say "don't use open-source software", I myself use GIMP and it is one of the applications I love, just keep in mind that you are using the product from someone's hobby and it might not have followed a proper software life-cycle to ensure coding standards. Very often you will see open-source software today that sports TONS of features, some useful, but many useless, very few of which are properly tested and written in an architecturally-sound manner. I don't know about GIMP, but I know that the Linux kernel suffers from that a lot. This is "you get what you pay for" in a whole new way.
That said, there ARE open-source projects out there, especially some of the bigger ones, that DO have on overseeing body of some sort and it is those that produce the best code, even if it is not the most feature-rich one.
Photoshop costs a fortune because its developers probably only spend 1/3 of their time actually developing new code. The rest is read/writing internal documentation so that every piece of code can be maintained, writing automated tests, which no user ever gets to see, review architecture to make sure it is future-proof etc. And, of course, there is this special allocated time which is 100% dedicated to fixing bugs and every piece of code has an owner - someone to fix them. Code doesn't make it out on the street until many many months after it is actually written.