I love open source, really. If everything was open source, I think the world would be a better place. I can not even tell you how many times I have been using some software and I have thought to myself, “Self, this would be so much better if it would just BLANK”. Then I think, “I can do that, I can contribute that change to this great piece of software”. Typically, I am disappointed to discover that the software that I am using is not open source.
I love writing open source software and I love using open source libraries. As a software developer who uses open source software it is imperative that you scrutinize what projects you decide to use. I am not going to call anyone out specifically but I have noticed a trend lately. There are a bunch of small libraries that boast simplicity and “thorough tests” when actually they end up being simple and thoroughly tested wrappers around large, complex, and poorly tested libraries.
If you are a software developer, and you are deciding to use an open source library, take a few minutes to peruse the source. Take a look at the API, the source, the tests, as well as the dependencies, the contributors, the issues and pull requests (both open and closed). You can learn a lot about a project and it does not typically take all that long. Unfortunately, often times you will wish you had not seen how the sausage was made, but it could end up saving you a lot of trouble in the long run. Deciding to use an open source library is an investment - while I would say a large majority of times it will pay dividends it is never a sure thing.
Learning never exhausts the mind. - Leonardo da Vinci