In terms of templates what are you guys shooting for? What's a good idealization - ATL/WTL? ---- RN
There is mention on the page of using "Something like XPCOM" - why not just use XPCOM? It already provides many of the things mentioned throughout the document:
- refcounted memory management, with helper smart-pointers (nsCOMPtr)
- IDL-based interface definitions for automated language bindings (including runtime JS/C++ calls without any glue, and soon-to-be-landed Python support)
- somewhat threadsafe refcounting (you can flag particular objects as threadsafe to make sure refcounts don't get trampled)
- strong string and unicode support (nsString, and available Unicode libraries)
- wxFileName equivalents (nsIFile) along with
- A whole library of useful datastructures
- runtime, non-RTTI based type queries, safe across language bindings (QueryInterface/nsIClassInfo)
- pluggable runtime registation and discovery of features - i.e. you could say "give me the button widgets" and it would get the right ones for your platform
- all of this tested and in use on as many platforms as Mozilla runs on (which are quite a few, including devices)
Here are some slides I made a few years ago, all of which still works today
More info at http://www.mozilla.org/projects/xpcom/
this thread has some related discussion... -- RN
I would like to see a strong emphasis on applications that "flow" easily working fine no matter what the screen size is or user doing window resizing, selecting different font sizes etc. Printing should also be easier. A system that used an HTML like way of doing the layout instead of sizers is one example solution.
I see that you are considering using ICU. WebKit uses ICU4C. Boost and recent versions of libxml2 can configured to use ICU4C. Xerces (not on the table at the moment) can use ICU too.
ICU's platform and compiler support can be found in its readme.html. ICU can be configured to be smaller for portable devices. Companies do use/distribute ICU on small portable devices to mainframes and a whole lot of platforms in between.
If you pick one of these projects, it probably wouldn't be much of a stretch to use ICU.
Additional notes about ICU: My company makes heavy use of character encoding conversions and date/time; wxWidgets simply did not cut it for this, so we utilize ICU4C alongside it. Works wonderfully! The biggest pain of it all is the differences in the build system, but for the supported wxWidgets platforms, converting some of it to Bakefile really shouldn't be that bad.