
David Wehite wrote:
In his article "The Design of C++0x", published in C/C++ Users Journal, May 2005, the author of C++ Bjarne Stroustrup wrote, "The most commonly requested new feature for C++ is a standard GUI".
I am new to Boost and will appreciate if some folks here would give me a summary of Boost organization's standing on such a standard GUI library. If and how was it addressed and pointers to work on the subject if such has been done.
This topic has occurred regularly and this time I think I can't help expressing my view. They are going to be somewhat rush, but don't take it too personally. I think that Boost as organisation can't and shouldn't produce a working GUI library. 1. Effort Let's take a look at existing library -- Qt. 10 years of development, done by a company with 100 employers. Compare that to Boost. Yes, it started by 2 people, but still took 10 years. Say we want to "just" wrap Qt. Take each class, strip "Q" prefix from the name, add "boost::", create Qt object in constructor, and make each method forward to Qt object. This can be automated, in fact. Now assume one has to think for 5 mins about each wrapped method -- does it use ideal name, ideal order of parameters, and so on. The task no longer can be automated and will take month(s). Now assume one wants to actually design new interface, even if it will call to Qt objects. The task will likely to take years. This is only workable if the initial design becomes so attractive that 1000 people will start contributing. To give another example, there's vector graphics library Cairo, that does antialised 2D on many platforms. I don't have hard numbers but it's being in development for quite some time, and just recently hit 1.0. And that's just vector graphics library. 2. Design It's not all clear that anybody here can design the right interface right away. All design suggestions that floated around were centered at clever use of C++ features, like nice DSL for describing windows. Sure, that will look cool, but is really not important. FWIW, most of my problems with Qt were causes by some non-standard use-cases, like, "make this lineedit wide enough for exactly 8 characters". Any fresh design will surely have troubles with much larger number of corner use cases. 3. Purpose Long time ago, there was project to reimplement all Qt from scratch, under pure GPL license. That project did not produce anything viable, to the best of my knowledge. Now, Qt is GPL on Linux and Windows, so what's the purpose of any new library? The possibility for commercial companies to have free-for-any-use GUI library? Failing that, anybody has any killer idea for GUI development that warrants new library? Why don't add Qt to the C++ standard? - Volodya