Boost logo

Boost :

From: John Maddock (jm_at_[hidden])
Date: 2002-10-25 06:44:55

> Just a simple example from life. One company provides some service on
> Internet. It involves downloading ActiveX control (~500k). Of course, some
> people defected during installation process. When defection rate was
> analyzed it turned out that a lot of people wouldn't wait for download
> (automatic installation) to finish. The rule is simple: if takes more than
> minutes to download something, majority of people will leave no matter
> you do on web site or how you explain waiting time to them. Amazingly in
> age of broadband vast majority of US users are using regular modems. Some
> them can download at 56kbps but majority peaks about 28kbps. The situation
> is even worse for international users. Additional problem is presented by
> rising wave of wireless users, which speed is limited by 40-60kbps at
> There is one more consideration: if some library adds, say, 400k of dead
> weight to the app, which uses 10 libraries like that, the total excessive
> weight is going to be 5M.
> If your library is 500k alone it means it will take about 3 minutes to
> download it using most popular connection --- 28800. It renders it
> unsuitable for client side of distributed applications targeted towards
> user. It doesn't matter how good is what you do, if user will abandon
> download. In the example above 500k will double size of the client (.exe
> compression may shave off some fat). Use of Regex++/Greta was evaluated
> ruled out for now. To be honest a lot of really useful libraries didn't
> this criteria and were replaced by home-made solutions.

Static linking to boost.regex with VC7 seems to add about 50K in the minimal
case with VC7, is that still too much for an ActiveX?

> I agree with Andrei that user/developer should not be "punished" for
> functionality, which is not used. In fact C++ was built upon this kind of
> philosophy. Regex++ and Greta are great libraries but they should support
> the same philosophical concept as well to be truly universal.

Accepted, but this is like saying that I don't want my C++ compiler to
support features that I never use (cause the program files are too big),
both are interpreters at the end of the day. As Andrei says to can do this
with preprocessing, but it sure is a pain...

John Maddock

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