Everything in the current system is being built from scratch
Creation of components that are reusable in different application is a difficult problem by itself
Programmers have preferred to create their own, because the available components are difficult to understand and difficult to adapt to new applications, except the routines of mathematical libraries