In my experience, Ubuntu and Vista are only equal if Vista has just been loaded and hasn't had a chance to get bogged down with too many apps. One of the biggest problems is that a lot of programmers still use TSR technology to keep their apps ready at a keypress - and that really puts a strain on the time slicer.
Bear in mind that the Longhorn kernel, that both Vista and Windows 7 (as well as 8 and Server 2008R2) uses is not natively a time slicer. With multicore architecture this is full mufti-threading SMP. On an hyperthreaded 8 core system, such as an I7 or Xeon, there is very little chance that a thread would be unable to find an available core and relegated to time slicing. Even the OSX Lion is using a similar technique, as much of the technology belongs to Intel, and not Microsoft. Linux doesn't have access to core architecture features and lags behind significantly on multithreading. This gives both Apple and Microsoft a significant advantage on Core processors.
What leads you to this? I run a quad core with the multi-threaded kernel build which supported multiple core architectures. I have great response.
The issue with Ubuntu 12.04 is two fold. First, Windows 7 is bloody fast, secondly, Unity isn't. Grub loads fast enough, but the Unity shell takes another full minute after grub is loaded.
Which is yet another good reason not to follow that upgrade path.
Ultimately the weak multithreading on Ubuntu isn't really a big deal, as I am rarely running very much. Maybe an RDP session and a browser. Since application support for most of what I use is simply not there (Wine sucks) I mostly just fart around and then return to Windows when I need to do real work. In my line of work, I live inside of SQL 08R2, Visual Studio, Exchange 2010, Sharepoint and Advanced Reporting. Linux isn't able to run any of these.
When I used XP, I spent about 60% of my time in Linux, with Windows 7 it's down to about 5% - I like to play around, but Windows 7 is simply a superior OS.
To begin with, I never had much need for SQL beyond what's required for some web servers - MySql works just fine for that. Depending on what you're coding, CodeBlocks or any other IDE works fine for me - true you don't get the automatic windoze support, but I live in linux-land now and don't have any real need to support Win apps.
At any point in time, my system is likely to have a browser or 2 open, an IDE open along with a few terminals, Blender which may even include animated rendering depending on the chore (also maybe a Python editor too), all while running a background Apache server. The only time I really see any performance issues is with rendering software - but that's to be expected with compute-bound jobs.