I've been using uVision for the past three or four days on a small evaluation project using three different vendors' Cortex M4F boards, a Cypress FM4 board, a TI Launchpad and an STM Discovery board.
I wasn't looking forward to this, not least because the last time I used Keil was in 2005 on a Silabs 8051 project, and I remember gritting my teeth when handing over a substantial sum for the privilege then.
For this evaluation, I used the 32KB limited version, so it was free.
The whole experience has been unexpectedly good, so good in fact that I'm way ahead of where I thought I'd be. Typically when you start of on a new dev environment, you spend some time understanding its nuances, and most often you end up in a fight to get the hardware debugging to work reliably. This has not been the case with uVision, despite the three different dev boards, all using their own integrated debuggers. (Interestingly enough, I gave up trying to get TI's CCS to work). Each board I was up and running in between five and fifteen minutes.
Debugging and programming is really quick, with the exception being that single stepping didn't work on the STM32 board at first, although when I tried it again just now it works fine.
The automated pack loading feature is another area which other vendors should consider. In all three cases, the project files I had been provided with downloaded all the appropriate support libraries. The exception was the TI board, where an older TI Tivaware library wasn't available for download, not even from TI: they don't seem to provide Tivaware archives, an important ommition in my view for supporting and maintaining old projects, the semi-TI official excuse being that "not much has changed so it's low risk". I repointed the project to the newer Tivaware I already had installed and the project I had worked right away. Interestingly, I gave up trying to get the project to work on CCS. I've not really got along with CCS for some time, the way library and directory structures are defined is complex and takes a while to understand, especially if you want to do things properly.
The debugging aspect alone shows why Java is a bad choice for cross platform IDEs, both Eclipse and Netbeans are evidence of this, it's slow, breaks a lot, and often takes some time to get working.
So why won't I be using Keil going forward? One word, price. It's at least ten times what I'd be willing to pay, and it's on an annual semi-subscription.