I used for my PIC projects (this, and this) a simple programmer - k150 - which can write only a few type PICs. But I had to write a newer one (for this project), so I borrowed an original Microchip programmer from my colleague. My experience is that if I want to write a microcontroller only (no develop, no debug), Microchip still installed more than 2 gigabyte software to my computer (MPLAB IPE)!
WHAT?!
So the main goal with the open programmer is to provide the easiest solution for programming different devices with using minimal resources. The Open Programmer is ideal for this works.
I made two different versions: one of them can handle the 8 pin i2c eeproms, the another one contains a 3.3V level shifter for Low Voltage PICs. And of course both can read and write PIC microcontrollers via ICSP connector (and some PICs via 20 pin DIL or SOP socket).