On Mon, Oct 22, 2007 at 08:33:16AM +0200, Lars Gullik Bjønnes wrote:
> | But I am aware of your opinions.
> | 
> | That does not mean I share it. We go through all sorts of trouble to
> | make boost usable within LyX up to bundling the latest and greatest,
> | and even that needs to be patched sometimes, and even that causes
> | irregular behaviour and bloats compilation. On the other hand, you
> | consider Qt not acceptable outside frontends/* without giving reasons
> | above a "real dislike".
> 
> One of the things I dislike about Qt (in general) is the super slow
> adoption of the standard and how it recreates and adds to the standard
> with no intention of trying to move the standard closer to what Qt
> needs. And with the upcoming new standard I belive that is only likely
> to get worse.

One of the things I like about Qt is the pragmatic approach.

  Example 1:
   
  std::string e.g. is a mess, interface-wise,
  functionality-wise, performance-wise (compilation and use).
 
  QString 'just works' for all practical purposes. And it is so much
  more convienient to use

     if (str.endWith("xyz"))

  [Or maybe  if (str.endsWith(QLatin1String("xyz"))) if one wants
  to be explicit on the encoding]

  instead of whatever std::string provides (inspite of its fat interface).
  I am not even sure what the most efficient method is. Something like

     string const suffix = "xyz";
     if (string(str, str.size() - suffix.size()) == suffix)

  perhaps. Perhaps not.

 
  Example 2:
 
  Instead of having ridiculous requirements like 'std::list::splice() 
  is O(1)' resulting in 'std::list::size() is O(n)' 

      { return std::distance(begin(), end()); }

  the common case should be optimized.


  Example 3:

  Qt is "feature complete" for quite a few applications. I do not need
  a networking library, I do not have to know how to start processes
  on different systems, I do not need to know where and how to store
  persistent settings, I do not need to find a library to handle 
  signals and slots, serialization, and to a certain degree even
  introspection. *sigh*

Wrt to 'moving the Standard closer to what Qt needs': I guess you 
know the people in the committee good enough to know that any 
proposal coming from the outside is nearly impossible to get considered,
let alone becoming part of the Standard.

Instead we have things like 'main does not need a return' in the
Standard, or 'export' which nobody could properly implement in almost
a decade.

I gave up trying talking to these people a few years ago as this turned
out to be complete waste of time. And note that this was well before I
even tried to use Qt, so I was certainly not biased at that time.

[Since we are at it: Right now I consider the Committee rather a threat
then a boon for the very existance of C++. A glacial progress on
non-issues, no progress for important issues, and in the meantime
things like C# get into a shape were they are considered "usable"
- and pushed as that by the big guns]

> OTOH boost have a pretty good track record in this respect, quite a
> few of the boost libraries and boost initiated changes will be in the 
> next version of the standard.

There are two things really good in boost: The smart pointers, and
regexps. Apart from that boost is rather 'medium quality' if not worse.
Letting 'boost::filesystem::exist' throw is simply intolarable.

Andre'

Reply via email to