Tcl/Tk: забытый инструмент для кроссплатформенных CLI и GUI приложений

Develop Cross-Platform CLI and GUI Tools with Tcl/Tk

Tcl/Tk: забытый инструмент для кроссплатформенных CLI и GUI приложений

Автор, разработчик с опытом в AutoHotkey, искал кроссплатформенное решение для создания GUI-приложений и открыл для себя Tcl/Tk — язык и тулкит, существующий более 30 лет и используемый крупными корпорациями. В статье подробно разбираются возможности Tcl/Tk: создание нативных GUI для Windows, Linux и macOS, эффективная работа с событиями и потоками, компактные single-file приложения, а также веб-приложения. Автор честно описывает сильные стороны (гибкость, гомоиконичность, встроенная поддержка SQLite) и слабые (отсутствие централизованного пакетного менеджера, ограниченный IDE support, сложности с математикой). Практические примеры и сравнения с Electron, Qt и Go помогают понять, когда Tcl/Tk — лучший выбор.

Современные «кроссплатформенные» решения для GUI-приложений на самом деле не являются кроссплатформенными через переносимость — они просто упаковывают своё окружение и тащат его с собой, рисуя пиксели на канве вместо использования нативных API.
  1. kelvinjps10

    Это напомнило мне, как я учился программировать и создавал случайные GUI-приложения на tkinter и Python.

  2. dragonfax

    Я был ранним пользователем TiVo. К этим устройствам можно подключить терминал. Тупой терминал или терминальная программа на вашем компьютере через собственный последовательный порт. Сзади был терминальный/последовательный порт (скорость 2600 бод), выполненный в виде 3/4-дюймового аудиоразъема. Это была Linux-система, но всё их собственное программное обеспечение было написано на TCL. Не думаю, что они использовали TK. Было довольно весело с этим возиться. Поскольку оно было подключено к телефонной линии, при входящем звонке оно могло получить caller ID и отобразить его на экране телевизора.

  3. vincent-manis

    Я регулярно использую Tk в Scheme; в моём коде нет Tcl, но Tk — это очень хороший (хотя и базовый) GUI-набор, и мои программы работают на Linux, BSD, MacOS и Windows. Другие комментаторы упоминали, что Python поставляется с Tkinter, библиотечным модулем, который обеспечивает интерфейс к Tk. Я считаю, что Ruby делает то же самое. Чёрт, если вы программируете на Cobol, вы можете использовать Tk (если ваш Cobol позволяет вызывать C). Вам не обязательно любить Tcl, чтобы любить Tcl/Tk.

  4. drdexebtjl

    > Эти GUI-приложения выглядят нативно на Windows, Linux и macOS

    Не понимаю, как автор может писать это с серьёзным лицом.

    Приложения выглядят так, как выглядели нативные приложения в 2003 году.

  5. piloto_ciego

    Tkinter или другие GUI-интерфейсы на основе Tk — это то, что я сразу использую, когда создаю что-то, что не является CLI или браузером.

    Мой основной "повседневный" инструмент — Python, и мне нравится, что я могу сразу же создать кроссплатформенный инструмент. Tcl/Tk рулят и невероятно полезны.

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

2026-09-01