Software's Evolution Mimics Natural Competition
Don't take it too personally the next time a friend, coworker, or customer says your software sucks. You see each time our code is released into the wild, it faces fierce competition in fulfilling the needs of many potential users. Although you (may have) optimized your library for a specific application(s) (homologous to a natural environment), it may not have sufficient fitness to survive in other virtual ecosystems. In addition expectations may be far different than what your software currently provides, either functionally (works like crap) or visually (looks like crap).
Open Source is the Perfect Stage for Competitive Software
We witness open source development communities get ruffled feathers when someone reinvents what their code does, and also releases it under an open license (recent Twisted versus Tornado server discussions). But the truth is, it's sometimes better to recreate a solution optimized to one's needs, then try and rework existing open code into what is required. This is certainly true if developers need to understand all the nuances of a complex code base. The flip side is that each open source community is competing for additional skilled developers and resources. If they can provide what is needed, it improves their future chances of code survival.
Much like in nature, when a complex species is unable to adapt fast enough to a radically changing ecosystem, new life forms better suited to the resulting environment may take hold. This law transcends physical boundaries and rules the world of open source. New constructs and languages are ever evolving to meet the challenging demands of a dynamic digital landscape. We see this in operating systems, programming languages, and layered web services.
I, for one, embrace the remorseless competition of source code's challenged survival. Its implications on continually improving software shows great promise for the future.