Boost logo

Boost :

From: Miro Jurisic (macdev_at_[hidden])
Date: 2004-08-25 00:43:40

In article <079f01c48a2e$3e02b4f0$a901000a_at_mat>,
 "Mathew Robertson" <mathew.robertson_at_[hidden]> wrote:

> > I agree. You point out two major failing of most C++ frameworks: lack of
> > modern C++ use and lack of exception safety. I see the rest of this thread
> > talking a lot about C++ techniques, but there seems to be one major
> > component that everyone is overlooking: producing a good user experience.
> >
> > Perhaps as a Mac developer I am more aware to the importance of a good user
> > experience; one of the major failings of every cross-platform C++ framework
> > on Mac OS is a poor user experience -- usually due to reinventing
> > OS-provided UI wheels, and thus often making the UI subtly inconsistent
> > with the rest of the OS. This kind of subtle (or less subtle) inconsistency
> > is what makes users (entirely justifiably) bitch and moan and shoddy ports,
> > and give bad product reviews.
> umm... which part of "cross-platform" and "use native functionality" is more
> important?

You are falsely presenting them as mutually exclusive choices.

> If you have some functionality provided by one OS, while another doesn't
> provide it... what do you do?

That case is actually almost completely irrelevant to my point. My point has to
do with "reinventing OS-provided wheels", which is completely different from
providing additional functionality on a particular OS.

> MacOS is a hard creature to make apps portable to - as its UI is
> significantly different to most other OS's, that making a cross-platform
> library which appears to work as a native OSX app is hard, real hard.

I don't know where you got the idea that the Mac OS X UI is significantly
different from most other OSes. It is more alike than it is different, and I
think you are misinformed (or, more likely, that your information is out of
date). If you can provide some specific examples, I will be happy to try to
correct you; However, I don't think that discussion belongs here.

That said, I think that your argument here is really that if you start by
designing a framework without understanding how Mac OS X differs from other
OSes, your framework will have trouble porting to Mac OS X. This is hardly a
surprise. You can argue that way for any platform -- it's hard to port to a
platform you don't understand.

> Take Mozilla/Firefox/OpenOffice - each of these suffers the "not quite OS
> integrated, compared with native apps", even though these apps are propably
> some of the highest profile cross-platform applications.

The quality of the user interface of all of those applications is something that
I, as a professional Mac developer, would be ashamed to ship. (They are not all
equally bad, though.)

I firmly believe that the problem of producing a cross-platform framework that
is able to accommodate the user experience demands of several platforms is
difficult and tractable.

I also believe this community is capable of producing such a framework, but I
think that it's telling that the title of this thread is "Java style GUI in
C++"; a Java style GUI typically implies making user experience sacrifices on
every platform, and therefore I believe that a "Java style GUI in C++" is likely
to be driven by misguided goals.


Boost list run by bdawes at, gregod at, cpdaniel at, john at