Tcl/Tk 9.1 научился читать вслух и писать справа налево

Tcl/Tk 9.1 Released

Вышел Tcl/Tk 9.1 — первый крупный шаг после 9.0. В Tcl появились команды unicode для нормализации, timer с монотонными микросекундными часами, lfilter и interp set, а также новые опции subst и switch. В Tk добавлена поддержка экранных дикторов и первичная работа с двунаправленным текстом и RTL, новый виджет ttk::toggleswitch, повёрнутые подписи и расширенные состояния в ttk::treeview и ttk::notebook. Приложения теперь обязаны вызывать Tcl_FindExecutable или TclZipfs_AppHook.

Accessibility screen reader support.
  1. srean

    У меня слабость к TCL из-за его причуд и странной динамической строковой игривости. Я бы поостерегся использовать его профессионально, но ради развлечения... это просто слишком весело. Upvar и uplevels — это безумие.

    Python — это тот крутой, который ведёт себя как при первом визите к родителям будущего супруга. Tcl же — как тайные, эксклюзивные и немного опасные игры с лучшим школьным другом.

    Tcl/Tk стали пионерами идеи скриптового языка как библиотеки. С потоками у них всё правильно. Вы можете запускать несколько независимых интерпретаторов Tcl в адресном пространстве вашего процесса, и они могут обмениваться сообщениями. Всё состояние интерпретатора инкапсулировано внутри объекта-интерпретатора, никаких глобалов. Для пользователя это просто указатель на объект.

    Не нужен GIL, не нужна сериализация/десериализация (pickle/unpickle) ... просто копирование в памяти процесса (или вообще без копирования, если данные неизменяемы).

  2. 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...

  3. neilv

    Главным ранним преимуществом Tcl был Tk — относительно простой способ создавать достаточно хорошие GUI-программы с открытым исходным кодом на Unix-системах и в X Window System. Это было даже намного проще, чем более удобные наборы инструментов X, такие как XView с C, а альтернативы становились только сложнее. Веб-фронтендов не было.

    Сам Tcl был довольно умён как то, что я бы назвал строковым скриптовым языком (в отличие от Bourne/C-shell и т.п., которые были до него в Unix).

    Изначально Tcl был одним из нескольких готовых языков расширения. Вы пишете своё большое приложение на C или C++, а затем встраиваете интерпретатор языка расширения более высокого уровня, чтобы пользователи или сам разработчик могли добавлять функциональность. Вариантами в то время обычно были небольшой Lisp/Scheme, Tcl, Python или что-то полностью самодельное, вероятно, причудливое и сделанное наполовину.

    В ранние времена доткомов был значительный интерес к Tcl для бэкенд-работы, и он также не был бы худшим выбором для встраивания в браузер. Как и Python, Tcl был бы более доступным и демократизировал бы Веб больше, чем JavaScript, и уже существовали надёжные готовые дизайны и реализации. (Scheme выглядел бы немного более пугающе, чем Python или Tcl, и был более мощным, и, я думаю, именно поэтому Тим Бернерс-Ли предпочитал Python, а не Scheme, в качестве народного языка программирования для различных веб-целей. Семантика JavaScript, который мы получили, была скорее поспешной игрушечной Scheme, плюс простейшая объектная модель […]

  4. trebligdivad

    Tcl/Tk, должно быть, самая простая GUI-система из существующих; можно запустить простые вещи без усилий — ничего похожего по простоте я не видел.

    Приятно видеть, что он получает современную поддержку.

  5. qalmakka

    Tcl — слишком умный язык для самого себя. Мне нравится, что всё является строкой или может быть взломано как строка, так что можно делать уровни метапрограммирования, достигающие невиданных высот.

  6. neofytos

    Поздравления сообществу и основной команде. Их преданность поддержанию Tcl/Tk как золотого стандарта стабильности, прагматизма и лёгкой кроссплатформенной разработки вдохновляет.

  7. Aldipower

    У меня когда-то была книга от O'Reilly под названием 'Perl/Tk'. В смысле, она всё ещё где-то у меня... У меня такое чувство, что чтение её когда-нибудь станет моей терапией для восстановления от ИИ?

  8. rtpg

    У кого-нибудь есть забавные истории о том, что они создали с помощью tcl/tk? Мне кажется, теоретически всё ещё есть место для маленьких приложений на нём, но у меня обычно проблема с желанием впихнуть "произвольный форматированный текст" в свои штуки (-> веб-технологии внезапно работают довольно хорошо).

Ещё за этот день

2026-09-29