tkWWW is implemented using the W3C Common Library Code. In essence, a Tcl interface has been written for this library, and all of the network protocols, HTML parsing and document rendering are performed using C code.
I didn't want to mention it (since it might sound like sour grapes ;-) but just about everyone I've spoken to thinks tkWWW is pretty seriously broken. I, and many others, have had trouble even getting it to compile, etc, etc.
SurfIt!, on the other hand, performs all network protocol handling, HTML parsing and document rendering using Tcl scripts. This should make it more easily ported to other platforms. It is being designed to support hypertools and applets. As far as browser features go, well... it's still only an alpha release ;-) But I'm catching up fast!
Since SurfIt! has no C code there are no compilation problems and no portability problems (in and of itself, that is). Just point it at a suitable wish and it will run.
The real problem is going to be the choice of windowing toolkit.
I believe that the Tk toolkit is more mature than Java's AWT (A Windowing Toolkit). Almost all of Tk has been made available to applets - applets can create top level windows for example. I've haven't been able to do much comparison to AWT since the documentation is not readily available yet (as at 4/9/95). However, AWT is being aggressively developed so the situation may soon change.
SurfIt! also includes support for hypertools - applications which can interoperate by sending Tcl code to each other. As far as I know, Java doesn't have this capability.
If you disagree with my thoughts on this subject, or if you can provide a knowledgeable, impartial and informed comparison/essay on the subject then please contact