Depends..
As with everything, itsit's about context:
It's Good when:
- Framework or library is too heavy, and you only require limited functionality. Rolling your own extremely light-weight version that suitessuits your requirement is a better approach.
- When you want to understand and learn something complex, rolling youyour own makes sense.
- You have something different to offer, something others' implementations do not have. May beMaybe a new twist, new feature etc.
It's Bad when:
- Functionality already exists and is known to be stable and well known (popular).
- Your version adds nothing new.
- Your version introduces bugs or constraintslimitations (e.g. your version is not thread-safe).
- Your version is missing features.
- Your version has worse documentation.
- Your version is lacking unit tests compared to what it is replacing.