V is a C++ Graphical User Interface Framework designed to provide an easy to use and program system for building GUI applications. The framework is small, elegant, and provides the tools required for building all but the most specialized applications.
The V framework has also been designed to be portable. Currently, versions for the X Windowing System (using a customized 3D Athena widget set), Microsoft Windows 3.1, and Microsoft WIN32 (Windows 95 and NT) are available. A version for OS/2 is in progress. A Macintosh port is under investigation. The V system is freely available for use by anyone under the terms of the GNU Library General Public License.
Why did I write V , and why did I put it under the GNU license? I have been programming for over 20 years now, and building interactive applications for most of that time. During that time, I got tired of complicated, difficult to learn and use libraries for building interfaces, and wanted something easier.
I've also been successful in the software business, having founded
two different software companies, Aspen Software and Reference
Software International. I was the principle designer and author
of the widely known and used grammar checker,
Grammatik.
Basically, I see V
as something of a public service; a way
to give something back to the software industry that has been
good to me. The concept of a portable GUI library is not
original, but I think some of the design goals of V
are
significantly different than other similar libraries I've seen.
I have some evidence that I have succeeded in this goal. V has been used for several semesters for large team projects in the software engineering class I taught at the University of New Mexico. While I get many questions from my students related to the projects they are doing, I got virtually no questions about using V itself. The small number of questions about V has been both startling and rewarding, and is good evidence that this design goal has been met. V has also been used successfully for a Junior level programming class. Previously, the high overhead of learning to write applications for X has prevented the students from writing small programs with interesting user interfaces. The simplicity of V has allowed them to do this for the first time.
V is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU Library General Public License for more details.
There is, of course, a price to pay for the ease of programming with V . The main constraint is that you are somewhat restricted to following V 's (and thus my own) view of the world. The V model does not exactly conform to the native models of X, Windows, and the Mac, but it is a very good compromise. For the most part applications developed with V \ will in fact conform to the host look and feel, but may be lacking some of the bells and whistles of the most sophisticated commercial applications available for a given platform. For the vast majority of applications, this will not matter. You will end up with applications that look pretty good, and are likely to have a much cleaner and better interface than they would have otherwise.
If you are a C programmer, then the fact V is a C++ library might be a problem. While it is a fully object-oriented C++ framework, it can be used with C code if you know a bit about C++. Also, V does not allow you to do everything you could if you programmed in the native windowing library. You won't have every single conceivable control, and some controls are slightly restricted in how you can use them.
And finally, why the name V First of all, it is a simple name. It follows the tradition of C and X. It makes naming the classes easier. And, my son's name is Van, which starts with a V. So V it is.