Re: saving a URL/newbie rant

Ok - some reaction is better than no reaction ;-) While I see a lot of your 
points I must also say a lot of the information that you are asking for 
actually is there. Maybe one of the problems is that we haven't been good 
enough of getting the message accross.

I know this is a long mail but I would urge you all to please read this 
carefully as I would like to get feedback!

Even though I have seen mentioned several places that I shouldn't reply - 
let's go through the main points of critique and comments that I have seen 
so far are and see what we got ;-)

1) a good FAQ

This is a good idea but let me give some of the experiences that I have: I 
tried some time ago to maintain a FAQ but there were never any references to 
it and it soon faded out. Then I tried a WIT discussion area where people 
could have live discussions - much like news groups. For those of you not 
familiar with WIT, it was something that Ari Luotonon produced while at 
CERN. We have a pointer to it at 


However, this was also completely dead. However, before saying "been there - 
done that" I think that one of the main criteria for having a FAQ is that it 
is alive - that it - we all have to contribute to it. Currently, the only 
way I can see this happening is by using a mailing list but if you have 
better suggestions then please say so.

2) list of all functions in alphabetic order

This has actually been there for at least some months - it was even 
referenced as "news" from the Library top page. The list is also part of the 
distribution package and you can find it online at


It is also referenced from the Library Internals top page.

3) We should use C++

While I think that this is a good idea I am not so sure how much it actually 
buy us. For the 4.0 and the 4.1 which is soon to be released, I have been 
focused on the APIs in order to get them stable and to allow maximum 
flexibility. While it is true that classes do affect the APIs I think that 
having threads and garbage collection will affect the APIs much more. As 
these features are not part of C++, I think that the best thing is to write 
some wrappers for C++ to use instead of rewriting the whole library. 
Actually, I would very much like to see a higher level API written in C++ on 
top of libwww to support clients.

4) No support

As for the easy answer I can say that W3C is not committed to provide 
software support. We produce reference code to show the way that we would 
like the Web to be like. The main purpose of libwww is to define an API that 
is flexible enough to satisfy a broad set of applications. This has as a 
result that the API is fairly low level but the idea is that other APIs can 
be build on top of it. This also follows nicely with the idea of having a 
C++ API on top of libwww. Please read my position paper for the API workshop 
at the WWW5 Conference. Pointers are


5) No testing facility

MIT student Alex Lian has been working on an automated test suite of the 
core Library. We hope to be able to give out a test package this summer 
which will contain tests for the library core and run time tests for the 

6) The documentation sucks

The current documentation _is_ not always up to date, but this is a resouce 
problem that I can't see easily fixed. To summarize, the documentation 
consists of

Library Architecture 

This document describes the architecture of the Library in generic terms 
without referring directly to the code itself. It is meant to give an 
overview of the design which is required if you intend to enhance the 

User's Guide 

This guide describes the "user's view" of the W3C Reference Library. It 
concentrates on describing the API and how the application programmer can 
use the Library. It also describes who is responsible for memory management, 
how to initialize modules, etc. Reading this guide should be sufficient in 
order to use the Library without being aware of exactly what is going on 
underneath the interface. 


This is the overall set of interfaces in the W3C Reference Library. An 
interface can cover multiple related C modules and it is defined by a WWW*.h 
include file, for example WWWCore.h. On Windows platforms, each interface 
corresponds to a DLL with a DLL definition file defining all exported 
methods and data objects. 

Especially the Internals should provide information on where to find the 
functionality that you are looking for. This is available from


7) No start up examples

I tried to supply some very simple start up examples in the User's Guide. 
They can all be found on the Examples page at


Please go through these and see what's missing. Also, you can have a look at 
the start up section of the User's guide at


8) How to handle patches

We have a new bug mailing list available - it is called


and it is a normal mailing list just like www-lib@w3.org. The purpose is for 
you to mail patches and bug reports so that we don't loose them. I have 
already posted some mails from you to it but would you please check that not 
your patch has been dropped? You can find the archives at


The hope is of course also that if you see any exiting projects here then 
you are more than welcome to go ahead. A good idea would be to send a mail 
saying "I'm interested in this - I have this plan etc."

Wew - That said - I am happy that we have a discussion going on how to 
proceed. Note that I say "we" as I need your help as well. I am happy to see 
the interest so now we just have to get going...

Suggestions welcome!


Follow-Ups: References: