12 October 2006

GUI Toolkits - Visual Component Framework (VCF)

Out of all the GUI toolkits I have been looking at, the Visual Component Framework (VCF) has impressed me most. It was easy to compile in Visual C++ Express 2005, but most importantly the resizing is silky smooth (an odd thing to say is important, but it really impressed me). Most importantly the webpage has a link to Zod 2008, you know who to vote for!

The VCF is an almost cross-platform GUI toolkit, in that the Mac and Linux implementations are not complete yet. It is based on modern C++ and uses a signals/slots type event system. What made this so easy to evaluate was that I could load the solution into Visual C++ Express 2005 and kick off a build. And with my Core 2 Duo upgrade I made recently, it whizzed through the compilation of over 100 projects. I was using the Subversion trunk so a couple of the newer examples didn't compile, not a problem.

It was a bit of a leap for me to try it out as it was well out of the "similar to MFC" comfort zone, but getting some code up and running was trivial. There are so many examples that it can be difficult deciding which example provides the best template for a solution to your design. There is an online book describing lots of the VCF which although it is not finished is pretty informative, plus the source code documentation is likewise pretty good.

I found this a well-designed package as well, as it was not just simply a monolithic library, it was split into components. This also makes it much easier to implement cross-platform versions of it as there is a porting guide on the forums. There are some well written extensions as well with the graphics kit using the splendid Anti-Grain Geometry Library (libAGG), networking, and so on.

I started posting some questions on the forums because from the website and forums it looked a pretty quiet project, but I think it is just a case of appearances being deceiving. The main developer Jim Crafton (ddiego) drives it on with loads and loads of development.

The Windows version of the VCF is definitely mature enough to develop with, and looking at it I am surprised it does not have a more thriving community as it seems to have all the right ingredients. Some of these things are probably down to luck not judgement I suppose.