TclTalk is deployed as a starkit for best possible plattform independence.
A beginner`s learning tool (or teaching tool?) and development environment for Tcl/Tk, written in pure Tcl/Tk.
Tested under Linux using tclkit-8.5.1, kbskit-8.5.3 (No write permission. Needs Mk4tcl!), kbskit-8.6b1 (Works, but only with a Metakit version), and WINE windows emulator using tclkit-8.5.2.exe
The main idea is to give the user immediate feedback from the underlying interpreter, which can be very instructive for the novice. Therefore TclTalk tries to follow some concepts from common Smalltalk systems, some of which are workspaces, browsers and image-based developing. In the case of TclTalk the latter means that the user does not necessarily produce any files lying around and keeping track of while scripting. Instead, all development done using Tcltalk's browser is tracked in a change.log and/or packaged to Tcl/Tk packages inside the kits file. This way the user has always only her tcltalk.kit file, or whatever you name it for the purpose of development. The broader idea is, to take a fresh copy of a tcltalk.kit file, run it and start developing using workspaces and browsers. When ready or when pausing, simply quit TclTalk and it will keep your changes for a next fresh start. The only thing you lose from start to start is the workspaces and their contents. This should give the user a motive to use the browser for the persistence of code.
escargo: This not to be confused with other "image-based" computing, which has to do with image processing. This is the kind of "image" used in some early APL systems and with common Smalltalk implementations.
After entering your initials, you can start right away typing code into the big transcript window, mark it with your mouse and then use the context menu on the right mouse button to let Tcl/Tk evaluate that marked code and print the result beneath the code into the same window. This also works on any other workspace.
To serve as a learning tool, TclTalk provides a simple mechanism to manage its tutorial files. They can easily be written inside TclTalk, using a workspace and then saving them in the /doc directory inside the kit.
To realize some sort of image based computing, TclTalk's starkit is writable and all changes that you make using the system browser are traced in a change log within the kit's file.
Deployment of applications is as easy as using TclTalk's menu. Just choose the option "Create turnkey starkit..." and answer a few questions. In case of success you get a standalone starkit ready for deployment. If you start such an application kit with the command line parameter -ide, then it will start in modification mode and shows you TclTalk's environment instead of running the app. You can then make changes using the browser and exit to run the now changed app.
For a screencast, showing the complete march from a fresh start of TclTalk to a new standalone "turnkey" starkit have a look at: http://tcltalk.ath.cx/files/sessions/session002.swf
tb I just found out, that I can build a metakit version of tclkit 8.6, using Tclkit Kitgen Build System :) - It's essential to TclTalk, because the vlerq package doesn't write to a sourced kit file. I felt let behind when there was no metakit build for 8.6, but now I have a fresh tclkit-8.6 and will do some tests. BTW: I use TclTalk every day while developing packages for a little shop system on tclhttpd. It's a very handy tool when developing PDF invoices using the pdf4tcl and sqlite packages :)
Not to be confused with the similarly named (but differently purposed) TclTalkback.
arjen 2013-08-30 11:09:19:
I had a quick look at this. It is looking rather nice, but at least one critical remark: it was not clear to me that I have to select the code I want to run by mouse. I found that out only by looking at the help text.
tb 2013-08-30: Thanks for response. I haven't been engaged with tcltalk for some time now. Although earlier I used it a lot, it's still only a proof of concept. It needs a heavy round of decomposition and refactoring to stand as an example of domain centric namespace based Tcl programming, which it tries to propagate.