I use a PICKIT3 regularly, and it just works.
So do I, but one thing I am sure of regarding experiencing frustration with the PK3 (and pretty much any other hardware debugger) is that there are those who have, and those who will.
Once anything Microchip doesn't work, it's been an endless struggle to get it working again. This has to do with a bunch of things, some of which are conscious design decisions and some of which are just legacy things:
- Probably by far the most important thing: Microchip is really fucking bad with their documentation. Like, it's one of the worst companies in this respect and only recently has it become significantly better. They used to have the 'locked behind glass doors' philosophy, where you had to become an authorized whatever to get access to full datasheets/manuals and the like. This also meant that support on forums was very limited. And they have a million different chips, so docs are important. A lot of upgrades were blind, especially IDE/programmer updates, meaning you had no comprehensive changelogs and no guide to tell you what has changed, how to upgrade and what to look out for. Errata were very late. Other companies have this problem too (see Atmel with their XMEGA introduction), but Microchip is one of the worst offenders. It's only really annoying when you consider that everything non-microcontroller that Microchip made had awesome, detailed datasheets and appnotes.
- As already stated many times before, PICKit uses an MCU that was just too small by design to fit in programming code for all parts. So you have to reprogram its flash memory every time, and for some people it gives out after a year or two (couple thousand P/E cycles).
- Microchip by design uses dozens of different programming protocols, whereas most competitors have unified programming interfaces even across chip series, which means more points of failure
- Microchip changed their mind on a few interfaces, most importantly on USB payload sizes, which fucks up a lot of version boundaries (requiring you to use the older version of programming software to flash a newer firmware which *is* compatible with the next version)
- Similarly, a bunch of programmers and software packages are simply not tested with all versions of windows, which leads to stuff like the recent issues with Windows 8 and 10 (which, by the way, haven't been fixed after 2 years)
- Microchip has a few programmers (among which PK2 and 3) that don't have any built-in mode switching. As to why - there seems to be no technical reason, they just didn't program it. Which means you can have it in the wrong mode and just not be able to use it. Yeah, it has a button but you don't have access to that in a remote ICSP situation (e.g. in a climate controlled chamber or anechoic chamber) - meaning those tools aren't even useful for prototyping.
- the list goes on, this is the stuff I'm familiar with + what came up with the video.
Combine bad design decisions, changing Windows APIs/requirements and poor documentation and you get a perfect legacy horror story. It's the same kind of situation you get with old LPKF milling routers that are essentially worthless without the accompanying 25 year old Windows 3.1 computer with strange ISA plug-in card. And that milling machine came out in 2002
And you haven't even started me on PICBASIC...
This also very much explains why a lot of people say 'well I bought the Microchip XX and it worked just fine out of the box, no problems whatsoever' - yeah, it does when it first comes out, because all the duct tape has been applied in such a way to just barely work on the current version of Windows with the current product portfolio. But just you wait until the patching begins ;-)
Keep in mind that these stories are also slightly fueled by many lost weeks to Microchip tools.