Message-Id: <9212011804.AA24775@pixel.convex.com> To: timbl@nxoc01.cern.ch Cc: www-talk@nxoc01.cern.ch Subject: Re: Lets keep the web together In-Reply-To: Your message of "Tue, 01 Dec 92 16:52:50 +0100." <9212011552.AA01907@www3.cern.ch> Date: Tue, 01 Dec 92 12:04:51 CST From: Dan Connolly <connolly@pixel.convex.com> >Getting the protocol code and parsing code right and tracking bugs and external >changes will be some work, I feel that it is important that we do end up with >common code. > >I know what it is like to have to maintain code on lots of platforms. >You have to write the code specially. There are W3 code style guidelines in the >web which say what we found out to be necessary. It's a pain. Noone is going >to support 8 parsers on 12 platforms. > >I am therefore a little worried about the proliferation of implementations. >(I know, I'm rather pleased about it too! :-) I would like to see one or maybe >two definitive libraries around (two, so to test the first one for >self-consistent bugs), but not four. I feel that if there are too many, then >there will be cases of little things which work on one but not on the others, >because there is not enough support effort for each. And we want to keep the >quality high, in terms of reliability, conformance, and portability. Well said. With this in mind, I'd like to take issue with the state of libWWW: You can't use any of the parts without using the whole thing: you can't use the parser unless you use the HText data structures, including the HTMainText global variable! The Gopher processing is intertwingled with everything else too. There should be a GopherOpen() routine, for establishing a gopher connection and handling seletors and searches, and a GopherMenu() routine, that handles application/x-gopher entities just like text/plain and text/x-html entities are currently handled. Similarly, there should be an FTPOpen, LocalFileOpen, HTTPOpen, etc routines with an easy way to plug in a WAISOpen routine when somebody gets around to it. I should be able to add MIMEMessage(), MIMEMultipart(), PostScript(), etc. format handling routines alongside the text/html and text/plain routines. There is *no reason* for the NOARGS, ARGS1, ARGS2, etc. macros. You just use the PARAMS() macro in the header, and use K&R style in the .c file. The only place where this doesn't work is with varargs foo. There are #ifdefs for VAX, unix, and ThinkC all over the place. I'm sure these could be localized. This is why Tony Johnson started from scratch, and why other implementors will do the same. >If you are thinking of a smart extra to EITHER HTTP or HTML then please define >it and discuss it here on www-talk. Don't try just to get it out before the >next guy. He is probably doing it too, a different way, and theese are all >exciting ideas which benefit from being hacked around on the net. > >When the idea has come out, we can put it into a tentative "future" spec >for comment and everyone can work from it. Again, we see the need for a CSCW platform. I think that if we archived the www-talk mailing list, and built an HTTP server that would serve the articles up with hypertext links between folloups etc, it would be a good start. If I code up a server in perl that can do this, will somebody provide disk space and network access? Dan