Delphi package managers

Photo by Leone Venter on Unsplash

The absence of a good package manager in Delphi is, after 25 years, still a big problem. There are a lot of excellent third party components and libraries available for Delphi. It is what makes the development in Delphi so easy.

Unfortunately it also causes a problem with new installations, or when taking over a project from someone else. If you don’t have the right libraries and components installed you have a problem. Wouldn’t it be great to have a package manager -as available for many other languages and platforms- to resolve this automatically? If you are familiar with tools such as npm (Node package manager) you undoubtedly know how useful a good working package manager can be.

There have been quite some initiatives in recent years to create a package manager for Delphi. We have the GetIt package manager shipped with Delphi itself, and a number of projects such as delphipm, delphinus, boss and MultiInstaller. Unfortunately, this comic also applies here:

Comic about standards

Although all these initiatives are great in principle, it does immediately expose the underlying problem; there is no clear vision from Embarcadero on incorporating the open source community into the Delphi eco-system. These community initiatives arose because there is a need to easily manage packages in Delphi. So instead of developing the GetIt package manager internally, it would have been much better to make GetIt an open source project and to invest heavily in its development. The idea behind the GetIt package manager and all other initiatives are great. But without a clear vision and one central hub of packages and libraries, the development of package managers remains fragmented and inconvenient to use.

Therefore, Embarcadero; Make use of the Delphi community, please don’t be too afraid to use open source projects and clearly communicate the long-term vision of the GetIt package manager. In the end, every Delphi developer is served by this, and it will spread the use of Delphi.