Tcl/Tk 9.1 发布:新增 Unicode 与无障碍支持
Tcl/Tk 9.1 Released
Tcl/Tk 9.1.0 正式发布,这是面向 2026 年 9 月稳定版的最新开发版本。此次更新在 Tcl 层面引入了 unicode 命令以支持 Unicode 规范化,新增了 timer 命令提供微秒级分辨率的单调时钟,并增强了 lfilter 列表筛选功能。Tk 方面则取得了重要进展,首次支持无障碍屏幕阅读器,并初步支持双向文本及 RTL 语言。此外,还推出了 ttk::toggleswitch 新控件,优化了 macOS 上的大小写不敏感路径处理,并移除了对 Windows XP 外观的过时支持。对于开发者而言,应用初始化流程也发生了变化,必须调用 Tcl_FindExecutable 或 TclZipfs_AppHook。
Tcl/Tk 9.1.0 是当前 Tcl 和 Tk 的开发工作,旨在实现 2026 年 9 月的稳定发布。
HN 评论区
141- srean
我对 TCL 情有独钟,正因为它的怪癖和那种奇异的动态字符串趣味。虽然我在专业场合会谨慎使用它,但为了好玩而随意折腾……它实在太有趣了。upvar 和 uplevel 简直疯狂。
Python 就像是你第一次去准配偶父母家做客时那种得体又酷的表现。而 TCL 则像是和你童年最好的玩伴玩那种秘密、专属且略带危险的游戏。
Tcl/Tk 开创了“脚本语言即库”的概念。它在多线程方面做得很对。你可以在进程的地址空间内运行多个独立的 Tcl 解释器,它们之间可以交换消息。解释器的整个状态都封装在解释器对象内部,没有全局变量。对用户来说,它仅仅是一个指向对象的指针。
不需要 GIL,不需要序列化/反序列化(pickle/unpickle)……只需进程内内存拷贝(如果数据不可变,甚至无需拷贝)。
- ripe
Tcl 确实有点怪异,需要时间适应,但我发现学习它的怪癖是值得的,特别是因为我的应用程序使用了 sqlite,它与 Tcl 结合得非常自然。
引用 D. Richard Hipp [1] 的话:
“SQLite 是一个逃逸到野外的 TCL 扩展。
“SQLite 的设计灵感来源于 TCL,无论是它处理数据类型的方式,还是源代码的格式。SQLite 的索引用例源自一家工业公司的 Tcl/Tk 应用程序。从诞生之日起,SQLite 就严重依赖 TCL。如今,SQLite 内部不再使用 TCL,也可以独立于任何 TCL 解释器运行,但 SQLite 的开发过程仍然严重依赖 TCL。”
[1] https://www.tcl-lang.org/community/tcl2017/assets/talk93/Pap...
- neilv
Tcl 早期最大的卖点就是 Tk,因为在 Unix 和 X Window System 上,它是用开源方案制作“足够好”的 GUI 程序相对容易的方式。甚至比用 C 语言配合 XView 等更易用的 X 工具包还要简单得多,而其他的替代方案只会越来越难。当时还没有 Web 前端。
Tcl 本身相当巧妙,我会将其称为一种基于字符串的脚本语言(这与 Unix 上先前的 Bourne/C-shell 等形成对比)。
最初,Tcl 是现成的扩展语言中的少数几个选项之一。你用 C 或 C++ 编写大型应用程序,然后嵌入一个高级扩展语言的解释器,供用户或原始开发者添加功能。当时的选项通常是小规模的 Lisp/Scheme、Tcl、Python,或者是某种完全定制、可能古怪且半吊子的东西。
在早期的互联网泡沫期间,人们对将 Tcl 用于后端工作很感兴趣,将其放入浏览器也并非最糟糕的选择。和 Python 一样,Tcl 会比 JavaScript 更易于访问,更能实现 Web 的民主化,而且当时已经有成熟的现成设计和实现。(Scheme 看起来可能比 Python 或 Tcl 更令人望而生畏,同时也更强大,我认为这就是 Tim Berners-Lee 在各种 Web 用途上更倾向于 Python 而非 Scheme 的原因。我们得到的 JavaScript 的语义更像是一个匆忙赶制的玩具 Scheme,加上最简单的对象模式 […]
- trebligdivad
Tcl/Tk 肯定是市面上最简单的 GUI 系统;你可以毫不费力地让简单的东西运行起来——我见过的任何东西都达不到这种简洁程度。
很高兴看到它获得了一些现代化的支持。
- qalmakka
Tcl 这门语言聪明得有点过头了。我喜欢它的一切都是字符串,或者都可以对字符串进行黑客式操作,这样你基本上可以进行达到前所未有级别的元编程。
- neofytos
祝贺社区和核心团队。他们致力于将 Tcl/Tk 维护为稳定性、实用性和轻量级跨平台开发的黄金标准,令人鼓舞。
- Aldipower
我曾经有一本 O'Reilly 的书叫《Perl/Tk》。我是说,我把它放在某个地方了……我有一种感觉,也许某天通读它将成为我的 AI 康复疗法?
- cmacleod4
完整的发布公告请见: