Легендарный инструмент для создания ПО, зародившийся до появления Linux, крупно обновился впервые за 27 лет
Релиз Tcl/Tk 9.0
Классический инструментарий для разработки графических интерфейсов программ Tcl/Tk обновился до девятой версии. Это первый мажорный релиз тулкита за последние 27 лет. Предыдущий – 8.0 – состоялся в 1997 г. Последнее минорное обновление (версия 8.6) увидело свет в 2012 г., пишет The Register.
Tk представляет собой кроссплатформенную библиотеку базовых элементов графического интерфейса. Tcl – скриптовый язык высокого уровня, предназначенный, в частности, для использования совместно с Tk.
Tcl появился в 1988 г., раньше чем ядро Linux (1991 г.), операционные системы FreeBSD (1993) и Windows 3.0 (1990). Вслед за ним в 1992 был выпущен Tk. Другой простой и популярный скриптовый язык – Lua – начал свой путь в 1993 г. Широко применяемые сегодня кроссплатформенные инструментарии для построения GUI GTK и QT ведут свою историю с 1998 г. и 1995 г. соответственно.
Что нового в девятой версии
Tcl/Tk 9 по-прежнему остается относительно простым в освоении инструментарием и в значительной степени обеспечивает обратную совместимость. Впрочем, разработчикам некоторых приложений, использующих Tcl/Tk, при переходе на новую версию, вероятно, все же придется внести определенные правки в код своего ПО. Это вполне ожидаемо, поскольку мажорные изменения версии ПО допускают «поломку» обратной совместимости.
«Многие программы Tcl, написанные для Tcl 8, будут работать без изменений в Tcl 9. Многие другие программы Tcl можно будет дополнить небольшими и несложными правками, создав новую программу, которая будет работать как в Tcl 8, так и в Tcl 9», – говорится в анонсе релиза.
Среди наиболее ярких новшеств девятой версий Tcl The Register выделяет переход интерпретатора на использование 64-битных структур данных, благодаря которой он теперь поддерживает строки любой длины (ограничена лишь количеством свободной памяти), а также списки и словари с огромным числом элементов.
Кроме того, Tcl 9 имеет нативную поддержку стандарта кодирования символов юникод, преобладающего в интернете, а также способен обращаться к содержимому zip-архивов (+.jar, .tar) напрямую как к виртуальной файловой системе.
Наконец, девятая версия Tcl поддерживает API мультиплексированного ввода-вывода Epoll (Linux) и Kqueue. Применение этих интерфейсов позволяет добиваться более высокой производительности приложений, которым в связи со спецификой решаемых задач приходится вести мониторинг статуса очень большого количества дескрипторов файлов.
Tk также в степени подвергся определенной «модернизации». Элементы интерфейса теперь правильно масштабируются на HiDPI-дисплеях, поддерживаются двухпальцевые жесты мышью; обеспечиваются взаимодействие с механизмами уведомлений, системным лотком и подсистемами печати ОС; доступ к метаданным изображений. Заявлена частичная поддержка векторного графического формата SVG.
Корни в Беркли
Tcl и Tk были разработаны Джоном Оустерхаутом (John Ousterhout), американским ученым в области информатики. В прошлом – профессором Калифорнийского университета в Беркли.
В наши дни Остерхаут преподает в Стэнфордском университете такие дисциплины как компьютерные науки (Computer Science) и электротехника, следует из информации, опубликованном на сайте организации. В период с 2002 по 2019 г. возглавлял софтверную компанию Electric Cloud, одним из учредителей которой был он сам. В апреле 2019 г. Electric Cloud была продана компании CloudBees.
Сегодня Tcl/Tk развивается силами сообщества. Функцию координатора проекта с 2000 г. выполняет команда TCT (Tcl Core Team), состав которой периодически подвергается ротации.
Tcl/Tk является ПО с открытым исходным кодом, который распространяется на условиях специальной лицензии, которая во многом напоминает свободную BSD, созданную в Университете Беркли.