Programming Features

Modern Look and Feel

I use a design framework (wxWidgets) which automatically provides an up-to-date appearance on all computer types. This gives you a modern and attractive program at no cost. This means that I can concentrate on getting the functionality right, resulting in a reliable and robust program.

The design framework was originally developed for porting applications between different computer types (PC/Windows, Macintosh/MacOS, PC/Gnu/Linux, Workstation/Unix), so this capability is also built-in to the design approach. For example, a Windows version of your program can be converted to a Gnu/Linux version with little or no modification.

I use this framework even for Windows-only applications, because it gives an enormous amount of functionality for free. It is also my experience that requirements change and that planning for future portability is a good policy for any program.

High Performance

I use C++ for all my programming – which gives extremely high performance for processing large amounts of data, whilst being a high-level language capable of coping with the complexity of modern applications. It is the only programming language in my opinion that combines the best of both worlds – high-performance and high-complexity.


I can incorporate networking functionality into any program – to handle tasks like auto-updating, downloading, uploading, accessing databases and other data anywhere in the world.

Database Integration

I can integrate your program with a database, using networking if the database is on a different computer, to provide a distributed or transaction-based application.

Document Design

Data has to be stored in documents on the computer or in a database. The task of designing the storage format has been largely automated by my data persistence routines – one of my inventions which forms a part of my STLplus library collection.

Website Integration

By combining databases and network connectivity, I can write programs that process data entered by customers on your website for processing. For example, an ordering system can be developed that downloads orders from the website’s database, then processes and tracks the order through your ordering system.