Contents Up Previous Next

The history of wxWindows

wxWindows was started in 1992 at the Artificial Intelligence Applications Institute, University of Edinburgh, by Julian Smart. Julian was designing a kind of meta-CASE tool called Hardy which needed to run on Windows as well as X-based Unix workstations. The existing commercial cross-platform tools were deemed too expensive for an in-house experimental project, so the only alternative was to build one. wxWindows (w for Microsoft Windows, x for the X Windowing System) started off with support for Sun's XView and Microsoft's MFC 1.0, and AIAI allowed it to be released to the Internet. As it became clear that XView was doomed, a Motif port was written. Borland C++ users began to request a version that was not dependent on MFC, so the Windows port was rewritten to use the native Windows API. Over time, a small but enthusiastic community of wxWindows users was established and a mailing list set up. Many contributions and fixes were sent in. wxWindows gradually picked up more and more users from all over the world: academic, government, and corporate users who found that wxWindows offered a better product, and better support, than the commercial products they had looked at or used.

During 1995, Markus Holzem released his port of wxWindows to Xt, the X toolkit. This meant that software could be written that would work on X-based systems without the need for installing Motif, then still a commercial product.

In 1996, Julian left AIAI to pursue freelance consultancy, and there were few new releases. The seemingly unstoppable advance of Java was throwing some doubt on the future of C++ libraries. After many contributions, the wxWindows code was looking rather tired and in need of a serious rethink. At the start of 1997 it was make or break time - call it a day and move onto other things, or commit to re-engineering wxWindows with an API that was flexible enough for current and future user interface trends, with more sophisticated widgets, and making better use of C++. After a short debate, the effort was relaunched with Julian concentrating on the Windows port, and Markus on the combined Motif/Xt port, with both contributing to the common and generic parts. wxWindows 2 API ideas and code started to take shape.

During 1997 an effort to produce a standard Linux desktop environment was underway - GNOME. Its widget set was GTK+, built on top of X11 and it looked as though GTK+-based apps were to become the standard in the Linux universe. Its one major problem: GTK+ was C-based, and only a thin (and unportable) C++ wrapper existed for it. In August 1997, Wolfram Gloger made a suggestion that wxWindows 2 should be ported to GTK+ - Robert Roebling had initial reservations, but in general supported the idea. He became the prime mover for wxGTK and alphas were made available at the beginning of 1998. In May 1998 the Windows and GTK+ ports were merged and put into a CVS repository made available to all contributors to wxWindows: a decision that has accelerated the development effort tremendously. At this point Vadim Zeitlin became a prime mover on the Windows port and revamped much of the container and collection support.

Markus Holzem had to drop out of the wxWindows 2 effort in early 1998, but Julian Smart started a new wxMotif port. The idea of an Xt port was dropped, since there remain two possibilities for free Unix programming with wxWindows: wxGTK, and wxMotif using the Motif clone Lesstif.

In September 1998, Stefan Csomor started a new version of the wxMac 2 port based in part on Greg Whitehead's initial work. In 1999 wxMac became ready for prime-time and Stefan has made it ready for MacOS X.

Also in 1998, Vaclav Slavik burst onto the wxWindows scene with his exciting wxHTML module that can now provide applications with (to name but a few) HTML help, superb About boxes, and report viewing and printing facilities. Vaclav has also written an enhanced resource system for wxWindows based on XML, that supports many more wxWindows features than the old WXR-based system.

Since 1998 Robin Dunn has been completely rewriting the old Python/wxWindows marriage and now wxPython is another force to be reckoned with in the development community.

Development on wxWindows is concentrating on achieving more modularity, additional sophisticated GUI components, and compatibility with a wider range platforms. The wxStudio IDE project promises to make wxWindows development much easier and introduce wxWindows to people used to rapid application development environments under Microsoft Windows.