Hey, I don't know if am wrong but I think a new idea has just striked me. We can all see that almost every program that we can imagine of has been created, thus making it difficult for us to think of new ideas or programs. But all these programs out there are good, but they are not good in a partucular field. What I wat to say that a program can be good at handling user input but it may not be very good at processing these inputs. Perhaps there could be a more efficient way of processing these inputs, but the developper has not thought of it or have concentrated too much resources in creating a program that can handles user input in the most efficeint way.
To illustrate this in a better way, lets make a comparaison in User Experience between Windows Media Player and the Modern Winamp 5.1. Winamp offers far better Music Experience than WMP but it's Video Playing Experience is bad. For WMP, it is the complete opposite.
So how can we remedy this situation. Imagine that you have created a new algorithm that can play music in shuffle mode far better that any other program that exists. Rather that building a big program just to sell this new algorithm, we could implement it in a Library
(DLL or LIB) and sell it as a proprietary and patented software. Thus we spend far much time in developing the algorithm rather than the program itself.