next up previous contents
Next: Proof Assistant Selection Up: System Design Previous: System Design   Contents


Language/Library Selection

There are two immediately obvious choices of cross platform language for graphical user interface development: C++ and Java. C++ is a fast, object-oriented language which has been in wide use for many years, and ported to a large range of platforms. Its downsides include the sometimes messy implementation of an object oriented system based upon the older, non-object oriented C language. Java is much newer, a bytecode interpreted language that runs inside a virtual machine referred to as the JVM. It has a cleaner object system than C++. It was designed to be cross-platform from the ground up, and offers a GUI toolkit that looks consistent across many platforms. Running inside a virtual machine often impacts the performance of Java based applications, especially on older hardware.

The existence of cross-platform C++ GUI toolkits such as QT,[*]QT is available from http://www.trolltech.no/. FOX,[*]The FOX toolkit is available from http://www.fox-toolkit.org/. FLTK,[*]The Fast Light Toolkit (FLTK) is available from http://www.fltk.org/. and wxWindows,[*]wxWindows is available from http://www.wxwindows.org/. give rise to a number of advantages over Java:

  1. Speed
  2. Lower memory consumption
  3. Can be compiled statically for easy installation
  4. Cross-platform native look and feel is achievable

The choice of GUI toolkit for use with C++ was made by elimination:

Having settled in on a programming language and GUI toolkit, we can now worry about choosing a companion library for parsing and creating XML messages. A C XML library known to be portable across all our target platforms (and more) is Libxml2.[*]The XML C parser and toolkit of Gnome, libxml: http://www.xmlsoft.org/, http://www.gnome.org/.


next up previous contents
Next: Proof Assistant Selection Up: System Design Previous: System Design   Contents
2003-11-08

Valid HTML 3.2! Valid CSS!