Легендарный инструмент для создания ПО, зародившийся до появления Linux, крупно обновился впервые за 27 лет

Техника Открытое ПО
, Текст: Дмитрий Степанов
После 27 лет разработки состоялся релиз девятой версии легендарного тулкита Tcl/Tk, развивающегося с 1988 г. – в эпоху до появления Linux, FreeBSD и Windows 3.0. Среди наиболее значимых новшеств – полностью 64-битная архитектура, поддержка юникода и прямой доступ к zip-архивам.

Релиз 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/Tk обновился до версии 9.0

«Многие программы 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, созданную в Университете Беркли.