Improvements:The compiler produces much smarter SIMD code. The 2008 & 2010 was plain stupid. I've seen the compiler spit out "xorps xmm1, xmm1 -> movss xmm1, xmm2" to transfer a float from one register to another instead of just doing movaps (what 2012 does). The xorps is there to avoid false sharing, improving pipeline in the CPU. However that's useful when moving from memory to registers; using the xorps trick to move between registers is moronic.
Code like that in vs2008 & 2010 when using /arch:SSE2 & SIMD intrinsics was embarrassingly all over the place. Finally 2012 does something good.
Vs2008 & vs2010 horribly failed to remove dead code when using
sse intrinsics, sometimes it even failed to do constant propagation properly. VS 2012 has improved a lot in that aspect.
Also, the express edition can now switch to x64 targets without doing magic. In vs2008 express edition (didn't bother finding out in 2010) you had to tweak the registry settings and stuff like that to get x64 working. Someone thought it should be a "professional" feature. In VS2012 it is available for express edition users too.
C++11 features. I didn't have the need to use them yet. But they're supported and it's a plus for whoever needs them.
Failures:The IDE is slower than in 2008. It also uses twice the RAM. At least it's faster than VS2010. That IDE (2010) was so slow that in big projects I could even type faster than the ide could render. Even with an Intel Quad Core Extreme X9650, AMD Radeon HD 7700, 8GB RAM, and an SSD. wth!??!
Apparently,
I was not aloneCompilation time, particularly linking time, takes much longer.
Intelisense is more accurate than 2008, but laggy & often unresponsive. The problem is that VS2008, while rebuilding it's ncb database, would still throw you the results from a query (i.e. go to definition) using the old database, thus it
felt faster. In VS2012 it shows the goddam "Please wait..." window with a cancel button that doesn't really cancel. In other words, it's a blocking database and stalls until it hasn't finished updating. Worst part is that it starts reworking the sdb database as soon as you made a change, while ncb database waited for a couple of seconds (like 10s or so), thus using intellisense would feel faster (again, using older results, but still often accurate)
At least it's faster than VS2010 where I just had to turn it off. I could sit waiting literally minutes, often I ended up killing the process and use find in files as a better alternative.
Aesthetics: The GUI went for 'minimalistic' design I get it, but it could do a lot of work.
Neutral:You can develop in a non-Windows 8 environment; and there's even a switch to tell the IDE to target XP OS as well. Good thing Microsoft stepped back on their decision to make everything Win 8 only.