|
In
the beginning...
My
name is Jeff Franks. I'm a C++ programmer first, and a C programmer
only when I have
to be. My discovery of Linux several years ago came at a time when I
was
fed up with the Windows operating system. Linux presented me
with a whole new programming experience and whole new learning curve.
I went looking for a C++ application framework and found the
two
main ones QT, and Gtkmm (then Gtk--). QT was good,
comprehensive,
and
reminded me a lot of Borland's OWL but then QT was still a proprietary
library, and not released under the GPL as it is now. I started trying
to write a program with Gtkmm but found a few bugs. I made an effort
to discuss the bugs and help fix them but my novice emails were
repeatedly ignored on the Gtkmm mailing list. I gave up and bought a
GTK+ programming book by Donna Martin, et al., and set about learning
GTK+. I soon realized that GTK+ wasn't too difficult and decided to
try and
write a C++ framework for it as I learnt. Today, the Xfce Foundation
Classes is the result of that work.
Evolution of the
Xfce Foundation Classes...
The Xfce Foundation Classes is not a new library but rather the latest
incarnation of a stable library that has been in development for the
past 5 years. XFC started out as the GCode library in early
2000,
about the same time that GTK+ development version 1.3.1 was released.
Unfortunately for GCode there was a CAD program of the same name, so a
new name had to be found, not an easy task! Havoc Pennington was
approached and he kindly agreed to let GCode use the name Inti,
originally a set of C++ foundation libraries written by him but no
longer in active development. Inti was the original library on which
GCode was based.
Under the new project name, Inti: Integrated Foundation Classes, stable
versions up to 1.2.0 were released. During the development of the Inti
2.0 source code base it was decided to change the project name to GTK+
Foundation Classes, to better reflect the library's usage as a GTK+
language binding. To get this name Inti had to merge with two abandoned
projects, GFC: GNU/GTK Foundation Classes and GFCLIB: GNU/GTK
Foundation Classes. GFC 2.3.1 was the only release made under the newly
merged project. Prior to its first stable release GFC became a part of
the Xfce project.
A lot of time was spent developing the GFC source code base, which had
been a one-person project. With the source code now mature and stable
the time was right for the library to become part of a larger project,
to assure its continued development. The Xfce Desktop Environment was
the obvious choice because many of its goals were similar. Under its
new name: Xfce Foundation Classes, the library is now an integral part
of the Xfce project. Compared with its early days, the source code base
has continually improved and evolved to the point now where essentially
it's a complete rewrite; almost none of the original Inti source code
remains.
The philosophy
behind the Xfce Foundation Classes...
The Xfce Foundation Classes is a compact but comprehensive C++ wrapper
around the
Xfce and GTK+ libraries. It judiciously uses C++ language features to
avoid
layering on too much extra C++ complexity. Its API is easy to
understand and use, and should be immediately familiar to most GTK+
programmers. Throughout its development the Xfce Foundation Classes
has maintained a good balance
between remaining faithful to GTK+ and remaining faithful to C++. Hence
the catchphrase - the power of gtk, the power
of c++.
If you take the time to use the Xfce Foundation Classes you will
discover
a well designed C++ interface that's light-weight, fast and easy to
use. Its API adheres to the GTK+ programming paradigm so programmers
can continue to use the concepts they're already familiar with. There
is
nothing too complex about the Xfce Foundation Classes so it should be
usable
by everyone. Give it a try and see what you think. You will be
pleasantly surprised!
|
|