There is another important point that I forgot to mention in my previous comment;
Linux is being developed/enhanced at a very high speed, consequently we see a new upgrade every 6-12 months (Ubuntu upgrade cycle 6 months, Fedora 6-12 months, SUSE <12 months and so on).
This is very nice as far as introducing new capabilities/features, removing bugs etc., is concerned; however package system creates a problem when dependency-requirement is often broken by certain drivers/applications/programs due to unavailability of packages of certain version in releases of recent past.
Example: I bought Intel's Haswell processor (2957U), and replaced the old one with this new cpu; the OS in this system's hard-disk was Ubuntu 12.04 which has all necessary Graphics drivers for iGPU in the old processor.
However, Haswell graphics support is not available in Ubuntu 12.04, but it is available in 13.10, 14.04 and later releases.
Now, If I upgrade U12.04 to 14.04, many of system libraries/packages installed will be automatically upgraded, and will break the dependency check in my custom applications (which want a very specific version of a library). This would ruin the system.
I spent whole night trying to compile mesa drivers (opengl enabled), but dri3 is definitely incompatible with 12.04 :(:( and now any application which needs opengl 3.0 or newer, doesn't run on this system.