Most of the developers I work with (including me) already work in this fashion - multiple windows open on the desktop showing (for example) code being edited (usually in an IDE); code open for reference (a 2nd copy of the IDE, or simply notepad/uedit/vim/whatever); scripts (vi/emacs/grep/less); database stuff in another IDE; source control; folders view and usually multiple grep windows. My point being that I pick what they need to use and let the desktop take care of displaying them simultaneously. I'm not sure I can conceive of, or even desire, a single IDE that can handle every scenario that I encounter for me. I think most scenarios are handled by opening another vi/notepad/ide session as needed.