Well, mostly because I like Microchip MCUs, though they aren't that much popular in open-source projects. This is where diversity is a good thing, I decided to build PIC16F programmer based on Arduino basis (just because of cost and availability), serving together with SDCC compiler as fully usable development toolchain. I'm going to demonstrate usability of this combo by #PIC16F1xxx Arduino based programmer project.
It is PIC16F1xxx programmer. It can program PIC16F1xxx devices. Period.
For now it can't do any debugging (though technically possible I don't feel like I can manage gdb fork or something on PC side).
It will never (=unless HW of programmer is changed) work with older PIC16Fxx and PIC16Fxxx parts, because they have slightly different programming protocol, requiring voltage around 12-13V to by applied to MCLR pin. This is not a problem by itself, but annoying enough to omit them from support list. I don't feel like I'm losing something, the newer devices are mostly cheaper and better in general, so I'm using them in new projects without looking back.
PIC18F devices are probably out of question too, PIC24/dsPIC33/PIC32 should be technically possible, but not on current roadmap.
There will be two choices of hardware -
1, You can use bare arduino with no other components or expansion boards. Just compile/download programmer sketch, connect arduino to target board, run PC software and you are set.
2, You can use dedicated hardware based on and compatible arduino platform (FT232/Atmega328).
Both of them are served by simple command line software (something like avrdude), running currently on Linux and Windows. It should run on Mac too, but I have no machine to test it.