« Home | Brother HL-5250DN Low Toner Override » | Apple "Genius Bar" Leaves Much to be Desired » | My 64-bit 8-Core Mac Pro Died Tonight... » | Milestones » | FIX: iPod Touch with "BSD root: md0, major 2, mino... » | QuickBooks Online for the iPhone (and iPod Touch) » | Programmer/Developer Job Trends » | LD_LIBRARY_PATH in Mac OS X » | High Performance Web Pages » | Painless Schedules Revisited »

Wt: C++ Framework Evaluation

I blogged a while back that I was evaluating various web platforms for a my projects.  Well, tonight I began to seriously evaluate the Wt (pronounced witty) C++/Ajax framework.  I've decided not to use the library for one simple reason -- the licensing terms are cost prohibitive.

I had already floated Wt to a client as a possible alternative (recovery plan) to a massive Java/JSF project that was nearly a year behind schedule.  The leads were receptive to the idea so next on my agenda was to seriously evaluate it, generate some applications and mock up a demo.

First, let me say that Wt it is an awesome idea, and it is great implementation.  It leverages boost::asio (asio was included in boost with version 1.35).  Out of the box, it works with apache, fastcgi, or an extremely lightweight httpd server. 

In a nutshell -- you write your application by cobbling together widgets much in the same way you would write an application in Qt.  The underlying technologies (HTML/XHTML, JavaScript, CSS, Ajax, Forms, DHTML, etc) are abstracted so you concentrate on adding, say a button widget rather than coding up an HTML form that contains a button, and code to handle the post... You simply add a button widget to your container class and the HTML, JavaScript and forms are generated automatically at runtime.

While the examples are somewhat terse, they do showcase the possibilities -- with some effort in developing your own widgets, you could have the coding efficiency of Ruby On Rails with the speed of C++.

The framework is licensed in a dual licensing scheme.  They freely grant you a free GPL license.  However, the commercial license is € 599 per year, per developer.  At current exchange rates that is nearly $1000 per year, per developer.   

I don't mind paying for a license, and I often encourage my clients to purchase products like RedHat or MySQL.  That being said, I simply don't like purchasing licenses that expire, where you are locked in. 

What happens when you develop a 1MLOC application and the dollar continues to fall in relation to the Euro, and they want to raise their prices you are effectively a hostage.

What do you do?  Rewrite/port the application at a tremendous cost?  I've seen companies held hostage by framework providers before and really don't want to be in the position. 

Labels: , ,

Hi,

Thanks for sharing about Wt. I found your site when was looking for a C++ web framework. Wt is really great and I'll consider for development. You just need to take note that you don't need to worry about the licensing issue as when you serve CGI content via web, you don't distribute software in binary form, therefore you don't have to open your source code. Think of EditGrid.com . It uses Gnumeric (GPLed) as it's back-end and Catalyst to serve as front-end. It's not obliged to release any source code as it delivers only text + images (HTML + JS + CSS + images). It distributes none of binaries via web. That's the way to go! You can donate back to Wt if you wish to. Plz correct me if I'm wrong.

Viet.

Post a Comment