Using Tcl to write WWW client side applications within the WWW browser

Purpose: detail some of the ways that Tcl can be used within the client's WWW browser.


There are several ways to do this.

There was, in the past, a package called the Tcl/Tk Tclet Plugin, which allowed one to safely display data in the browser. This code is now on Sourceforge.net and users can sign up for the project to help debug and maintain it.

There was some work by Mike Doyle (MDD) and Hatte Schoeder on writing interactive web applications - they actually published a book on the subject. The company for which they worked, Eolas, has a patent on the idea of software being downloaded into the browser for execution I believe.

There is also some research that was presented at the last two or three Tcl workshops relating to Tk applications running safely over the WWW but not dependant on the plugin.


There are often questions about the status of the plugin code. Unfortunately no one appears to be interested enough in the code to keep it up to date. And with the latest versions of Microsoft Internet Explorer no longer supporting plugins, it becomes less and less relevant.


In Internet Explorer at least, Tcl can replace JavaScript or VBScript as the language used to script HTML pages if you install a Tcl Active Script engine.


Note that an ActiveX Tcl plugin was mentioned in comp.lang.tcl within the past yr or so - don't know whether that info made it to the wiki yet or not. But as was said by others, it is so sad that this package never was really picked up on by the community for support.


During the conference this week, one topic that came up was that a Tcl binding to Mozilla's XPCOM would potentially provide one with the ability to use Tcl as a scripting language within the HTML page, ala Javascript. At least for a Mozilla User... see tclxpcom for some preliminary work on this.


The Tcl scripting language has been plugged into Google's Native Client, allowing Tcl code to run inside the Google Chrome browser in much the same way that JavaScript does [L1 ].