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
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
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 email@example.com. 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...