I started using Tcl about 9 years ago. I started playing with Tcl and Tk back then. My first programming language was TI Extended BASIC for the TI-99/4A. I've been using computers since I was about 2 years old.
I found out what Tcl really was via a magazine interview with John Ousterhout in Linux Journal. I found it interesting. Before I thought Tcl was tclsh -- just another shell like bash or tcsh. Now I see Tcl as much more.
I started off trying to create a game with a friend. It was called the Island Project (a Myst-like game) with images rendered in the Blender (back when it was a commercial product -- I even bought a C-key). I was still learning about Unix/Linux at the time. It was quite an adventure.
I started to learn C just so that I could extend Tk to make it faster for the game. I never completed the game, but some useful projects resulted. Now, many years later, I'm told that I'm a good C and Tcl programmer, so I'm now a Tcl core developer/maintainer.
My biggest project is probably NexTk (needs a better page), followed by Whim. I have a collection of code called megapkg that is the base for NexTk and Whim.
These days I do volunteer work during the work week. I mostly do billing/accounting work. It keeps me busy. I'd really like an awesome programming job. I could use more fun projects, and challenges.
My thoughts on OOP in Tcl
More than OOP I believe that Tcl needs better data structure support in the core. I don't believe that every data structure is naturally represented or optimally represented by a dict. My own work on structure and objstructure extensions I feel is in some way superior to the OOP frameworks proposed, but I am naturally biased. My works have evolved and been designed to support widgets naturally. I have a work in progress document about the design of the NexTk widgets that use objstructure, which will soon be shared on this wiki.
See: Anatomy of a NexTk Widget
NexTk Progress
I believe I am near a 0.5 release of NexTk, which will be an installable version of NexTk, with an interactive command shell, amongst other things.
Patches that I want to get integrated into Tcl 8.6 sometime soon (I put them here so that I don't forget): http://www.xmission.com/~georgeps/tmp/tclExecute_TimeTable.diff9 (MS has a newer patch that may improve accuracy in the patch tracker)
To roar without jackals. To be a beast without a field. To be a human without humanity.
A few projects:
Will Dye was interested in my ~/.tclshrc so here it is:
rename unknown _unknown proc unknown {args} { global that if {[catch {expr $args} temp]} { uplevel 1 [concat _unknown $args] } else { set that $temp } } proc file.data f { set fd [open $f r] set data [read $fd] close $fd return $data } proc sum args { set n 0 foreach a $args { set n [expr {$n + $a}] } return $n }
Example usage:
% 1 + 2 + pow(2,20) 1048579.0 % sum 1 2 3 4 5 15 % file.data .xinitrc ...
Pages are rated on a scale of 1-10 based on how satisfied I am with the result.
Applications/Tools
C Extensions/Tools
Techniques
Useful Tcl Procedures
Widgets
Fluffery
old -- work in progress
T
U
W
Z