Over the last couple of days I have been searching for some components I want to use in a project to illustrate my writing. There are, of course, many great components out there in open source, and often the struggle is simply to choose one.
In this case, however, there seemed to be many choices, but the selection was quickly reduced by practical realities. My basic concerns are these:
- Functionally fit for my purpose.
- Supports a broad range of Delphi versions.
- Is in current development or maintenance.
There are times when fitness is hard to judge. In this case, I was considering the use of an ORM, and though there have been many created, there is a good deal of variance in their design. Secondarily, they may depend on other open source components, so those must also be investigated.
As to Delphi versions, the obvious question is how far back must we really look? Not easily answered, as I do some work each day in Delphi 2007 on production code. However, I am content for my present purpose to find components which support Delphi XE and later, or perhaps Delphi XE 2 and later. That leaves most published code open to consideration.
Surprisingly, as I explored, it became apparent that many of these components are not available at all. Websites are dead, or still present, but with no downloads available. In other cases, there have been no updates in several years, so support is lacking for recent versions.
So now the issue of longevity.
If your need is to illustrate a blog article, this is perhaps the least demanding, and you can choose almost any component.
If your goal is to illustrate the presentation of concepts in a book—hopefully one which will be around for years—then the life of what you select becomes more important.
If you will make use of the component in a product which is sold commercially, then you need to consider with care the future of the component. Ultimately, if the developer(s) behind it tire of the project, then to keep it alive, you may need to become the support for it. That doesn’t mean you have to keep it alive in open source, but it may mean serious maintenance to ensure that as it ages, it doesn’t cause your product value to suffer.
Open source is a boon—but sometimes not. I am not arguing against its use, but merely urging caution in the choices you make.
Single Developer Components are always a risk, but that is true for closed and open source components. With open source however, you can take a deep look in the source and reference it. You can estimate the code health. That’s something you can’t (easily) do for closed source components where you only have the dcu or have to spend additional money to also get a source drop (which you then most possibly can’t use in examples).
Open Source also has the advantage that if the original developer doesn’t want to work on the project, someone else can take over. That is not possible in the most cases of closed software.
So it depends more one the people behind the component. If it’s a team or group or a big corporation, the chances are good that the component stays alive. If it’s just one person it depends on the will of one individual.
The golden rule when it comes to Delphi libraries and components is this: Whatever you use, make sure you get the source code. It never pays to be cheap and buy dcu/bpl versions only.