There are many programs for which the GUI contains several, discrete parts (all visible at the same time) for performing different actions, usually with one main part and other secondary parts.
What are the pros and cons of arranging these parts by dividing a single window (e.g. Visual Studio):
...versus having one main window containing the menu bar, and moving secondary parts into separate windows (e.g. GIMP)?:
Are there any good ways to do this other than these two?
To provide some context for my situation, I'm working on a chess program, where the main part of the GUI is the board, but there are several secondary parts (move list, game metadata, engine analysis, etc.)