Each VM is a document, not an application!
luz said:
Each VM is an application, not a document!
But each VM
is a document. Everything is a document. And in Mac OS X every application is the equivalent of an MDI application in Windows (MDI = Multiple Document Interface). The dock and the menu bar reflect this fact. The only exception to this is with applications that only ever need to open one window, for example 'System Preferences.app'.
luz said:
How many Mac OS X applications do you know that manage multiple entirely different working environments?
Actually quite a few. How about the Commodore 64 Emulator Power64? (
http://www.infinite-loop.at/Power64/index.html), or how about Chicken of the VNC? (
http://cotvnc.sourceforge.net/). Power64 is C64 emulator so I think you'd have to agree that it fits your definition of 'multiple entirely different working environments', each window is basically a C64 virtual machine. Chicken of the VNC is a VNC client, people frequently use this to connect to 'multiple entirely different working environments' such as Windows and Linux boxes for example. The user interaction there is pretty much identical as it is with desktop virtual machines.
Try the above apps out and count the icons that appear in the dock. Observe how the menu options interact with the currently active window. Now tell me, if those guys can get it right, then why can't Parallels?
I also access 'multiple entirely different working environments' using Terminal.app all the time. If I launch Terminal.app and open three terminal windows and ssh to three other computers (say for example: an HP-UX box at work, my Linux box, and my Mac Mini). Don't I then have 'multiple entirely different working environments'? But I don't have multiple Terminal icons in dock.
luz said:
IMHO, grouping documents under a single "Application" makes sense whererver the application represents the toolset to get something done, and the documents represent the workpieces to work on. This is the case for most Mac OS X applications as we know them.
Correct, and that includes Parallels. Parallels.app is (or rather it should be) a tool to manage the user's Parallels virtual machines, it should be for spawning, interacting with, and terminating, multiple Parallels VM processes (the 'workpieces'). In your own words it should 'manage multiple entirely different working environments', but in it's current form it doesn't do this at all. It's a program that implements a single virtual machine, and gives you the option to load another instance of itself. This is literally what it's doing, if you don't believe me, try this with Parallel's already running:
Launch Terminal.app, or if it's already open you might like to open another terminal window (note that you don't get another Terminal icon in the dock

). CD into the Parallels.app bundle:
$ cd /Applications/Parallels/Parallels.app/Contents/MacOS
Now execute the binary you find in there:
$ ./Parallels &
Now watch what happens. You get another virtual machine opening up just the same way you would if you had selected 'New Window...' from the File menu. The Parallels.app isn't opening a new window at all, it doing exactly what you just did from the Terminal. It's doesn't manage the virtual machines at all, it just 'clones' itself. This isn't meant to happen, if it was you would be able to launch app bundles from the Finder multiple times yourself, but you can't. Try it, double click Terminal.app again. All that will happen is that the Terminal.app you've already launched will gain the focus and become the active application. You need to select 'New Shell' from the file menu to get another window.
But guess what?, try entering this in a Terminal window and see what happens:
$ cd /Applications/Utilities/Terminal.app/Contents/MacOS
$ ./Terminal &
You'll now have two Terminal icons in your dock. So, why doesn't this happen when you open a new shell from within Terminal.app? It's because Terminal.app manages its processes like it's supposed to, like any Mac OS X app is supposed to.
luz said:
Parallels alone is nothing - it becomes an "Application" only together with a Guest OS. And it becomes entirely different applications, depending on what guest is used with it.
When I say 'Application' I'm simply talking about any Mac OS X app bundle that you can double-click on in the Finder to launch, not some abstract definition of what an application is, or anything else.
luz said:
I perceive my Win XP VM as a completely different "Application" than my Sarge Linux VM. I want to switch between them with Cmd-Tab or clicking in the dock, quit either of them without thinking of the other. I would like to have them behave as much as two applications.
If they should behave like that then they should each have different application names. They can't both be called 'Parallels', that's completely nonsensical, it's a joke. If you select 'Quit Parallels', then that should kill all your Parallels virtual machines.
luz said:
In fact, that's how Parallels works on the technical level - each VM is a separate Mac OS X process - that's why it gets two dock icons automatically.
I'm sorry but you're wrong there. (See my explanation of what's actually happening above). Each dock icon doesn't have to represent a single OS process. Using the Terminal.app as an example again, new processes are started whenever you open a new shell window, and all are managed by a single instance of Terminal.app with a single icon in the dock.
luz said:
So I still vote for making this fact (of one App per VM) even more apparent, by giving them different icons. Ideally, I'd like a real dock item for each of my VMs (running or not), which I can click to start my XP, Linux, whatever.
This would be a slight improvement over the current situation, but it would only work if the application name (on the left side of menu bar) was no longer Parallels, but the name of the user's VM. Basically every VM you create would need to have it's own app bundle I think.
luz said:
Parallels is not exactly an application, it's more an application wrapper. Like the Java VM (you don't see all Java apps under a single "Java" application dock item!) or the Mac OS X print monitor (each printer looks like a separate application).
Wrapper eh? Well... if every VM created with Parallels had it's own app bundle, then it would be sort of like that. Maybe Parallels.app could be replaced with a ParallelsGenerator.app which could spit out app bundles for the user containing their VMs? For example: MyLinuxVM.app, MyWindowsVM.app etc, each with it's own app name and icon. That might keep us both happy, I'm not sure they would want to go down that route though. Anyway, the way the the application is at the moment definitely sucks.