Tcl/Tk 9.1

Tcl/Tk 9.1 被视为这款久经考验的 GUI 工具包和脚本语言的一次扎实增量更新,用户重点提到了可访问性的改进,以及在保留 X11、Windows 和 macOS 兼容性的同时继续推进原生 Wayland 支持。许多人怀念 Tcl/Tk 在快速 GUI 开发、AOLServer 时代 Web 应用,以及其与 VLSI CAD 工具、路由器和 SQLite 生态的深度集成中的黄金时期,并认为尽管它如今已属小众,但其稳定性和可嵌入性仍然使它具有价值。另一些人则将 Tcl 与 Lua、Python、Visual Basic 和现代 Web 技术栈等替代方案进行对比,指出其强大的元编程模型,以及“一切皆字符串”设计带来的问题。

可访问性、Wayland 和平台支持

  • 评论者欢迎改进 Tk 的可访问性;一位有严重视力问题的用户认为这至关重要,尤其是因为据称一些主流桌面环境(例如 Wayland 上的 KDE)在可访问性方面有所倒退。
  • Wayland 支持正在推进中,并计划在 Tk 9.2 中提供,采用基于 GLFW 的后端;X11、Windows 和 macOS 支持将继续保留。
  • 一些用户询问发行版何时会提供 9.x;实际体验不一(有些人仍在使用 8.6,另一些人则说 9.0 已经进入主流发行版,但它为某些软件带来了兼容性问题)。

开发体验与 GUI 构建

  • 许多人称赞 Tcl/Tk 是用于“够用”的跨平台 UI 和快速原型开发的最简单 GUI 工具包之一。
  • 它被认为特别适合快速为脚本添加 GUI,以及制作小型内部工具,但不适合高端动画或 AAA 级图形。
  • 讨论中还将它与老派的 Visual Basic 和现代 RAD 工具进行比较;有人感叹缺少同样简单、现代的 GUI 构建器。

行业应用、遗产与轶事

  • Tcl/Tk 大量出现在 VLSI CAD 工具、Cisco 路由器以及历史性的 Web 技术栈中(AOLServer、OpenACS、Vignette、Expect)。
  • 观点分歧明显:Tcl 本身受到称赞,但它嵌入商业 CAD 工具中的方式常被描述为痛苦且设计糟糕。
  • 讨论还强调了 Tcl 在 SQLite 起源中的作用,以及它作为“扩展语言”的历史重要性。

语言设计与元编程

  • Tcl 被描述为“字符串类型化”(stringly typed)并带有类似 Lisp 的特征,可通过 uplevel、upvar 和创建 DSL 进行强大的元编程。
  • 子解释器和安全解释器被认为是在沙箱、并发和嵌入方面的强项,这与其他语言的 GIL 或较弱的沙箱形成对比。
  • 有些人觉得这种能力令人愉悦;也有人认为它危险、难以推理,不适合大型专业代码库。

生态、流行度与替代方案

  • 围绕 Tcl 是否正在“消亡”展开了争论:有些人引用它缺席于流行度指数;另一些人则指出它仍在利基场景中持续使用和维护。
  • Lua 经常被提及为用于嵌入的现代替代方案,因为它简单且性能不错;而另一些人仍主要因为 Tk GUI 而选择 Tcl。
  • 讨论中的 GUI 替代方案包括 GTK、Qt、wxWidgets、Java Swing/JavaFX、libui,以及各种 Python GUI 封装,但并没有关于“通用工具包”的明确共识。

LLM 与 Tcl/Tk

  • 几条评论指出,现代 LLM 现在可以生成相当不错的 Tcl/Tk 应用和 C 扩展,这可能会在一个老化的生态系统中重新提升它的实用性。