Meanwhile, Gnome and KDE are both outstanding, and while Gnome 3 has been criticized for its open-shell approach, I’ve found it to be a very elegant design, something that Mac should aspire to be. In Unity, I always felt that the parts never quite fell together cohesively, and it seemed to me to be not a minimalist answer to Mac, but a bloated, clunky one. I am looking forward to using Gnome on my next Debian installation, and perhaps I’ll move to Ubuntu, now that Gnome is taking the default. It should also be remembered that Unity is derived from Gnome 3 in the first place. Perhaps Gnome 3 has developed faster, while Unity has never had all of its bugs worked out, so it’s time to lop off the bloated parts. After that’s been done, what we have is Gnome 3, after all. Now, the X windows system provides all the necessary libraries and interfaces to create windows, draw them maximize them and so on. They won’t implement any GUI themselves, just provide low level API’s which are helpful in drawing graphics.
So Desktop Environments will make use of these API’s and create their own implementation. This is one of the main reason you see that there are so many differences as to how windows will spawn in different Desktop Environments. Now, Desktop manager provides basic functionality of managing windows ( ie how windows can be opened, maximized, minimized etc). Usually this is achieved by a window manger. They also consists of a set of standard tools or packages ( known as software in the windows terminology) like calculator, a text editor, a panel, a notification system, settings-manger and so on and so forth. So KDE and GNOME are two famous Desktop Environments. They will provide with a complete GUI system out of the box, with notifications in place, your desktop managed, routines to set up desktop wallpaper, a clock, a resources-monitor package etc. Other DE’s are XFCE, LXDE, MATE, Cinnamon, Unity etc.