# TkWWW

tkWWW is an early, now discontinued web browser and WYSIWYG HTML editor written by Joseph Wang at MIT as part of Project Athena and the Globewide Network Academy project. The browser was based on the Tcl language and the Tk (toolkit) extension but did not achieve broad user-acceptance or market share, although it was included in many Linux distributions by default. Joseph Wang wanted tkWWW to become a replacement for r r n and to become a "swiss army knife" of networked computing.

## History

Joseph Wang announced in July 1992 that he was developing a web browser based on Tk, and made the alpha version 0.1 publicly available.
Version 0.4 integrated a much easier installation procedure, a better default color scheme, keyboard traversals and a history mechanism. Version 0.5, released 8 February 1993, introduced support for multiple fonts.
Version 0.6 made personal annotations compatible with xmosaic and improved the GUI.
With the release of version 0.7 on 1 May 1993, tkWWW became the first WYSIWYG HTML editor for X11 which was originally written by Nathan Torkington. Another improvement was the ability to start in iconic mode.
Version 0.8 improved the graphical user interface (GUI) and added a "reload" option.
In version 0.9, the browser achieved beta status and added support for character-styling tags and for version 7.0 of Tcl, as well as partial support for image tags.
Version 0.11 worked successfully with RCS.   Based on the newly released Tk 4.0, tkWWW 0.13 was an alpha release, in order to allow for wider testing. It also added full support for inline images.
Support for HTML+, a proposed successor to HTML 2, was implemented while the specification was being developed.
tkWWW was extended by the GNU Guile project, to support Scheme extensions.

## Further development

The short-term agenda for tkWWW included an SGML parser and the separation of the browser from the editor, in order to simplify user experience. The long-term plan included new functions like word processing, directory navigation, file transfer, and news and email reading.

## Features

* With the htext-widget, Tk code could be embedded into web pages.
* Because the interface was written in Tk, it was easy to modify and extend the system.
* A WYSIWYG editor for HTML web pages, with all major HTML functions (character emphasis, headings, paragraph breaks, lists, anchors)
* Support for many protocols: FTP, gopher, HTTP, telnet
* Multiple fonts, including support for Asian fonts
* Multimedia formats supported: bitmap, DVI, GIF MPEG, PostScript, and X Window dump files
* Automatic file unpacking
tkWWW was developed before the advent of Safe-Tcl, to allow untrusted applications to run from non-privileged accounts. Without such a safeguard, the potential for automatically executing remote scripts was a security issue.
tkWWW was criticized for not supporting the mailto URI scheme, rlogin, WAIS, and HTML forms. A stop-button to interrupt the transfer of web pages was also not integrated.

## Extensions

Because tkWWW was based on the Tk framework, it was very easy to expand its functions and to extend its capabilities. Indeed, there were several extensions and applications based on tkWWW.

### Phoenix

Phoenix was a well-known web browser and editor, created at the University of Chicago in the Biological Sciences Division, that was built on tkWWW version 0.9. Development began in the summer of 1993, when there weren't any easy-to-use web-page editors available. Development ceased in May 1995, there being a variety of similar tools available.  The main new features were: improved HTML+ support, deeper integration of features such as copy and paste and native look-and-feel, and support for the Kerberos protocol by modified servers. The browser was supported on MS-DOS, Microsoft Windows, Mac OS, and on Linux and other Unix systems. Further development would have added support for BSD platforms.
The short-term plan for tkWWW was to separate the editing and browsing functions, as had already been accomplished for Phoenix. Inline-image support for GIFs and ISMAPs were also already integrated in the first version of Phoenix.
The ability to access Multi-user Object-Oriented (MOO) or Multi-User Dungeon (MUD) servers was requested as a new package for tkWWW, and this was delivered by the Phoenix team.

### The TkWWW Robot

Scott Spetka presented a paper at the Mosaic and the Web Conference in Chicago entitled "The TkWWW Robot" in October 1994. TkWWW robot was one of the first web crawlers and internet bots based on tkWWW. It was developed over the summer at the Air Force Rome Laboratory, with funding from the Air Force Office of Scientific Research, to build HTML indexes, compile WWW statistics, collect image portfolios, etc. TkWWW robot's major advantage was its flexibility in adapting to virtually any criteria to guide its search path and to control its selection of data for retrieval.
The search algorithm worked by identifying "web neighborhoods" — finding logically related homepages. The bot returned a list of links in the form of bookmarks. It was limited, however, in that it could include only two links from the original homepages.

## System requirements and technical

tkWWW was originally developed for Unix but would run on any modern operating system where Tcl/Tk is properly installed. To display images, tkWWW requires the xli package.
tkWWW has two strictly separated processes: one for the GUI, and another for network interaction and for parsing HTML. The latter is compiled C code based on the CERN libwww library. The front-end GUI is written in Tcl/Tk, which is interpreted at run time.