Open Source Software

Open Source Software

Since I have benefited greatly from open source projects and the support of the developer community in my professional life, I decided early on to make some generally usable components available as open source as a thank you to the community.

The overview of my open source projects is divided into the following areas

Components
Here you will find an overview of the available components.

and

Applications
No complete applications have been released yet, but here you can find an overview of the applications that are planned for release.

The following is a brief description of how some of my open source components were developed.

How it began…

In the 1990s, I used the Zinc Application Framework (ZAF) to create cross-platform, multilingual applications. ZAF was a commercial GUI library — quite groundbreaking at the time, with support for DOS, Windows, Mac, and Unix.

In the early 2000s, however, ZAF’s star began to fade when the product was sold to Professional Software Associates (PSA) and was henceforth only maintained for their specific platforms. This raised the question of how to continue maintaining the applications that had been developed with ZAF.

As the example of ZAF shows, a commercial software provider is by no means a guarantee of long-term product support. For this reason, the search for a successor product for GUI development was extended to the open source sector. After thorough research and analysis, the decision was finally made in 2005 in favor of wxWidgets.

wxWidgets, databases, and print output

Once a solution had been found for creating user interfaces with wxWidgets, the question arose as to which libraries should be used for data storage and print output.

The Ocelot database library, an implementation in Assembler for MS-DOS and Windows based on SQL 1999, had previously been used for data storage. It was therefore clear that another SQL-compatible library would be required. The choice fell on SQLite. However, there didn’t exist a specific binding for wxWidgets – and that was the birth of the component wxSQLite3, which included encryption of the database files right from the beginning, as this is often necessary in commercial environments to protect data.

Many applications require print output of results. In the days of MS-DOS, it was still common practice to control printers directly with specific codes. However, modern platform-independent applications required a portable solution. Instead of relying on printer controls, which are usually platform-dependent, the focus was placed on generating portable documents in PDF format. This led to the development of the wxPdfDocument component.

Both components, wxSQLite3 and wxPdfDocument, have been available as Open Source components since 2005 and have been undergoing further development ever since.

Charting

In the early 2000s, there were only a few powerful alternatives for outputting different types of charts — most of them commercial and some of them extremely expensive. The ChartDirector library stood out from the crowd as extremely flexible and powerful, yet very affordable. The wxWidgets connection, which was initially only used internally, was released as an open-source component wxChartDir in 2018.

The open source project Wisteria Dataviz Library, which has been in development since 2022 and already supports a considerable number of chart types, is on its way to becoming a serious alternative.

Outlook

In addition to developing software components, I have also been directly involved in the further development of wxWidgets for a few years now — for example, in the area of internationalization (I18N) with the development of the wxUILocale class.

Furthermore, I strive to answer questions about my components in the wxWidgets developer forum and on my GitHub account.

0%