Updated 2017-08-06 17:21:49 by MJ

Real name Mark Janssen (Tcl Chatroom nick: mjanssen). I have been using Tcl since 2004 and I love it.

There are several reasons I love Tcl:

  • It supports Unicode in code and GUI
  • The community is great
  • It is truly interactive: Open a console in your application and see what is really going on
  • Tclkit or Starkit deployment is very, very convenient
  • It is very easy to install libraries without changing config files all over the place
  • The community is great
  • Very simple syntax and everything is a string: This allows for some funky stuff like redefining proc
  • The C-API is one of the easiest of any of the ones I have seen (Perl, Python, Ruby) this makes it very easy to wrap C libraries. See for an example readline
  • The community is great

Current projects

  • Embedding tcc in a Tcl extension. It can compile an example Tcl extension at the moment tdom and supports VFS

Pages I contributed to

Random ideas I like to pursue


  • Tcl frontend to fossil db's
  • Caching in the Self extension using epoch counters

Autoexpansion of leading word

I have created a Tcl git repo with changes needed to have auto-expansion of a leading word at [2]. This allows data structures like TOOT with {*}. To demonstrate that example:
% set m {matrix {{1 2 3}
               {4 5 6}
               {7 8 9}}
% proc matrix {matrix {method {}} args} {
     if {$method eq {}} {
        # return the 'typeless' matrix
        return $matrix
   switch $method {
        row {
           return [lindex $matrix [lindex $args 0]]
% $m ; #gives the undecorated matrix
{1 2 3}
               {4 5 6}
               {7 8 9}
% $m row 1
4 5 6

Which is a thing of beauty IMO.

Everything I post on the wiki is in the public domain unless explicitly marked otherwise. I would love to hear if some of it was useful to you though.