I have used various PIC microchips in the past and I have always run into limitations, such as "not enough memory", "no UART", "not enough ports for analog inputs" etc. etc.
My future projects will be based on 16F877 (serial) or 18F4550 (USB) chips. I have spent some time with 16F877 and finally managed to display some text on attached LCD display in 4-bit mode. Look at the red board on the picture - although LCD is already connected, there are still many more pins left for other use!