MDI (for Multiple Document Interface) is a user-interface paradigm used by many MS Windows applications which involves nesting open documents within child windows which can be positioned within a workspace area in the parent (application) window. SDI (for Single Document Interface) was coined to refer to non-MDI applications that can launch multiple windows (as separate top-level windows). Child windows in an MDI application can be moved around in the workspace just as the application window can be moved on the desktop, and, similarly, child windows can be maximized or minimized. When a child window is maximized, the MDI application looks like an SDI application (except for a second set of minimize/maximize/close buttons on the menu bar, immediately below identical-looking ones in the application's caption bar). Microsoft Excel and Word are examples of MDI applications. Microsoft Internet Explorer and Netscape Navigator are examples of SDI applications.
The original reason for the MDI approach lies in the fact that in MS Windows, a menu bar (and usually a toolbar) is affixed to each application, and not the top-left of the screen as in some other graphical environments. Macintosh users might find the basic idea bizarre at first, but when an MDI program is maximized (scaled to fill the entire screen) it looks suspiciously like a Macintosh (except that a toolbar is at the top of the screen with the menu bar, not with each document window). Of course, when maximized, only its child windows (no windows from other applications) are visible.
MDI was intended to make the most of screen real estate assuming cripplingly small screens (640x480, as used to be the rule). In such conditions, people tend to use programs maximized, and more than one document can be displayed more efficiently because menus and toolbars need not be duplicated. MDI also would appeal to users who spend all of their time in just one application (MS Word, for example).
MDI's limitations outweigh the advantages, and this becomes more so every day as 640x480 displays become more rare, as software becomes more integrated, and as the battle against unnecessary complexity is fought for increasing numbers of novices (and idiosyncracy-weary veterans, such as myself). Specifically:
1) It presents more complexity to the user. The program presents the user with a second level of nesting of moveable windows, along with mechanisms to "maximize" and "minimize" these child windows, and special cases for maximized child windows. The user must understand how document "focus" affects menu and toolbar behavior and must be conscious of which document has focus when selecting menu/toolbar actions.
2) Its application-centric approach is outdated. Applications are working more and more seamlessly together (using OLE to share data and "host" objects implemented by each other), creating situations where the value of the whole is truly greater than the sum of the parts. To work most productively in such an environment we shift our mental focus from applications to the data -- the documents, typically -- that we are working on. Grouping documents by their type is inconvenient and undesirable.
3) It limits screen layout flexibility. On today's larger screens one
may want to view documents of different types side-by-side, or in an endless
variety of arrangements. Documents in an MDI applications are "trapped"
together inside their parent's workspace. One way around this is to launch
multiple copies of the MDI application (resulting in multiple parent windows
each of which can contain multiple documents) but use them each with maximized
child windows (in "SDI mode"). Unfortunately, many MDI applications do
not allow multiple instantiation. Another problem is that maximized child
windows totally obscure the other child windows in that application. This
is a UI problem similar to maximized applications hiding other applications
on the desktop, which Microsoft addressed in Windows 95 with the taskbar.
And finally, with all this complexity our screen space savings (which
were never great to begin with) are now zero.