Updated 2012-05-17 23:34:21 by RLE

Tcl is a highly extensible and introspective language. The core commands are progressively being replaced by ensembles, and this means that one can add new sub-commands to any of them, wrap any extant subcommand with new functionality (and thereby completely change, or simply augment its functionality.) Another useful [skinning] technique is RS's [know] command, enabling you to create new commands by matching their names with regexps on-the-fly. Skins should be composable - so that as long as there's no name-collision, multiple skins from different authors can co-exist.

It should be understood that these techniques are encouraged, and provided for. There is no need to wait for a new release of Tcl to get the core functionality you need, nor to write boilerplate circumlocutions to massage command arguments or results: just extend what's already there. Don't wait for someone else to do it for you ... seize the freedom Tcl gives us.

The process of extending existing core commands is hereby and hereinafter called [skinning], and there is [more than one way to skin a language]. The only caveat is: skins need to be packaged so that they can be package required.

Some candidates for [skinning] are: