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.
- srean
У меня слабость к TCL из-за его причуд и странной динамической строковой игривости. Я бы поостерегся использовать его профессионально, но ради развлечения... это просто слишком весело. Upvar и uplevels — это безумие.
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 — относительно простой способ создавать достаточно хорошие 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, плюс простейшая объектная модель […]
- trebligdivad
Tcl/Tk, должно быть, самая простая GUI-система из существующих; можно запустить простые вещи без усилий — ничего похожего по простоте я не видел.
Приятно видеть, что он получает современную поддержку.
- qalmakka
Tcl — слишком умный язык для самого себя. Мне нравится, что всё является строкой или может быть взломано как строка, так что можно делать уровни метапрограммирования, достигающие невиданных высот.
- neofytos
Поздравления сообществу и основной команде. Их преданность поддержанию Tcl/Tk как золотого стандарта стабильности, прагматизма и лёгкой кроссплатформенной разработки вдохновляет.
- Aldipower
У меня когда-то была книга от O'Reilly под названием 'Perl/Tk'. В смысле, она всё ещё где-то у меня... У меня такое чувство, что чтение её когда-нибудь станет моей терапией для восстановления от ИИ?
- rtpg
У кого-нибудь есть забавные истории о том, что они создали с помощью tcl/tk? Мне кажется, теоретически всё ещё есть место для маленьких приложений на нём, но у меня обычно проблема с желанием впихнуть "произвольный форматированный текст" в свои штуки (-> веб-технологии внезапно работают довольно хорошо).