In a lot of cases, this behaviour is rather harmless. If you launch two instances of Calculator, you'll end up with two gcalctool
processes, but this won't cause much damage or problems. However, if you try this with more complex applications, you may run into problems; for instance, they may overwrite each other's data or configuration files. Or, if you launch XChat twice, you end up being logged in twice.
The GNOME 3 Shell will be application-based instead of task window-based. Consider the Calculator example: currently, launching Calculator twice will leave you with two entries in the task list - an entry for each window. In an application-based environment (for example, Mac OS X), you would have only one entry for both instances of the application.
Since GNOME 3 Shell will be application-based, this is exactly what will happen. An important aspect of the GNOME 3 Shell is that the "window list" and "menu" are combined into one (similar to the new taskbar in Windows 7, or the Dock in Mac OS X). The distinction between "running" and "not running" is no longer the focal point; if you click a launcher, and the application is not running, it will be loaded for you. If you click the launcher of an already running application, you'll be switched to it.
But what if I want to load multiple instances of the same application? Applications for which this would make sense can implement a "New window" option, and this new window could then be run in the same process, or in a new one.
[Credits: OSNews]