There are many PIC programmer available, commercial and DIY devices. As Microchip introduces the new microprocessors the programming software got to be updated accordingly playing catch-up with the PIC manufacturer. That is the root of the problem with third-party PIC programmers. Microchip’s PICkit 2 is the low cost ICSP programmer for Flash PICs with USB interface introduced by Microchip. Only subset of PIC microcontrollers is supported, but the list is including all the recent devices from PIC16, PIC18 and PIC24 families and certainly covers all the PICs you are most likely want to use. It is fully integrated with Microchip’s MPLAB IDE and allow not only program but debug applications as well. As alternative you can use the standalone programmer applet, see picture below
The PIC kit 2 has USB boot loader and capable of updating the programmer firmware directly from Microchip web site. Every time the PIC kit 2 programmer application is launched, it will check the firmware version of the PIC kit 2 to see if it is the latest version. If not, it will attempt to automatically download the latest version. The software upgrades are free and Microchip updates them in timely fashion. Even more, the firmware and schematic are freely available.
Apparently Microchip has made the open design intentionally, see it as the way to boost using the popularity PIC microprocessors. With such simplicity of design it is easy to build a clone version. The Sure Electronics is making a good clone and it comes with ICSP cables, see the Products page. My first PIC programmer was Me labs EPIC device with parallel port interface. After upgrading my PC I have realized that parallel port became legacy these days, as the most of new PC motherboards do not have it all.
Read More: Build your own PICkit 2 programmer