MDI (Multiple Document Interface) and SDI (Single Document Interface) are different interface designs meant to handle documents within a single application. MDI allows an application to contain child windows per document, while SDI enforces one document per window.
Neither approach has much effect on performance or stability: despite the intuition of two SDI applications as being separate entities, they are very often still implemented as a single process. Similarly, an MDI interface can be implemented as multiple processes (Google Chrome being a prime example).
It's also worth noting that tabbed interfaces, although matching the description of MDI, often don't show multiple documents at the same time in the same window, and universally support multiple top-level windows as well.
Differences
MDI | SDI | |
---|---|---|
Maximize all documents | Maximize parent window | Can only be implemented through special code or through a window manager that can group windows |
Switch between documents | Using special interface inside parent window | Through task /window manager |
Multiple Desktops | You can only stretch the parent window and try to organize individual windows manually | Easily done |
Multiple Monitors | You can only span the parent window and try to organize individual windows manually | Easily done |
Grouping | Naturally implemented | Possible only through special window managers |
Switch focus to specific document | Easily handled | Difficult to implement |