The PIC16F84 is almost an obsolete part. In the 18 pin parts, my favorite is the PIC16F88.
For the 8 pinners, i use the PIC12F683 (pleeeease, FORGET the PIC12C508, (OTP or UV erasable EPROM with ONLY 2 level stack !!!! )) F683 has 8 level stack...
...For the 28 pins, i use the PIC18F2685,
And for the 40 pins, i suggest the PIC18F4685. I never used it, but it is in the same family as the 2685 which i used a lot.
The 2685 and 4685 are particularly well suited for C code.
All four F88, F683 F2685 and F4685 use enhanced Flash technology that is much more robust than older flash technology used in the older F84, F876 and F877. Furthermore, they all have internal RC oscillators that are well suited for REAL MINIMUM part projects that do not need precise timing.
To program my PICs, i use the PICkit 2 programmer from Microchip. USB driven and very compact, they well worth their price !