<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/tcl-tk-9-1-jj4sxhcha" -->

---
title: Tcl/Tk 9.1 | daily.dev
description: Tcl/Tk 9.1.0 is in development toward a stable release targeted for September 2026, building on the Tcl/Tk 9.0 foundation. Highlights for Tcl include new...
canonical: https://daily.dev/posts/tcl-tk-9-1-jj4sxhcha
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Tcl/Tk 9.1 | daily.dev
og:description: Tcl/Tk 9.1.0 is in development toward a stable release targeted for September 2026, building on the Tcl/Tk 9.0 foundation. Highlights for Tcl include new...
og:url: https://daily.dev/posts/tcl-tk-9-1-jj4sxhcha
og:image: https://api.daily.dev/og/posts/jj4SxhCHa.png
og:image:alt: Tcl/Tk 9.1
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Tcl/Tk 9.1

**[Lobsters](https://daily.dev/sources/lobsters)** · 2 min read · 0 upvotes · 0 comments

## Summary

Tcl/Tk 9.1.0 is in development toward a stable release targeted for September 2026, building on the Tcl/Tk 9.0 foundation. Highlights for Tcl include new commands like unicode (Unicode normalization), timer (monotonic clock with microsecond resolution), lfilter, and interp set, plus new C routines, C99 math functions in expr, a required initialization routine change, case-insensitive macOS paths, and Windows exec search reform. Tk 9.1 adds accessibility screen reader support, initial bidirectional/RTL text support, a new ttk::toggleswitch widget, tk attribtable command, revised Aqua send command, rotated label text, improved listbox selection colors, and removal of obsolete Windows XP appearance support.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.tcl-lang.org/software/tcltk/9.1.html>

## Questions this post answers

### What new features does Tcl/Tk 9.1.0 add on top of Tcl/Tk 9.0?

Tcl/Tk 9.1.0 adds a new unicode command for Unicode normalization, a timer command with microsecond-resolution monotonic clock, lfilter for list filtering, and an interp set command for child interpreter variable access. It also adds many C99 math functions as expr functions, new C routines such as Tcl_ListObjRange and Tcl_AttemptCreateHashEntry, and extended 64-bit size support.

_Developers tracking Tcl upgrades can follow release breakdowns like this on daily.dev._

### Does Tk 9.1 support screen readers and right-to-left languages?

Yes, Tk 9.1 introduces accessibility screen reader support along with initial bidirectional text support for right-to-left languages. It also adds a new ttk::toggleswitch widget, a tk attribtable command, rotated text on labels, and improved listbox selection colors, while removing obsolete Windows XP appearance support.

_Teams planning accessible GUI upgrades can keep up with Tk changes like these via daily.dev._

### What breaking change affects Tcl applications calling Tcl_FindExecutable in version 9.1?

Applications built against Tcl/Tk 9.1 are now required to call an initialization routine, either Tcl_FindExecutable or TclZipfs_AppHook, before use. This is a required setup step that was not mandatory before, so existing embedding code that skips this call will need to be updated to avoid breaking on upgrade.

_Developers preparing for this upgrade can track breaking API changes like this on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 2 discussions and 280 comments across lobsters, hackernews (as of 2026-09-30).

**TL;DR:** The release is well received, with particular praise for the new accessibility/screen-reader support in Tk and general nostalgia for Tcl/Tk's long history, though there's plenty of side discussion about Tcl's quirks, its use in VLSI CAD tooling, and comparisons to other languages.

**Sentiment:** 65% positive · 30% mixed · 5% skeptical

**The case for**

- Accessibility (screen reader) support in Tk is called out as the standout addition.
- Tcl's embeddable, multi-interpreter architecture (no GIL, isolated interpreter state) is praised as ahead of its time.
- Tcl/Tk is repeatedly described as one of the easiest ways to build simple GUIs with minimal effort.
- Its metaprogramming power (uplevel/upvar, 'everything is a string') is seen as a fun, Lisp-like strength.
- Continued modern relevance is noted, e.g. Wayland porting work planned for Tk 9.2.

**The pushback**

- Some say they'd be wary of using Tcl professionally, citing frustrating experiences with unprofessionally written Tcl code.
- Its heavy, often clunky use in VLSI/EDA CAD tools is described by several as an 'abomination' created by vendors bolting proprietary architectures onto it.
- The 'everything is a string' design is criticized as showing its limits quickly, with some preferring Lua for glue-language use today.
- Tcl's POSIX support is called out as comparatively weak next to Ruby, Python, or Perl.

**By community**

- lobsters (positive): The lone comment welcomes the accessibility, bidi/RTL, and Unicode normalization additions as signs of a solid release.
- hackernews (mixed): A large, nostalgic discussion mixing genuine enthusiasm for Tcl/Tk's design and history with criticism of its CAD-tooling use and debates over its professional viability, alongside long tangents on Zope, COBOL, and alternative GUI toolkits.

**Hottest debate:** Whether Tcl is viable for serious professional/production use, with fond memories of its design clashing against stories of painful experiences in VLSI CAD tooling.

**Open questions**

- When will mainstream Linux distros (e.g. Arch) ship Tcl/Tk 9.0 or 9.1 given some are still on 8.6?
- How will the upcoming Wayland port (targeted for Tk 9.2) affect accessibility and other advanced features currently tied to X11/Windows/macOS?

**Highlights**

> I have a soft corner for TCL, because of its idiosyncracies and weird dynamic stringy playfulness. I would be wary of using it professionally but to play around for the fun of it ... it's just too much fun. Upvar and uplevels are crazy. Python is that kind of cool one behaves when visiting parents of your would be spouse for the first time. Tcl on the other hand is like playing one's secret exclusive and somewhat dangerous games with kid school bestie. Tcl/Tk pioneered the notion of a scripting language as a library. It got threading right. You can run multiple independent Tcl interpreters in the address space of your process and they can exchange messages. Entirety of interpreter state is encapsulated inside the interpreter object, no globals. To a user an it is just a pointer to an object. No need for GIL, no need for serialization/deserialization (pickle/unpickle) ... just within process memory copy (or no copies in case data is immutable).
> — [srean on hackernews · 7 comments](https://news.ycombinator.com/item?id=49900128)

> If you write Tcl/Tk from scratch for an application and architect it well, it's great. The way it's injected into VLSI tooling is an abomination. I've done both. This is partially because when Tcl was first incorporated in VLSI tools it didn't have a good way to organize and modularize code. But this is also because the big VLSI tool shops realize they basically have a monopoly on their integration surface and have no incentive to improve it. It's easier to freeze the integration surface and maintain backward compatibility than it is to move the surface forward.
> — [Karrot\_Kream on hackernews](https://news.ycombinator.com/item?id=49899790)

> I did some Tcl work a quarter century agi, but really if I were in the market for an extension glue language today, I'd reach for Lua first.
> — [fmajid on hackernews · 2 comments](https://news.ycombinator.com/item?id=49901990)

> Excellent to read Tk is getting better acessibility support. I love using it for quick little Perl/Tk GUI applications but I'm also slowly going blind from retinal tearing. It's good to see progress in some GUI toolkits when major desktops like KDE have dropped accessibility in their latest releases.
> — [superkuh on hackernews · 2 comments](https://news.ycombinator.com/item?id=49897136)

> The current main project for Tk, targeting the 9.2 release next year, is porting to work on Wayland. (But not dropping support for X11, Windows or macOS.) Apparently, the widget demo is now working (i.e., you could probably build some applications on it) but advanced features like accessibility support are still in progress.
> — [dkfellows on hackernews · 2 comments](https://news.ycombinator.com/item?id=49906945)

**Source threads**

- [lobsters](https://lobste.rs/s/kbdf4q/tcl_tk_9_1) · 11 points · 2 comments
- [hackernews](https://news.ycombinator.com/item?id=49896712) · 293 points · 278 comments

## Similar posts on daily.dev

- [Develop Cross-Platform CLI and GUI Tools With Tcl/Tk](https://daily.dev/posts/develop-cross-platform-cli-and-gui-tools-with-tcl-tk-zmh8afilr) · Lobsters · 0 upvotes · 0 comments
- [GitHub - magiblot/tvision: A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.](https://daily.dev/posts/github---magiblot-tvision-a-modern-port-of-turbo-vision-2-0-the-classical-framework-for-text-based-akwrwekme) · Hacker News · 0 upvotes · 0 comments
- [Quartex Pascal v1.0.1.0 is out\!](https://daily.dev/posts/quartex-pascal-v1-0-1-0-is-out--bmqhpl1ud) · Quartex Pascal · 1 upvotes · 0 comments
- [Qt 6.12 LTS Released\!](https://daily.dev/posts/qt-6-12-lts-released--bjujjb512) · Qt · 0 upvotes · 0 comments
- [Tumbleweed Monthly Update - September 2026](https://daily.dev/posts/tumbleweed-monthly-update---september-2026-z5ynzypu5) · openSUSE · 0 upvotes · 0 comments

---

Tags: [#accessibility](https://daily.dev/tags/accessibility)

[View this post on daily.dev](https://daily.dev/posts/tcl-tk-9-1-jj4sxhcha)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Tcl/Tk 9.1","url":"https://daily.dev/posts/tcl-tk-9-1-jj4sxhcha","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/tcl-tk-9-1-jj4sxhcha"},"datePublished":"2026-09-30T19:25:39.949Z","dateModified":"2026-09-30T19:26:14.439Z","description":"Tcl/Tk 9.1.0 is in development toward a stable release targeted for September 2026, building on the Tcl/Tk 9.0 foundation. Highlights for Tcl include new...","image":"https://media.daily.dev/image/upload/s--foaA6JGU--/f_auto/v1722860399/public/Placeholder%2004","thumbnailUrl":"https://media.daily.dev/image/upload/s--foaA6JGU--/f_auto/v1722860399/public/Placeholder%2004","isAccessibleForFree":true,"articleSection":"Lobsters","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Lobsters","logo":"https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg","url":"https://daily.dev/sources/lobsters"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/tcl-tk-9-1-jj4sxhcha","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"accessibility","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Lobsters","item":"https://daily.dev/sources/lobsters"},{"@type":"ListItem","position":3,"name":"Tcl/Tk 9.1"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/tcl-tk-9-1-jj4sxhcha#faq","mainEntity":[{"@type":"Question","name":"What new features does Tcl/Tk 9.1.0 add on top of Tcl/Tk 9.0?","acceptedAnswer":{"@type":"Answer","text":"Tcl/Tk 9.1.0 adds a new unicode command for Unicode normalization, a timer command with microsecond-resolution monotonic clock, lfilter for list filtering, and an interp set command for child interpreter variable access. It also adds many C99 math functions as expr functions, new C routines such as Tcl_ListObjRange and Tcl_AttemptCreateHashEntry, and extended 64-bit size support. Developers tracking Tcl upgrades can follow release breakdowns like this on daily.dev."}},{"@type":"Question","name":"Does Tk 9.1 support screen readers and right-to-left languages?","acceptedAnswer":{"@type":"Answer","text":"Yes, Tk 9.1 introduces accessibility screen reader support along with initial bidirectional text support for right-to-left languages. It also adds a new ttk::toggleswitch widget, a tk attribtable command, rotated text on labels, and improved listbox selection colors, while removing obsolete Windows XP appearance support. Teams planning accessible GUI upgrades can keep up with Tk changes like these via daily.dev."}},{"@type":"Question","name":"What breaking change affects Tcl applications calling Tcl_FindExecutable in version 9.1?","acceptedAnswer":{"@type":"Answer","text":"Applications built against Tcl/Tk 9.1 are now required to call an initialization routine, either Tcl_FindExecutable or TclZipfs_AppHook, before use. This is a required setup step that was not mandatory before, so existing embedding code that skips this call will need to be updated to avoid breaking on upgrade. Developers preparing for this upgrade can track breaking API changes like this on daily.dev."}}]}
```

