Mark spent most of his career as an independent programmer, award-winning author, and trainer. Mark is a qualified teacher and graduated with first class honours in Computer Science. Prior to starting Qtrac Ltd., he spent many years in the software industry, primarily as a programmer. He owned and ran Qtrac Ltd. for 20 years until its demise in 2026.
See the Site Map for Mark’s commercial software (no longer on sale), and his open source software, books, and short-form technical writing.
Mark’s interests include the long defunct Personal Computer World magazine and more generally the history of personal computing in the C20th, as well as programming languages.
Mark uses the Commit Mono font for coding and for terminals. For typesetting and diagrams Mark uses the Lout Typesetting System, although for notes he sometimes uses commonmark markdown.
By email Mark can be contacted as m.n.summerfield (gmail—dot com).
I first encountered Tcl/Tk in the 1990s. I was amazed at what could be achieved—especially cross-platform GUI applications—with so little code. However, once I started to learn the language using Brent Welch’s book, I found I just couldn’t think in the Tcl/Tk way—it was just so different from any language/programming paradigm I’d known. (My guess is that if I’d known Lisp I’d have got on fine with Tcl/Tk.)
My next encounter with Tcl/Tk was in the mid 2000s. I was required to write various small example programs, and each one had to be written in multiple languages. I’d always start by writing in Python (the language I knew best back then), then translating to JavaScript, Perl, Ruby, and Tcl. Translating was pretty easy—except for Tcl which worked so differently.
John Ousterhout’s second edition of “Tcl and the Tk Toolkit” came out in 2009, and in 2012 I bought the book and had another go at learning Tcl/Tk. Unfortunately, the book covered Tcl/Tk 8.5 which was the last purely procedural version of Tcl/Tk. And by then I was a very keen object-oriented programmer.
When Ashok Nadkarni published his “The Tcl Programming Language” in 2017, I gave Tcl/Tk another try. This book only covers Tcl (no GUI programming), but I found—at last—that I finally understood Tcl’s approach to procedural programming. The book does cover object-oriented (OO) Tcl, but for Tcl/Tk 8.6 where the OO support is incomplete.
When Tcl/Tk 9.0 was released in 2025 the OO support was finally complete. And with Ashok Nadkarni’s second edition covering this version I was able to fully come to grips with Tcl/Tk’s approach to OO programming.
Now I feel fully able to program Tcl/Tk using the procedural or OO paradigms—and often utilize both. Furthermore I’ve really come to appreciate what a powerful, easy-to-use and easy-to-understand language Tcl is. The key for me was accepting that Tcl/Tk works differently from most other languages; but once I adapted to the “Tcl way” I found Tcl to be easier, more flexible—and more enjoyable to program—than any other language I’ve ever used.
If you don’t know Tcl and want to learn a new approach to programming—or just want some fun—Tcl is worth trying. I suggest starting with Tcl’s 12 simple rules (which specify Tcl’s entire syntax), and then read Ashok Nadkarni’s “The Tcl Programming Language” (second edition). For GUI programming with Tk, John Ousterhout’s “Tcl and the Tk Toolkit” (second edition) is still worthwhile. There’s also a new book (that I haven’t read), Clif Flynt’s “Tcl/Tk: A Developer’s Guide” that might be worth a try.
I stopped writing technical books some years ago for a variety of reasons, despite having many ideas for new technical books.
AI has now reached the point of being so useful for answering technical questions (based on all the technical books that the various AIs have effectively stolen), that it has completely destroyed any incentive I may have had left to write any more technical books.
I have written software for many decades: to earn a living, to explore ideas, to learn, and for fun.
Now I find that AI—with plenty of help—is capable of writing adequate code. I thought I could use AI to write the code that I wanted written but didn’t feel like writing myself (or that required time-consuming research that I wan’t really interested in). And this approach has worked for me and saved me lots of time.Although AI has pretty well destroyed technical writing as something I’d ever do in the future, despite AI, I still enjoy programming for the pleasure of the activity itself, and continue to write small GUI applications and command line utilities using Tcl/Tk and Tcl.
Your Privacy •
Copyright © 2006 Mark Summerfield.
All Rights Reserved.