All I do it bind my most frequently used app to hot keys (Cmd-F1, Cmd-F2, etc.). When I want to use an app, I pop it open with Cmd-F#. When I want to close it, I hit Cmd-H to hide it.
All I do it bind my most frequently used app to hot keys (Cmd-F1, Cmd-F2, etc.). When I want to use an app, I pop it open with Cmd-F#. When I want to close it, I hit Cmd-H to hide it.
If I have to do this app-at-a-time, I need to bring to the foreground Terminal, MacVim, and Chrome, each with a separate hotkey press, then hide everything else. I admit this working pattern may be specific to a Unix style of "IDE" made up from multiple apps used together, though. If you just use XCode or Eclipse or something, it's already bundled into one app so maybe not an issue.
The programming environment is the only bundle of apps that need to be specifically arranged for me. They pretty much always sit positioned where I want them, and I bring up other apps when I want to do other stuff, and hide them when I want to get back to programming. I never really hide my coding apps; I just bring other apps on top and hide them.
It's nice too to always know that Cmd-F1 will bring up Firefox, no matter what is going on.
But this is definitely a user preference thing, and specific to how I like working.
I agree with you on the context-switching issue in spaces- it seems counter-productive to have to switch to a separate space for email, terminal, whatever. I like being able to have all my apps in the same space (albeit on two physical displays), and Expose and Cmd-tab seem less disruptive to my workflow than Spaces.