Sou a favor de não usar bibliotecas, a menos que seja absolutamente necessário. As dependências limitam a portabilidade e a vida útil. Tenho 34 anos em desenvolvimento de software e gostaria que pelo menos 1 dos meus programas durasse mais de 3 anos sem ser destruído pela erosão (mudança).
COM (Component Object Model), a resposta há 17 anos, em teoria, na prática, componentes questionáveis e reutilizáveis não são realmente, apenas os componentes muito básicos e somente se for necessário.
APIs e SDKs não são muito úteis. Se eu quebrar o número de linhas de código que eu realmente uso em uma biblioteca, o tempo que gasto para fazê-las funcionar e escrevê-las, acho que é uma lavagem. Eu parei de usar SDKs completamente, a sobrecarga é extrema.
Estruturas: Zend, Silverlight, WCF, .NET, os sistemas em camadas, sim, eles podem acelerar o desenvolvimento inicial, mas quando eu atingi seus limites, o tempo que gasto consertando as rachaduras não vale o esforço. Quantos anos eles têm e são imunes à erosão?
Eu fui para JavaScript e HTML apenas com minhas bibliotecas. Eu reduzi o JavaScript usando apenas os tipos de instrução mais comuns. Espero que em 10 anos eu possa escrever algo que dure.