I'm programming PIC with CCS. It's quite simple and functional. It's libraries are the best. Recently, I look for XC8 compiler, from Microchip. What are the advantages of using XC8 instead CCS?
If you are happy with CCS (or even find it adequate), avoid XC8. I've been using it for years and if I had time and/or used it very often, I'd look for an alternative.
The free version doesn't optimize*, it does not support custom libraries (I was told by Microchip technical support), quite a few annoying bugs (I reported some with no visible effect), ...
The only thing is that it probably has the headers for the new chips soonest, but I'm not even sure about that.
* By looking at generated codes, I saw that its actually worse than that. It does the first phase generation as it would optimize, but then only the optimization itself is disabled. Thus the generated code is sometimes even worse than if it was just brute-force generated.