Pros: Program specific macros, auto switching is very reliable, up to 5 DPI settings, 3 side buttons, great variety of macro commands including scrolls.
Cons: Unless you're deliberate, the middle click might register as a sidescroll click. Macro app sometimes freezes, though this is rare.
I have a few minor complaints which sum up to the half star off from being 5 stars, these are to be noted in addition to the main cons up above.
1. You can store delays in the macro software, but the only way to do this is to record a delay. On my Razer keyboard, I can add delays together in increments of 50ms-200ms. On the G500 there is no option to manually add a preset delay time.
2. The cord is rather stiff and sometimes catches on the edge of my mousepad and lifts it up.
3. The DPI settings are profile-specific, this is nice for when I launch a game since I don't have to manually crank up the DPI. However, I have so many profiles that I would rather just take the extra time to increase the DPI each time I game than have to constantly keep matching the current DPI setting across my profiles. Simply put, if you have a lot of profiles for different apps like your web browser, media player etc, your DPI will change to whatever you had it on last time you used that profile instead of using a global DPI setting. There is an advantage to this if you have a certain program that you need really low or really high DPI - you can edit that program's profile and move the DPI settings way down, and you won't have to give up one of your 5 DPI settings for it.
Overall a lovely mouse. It's got a nice size and fits my fingertip grip quite well.