Základní pravidlo pro klasické OOP a knihovny zní – knihovny jsou uzavřené pro změny, ovšem otevřené pro rozšiřování. Pokud není knihovna přesně ušitá na míru mým potřebám, tak ji neupravuju, ale udělám odvozenou třídu, která modifikuje chování knihovní třídy. Díky tomu vývojáři prohlubují své znalosti jednotlivých knihoven, aniž by se báli, že se ty knihovny budou měnit… knihovny tvoří hierarchickou strukturu, no a u těch méně používaných se holt musí kouknout do dokumentace. Obávám se, že lepší systém na vývoj velkých systémů zatím nebyl vynalezen.