Knowledge Base

Delphi package managers

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.

What is a Package Manager?

A package manager provides a standardized way for developers to share and consume code. Authors create packages that other developers can utilize. The package manager simplifies the installation, upgrading, or removal of packages, streamlining the development process. This allows developers to quickly start working on a project without needing to understand the often ad-hoc ways a project or organization has structured its third-party libraries. Moreover, package managers facilitate simpler build/CI processes, reducing “compiles on my machine” issues.

The Absence of a Unified Package Manager in Delphi

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:

Despite the abundance of excellent third-party components and libraries available for Delphi, the lack of a good package manager has been a persistent problem for 25 years. Delphi’s ease of development is significantly enhanced by these components, but new installations or project handovers become problematic without the correct libraries and components installed. Imagine the convenience of a package manager, similar to those available for other languages and platforms, that could resolve these issues automatically. If you’re familiar with tools such as npm (Node Package Manager), you understand the immense utility of a well-functioning package manager.

Current Initiatives: GetIt and DPM

In recent years, several initiatives have aimed to create a package manager for Delphi.

GetIt Package Manager

The GetIt Package Manager is included with Delphi itself. It allows users to search and browse available packages, and from this window, they can install, uninstall, update, or subscribe to these packages.

Delphi Package Manager (DPM)

DPM is an open-source package/library manager for Delphi XE2 or later. Influenced heavily by NuGet, DPM’s CLI, documentation, and other aspects will feel familiar to NuGet users. However, Delphi’s development environment poses unique challenges, so while DPM draws inspiration from NuGet, it is not identical. DPM also considers other package managers from various development ecosystems.

The Way Forward

To address these issues, Embarcadero should leverage the Delphi community’s strengths. Embracing open-source projects and clearly communicating the long-term vision for the GetIt package manager would benefit every Delphi developer. A centralized hub for packages and libraries would prevent fragmented development efforts and enhance the ease of use for package managers.

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.

Contact

Let us help you to realise your ambitions

GDK Software UK

(+44) 20 3355 4470

GDK Software USA

+1 (575) 733-5744