Введение


История создания

        Tcl представляет собой язык, синтаксически немного похожий на Perl. Он ориентирован преимущественно на автоматизацию рутинных процессов ОС и крупных программных систем и состоит из мощных команд, ориентированных на работу с абстрактными нетипизированными объектами. Принципиальное отличие Tcl от командных языков ОС в независимости от типа системы (когда не надо утруждать себя изучением нового командного языка) и, самое главное, он позволяет создавать переносимые программы с графическим интерфейсом (GUI). Можно, например, написать утилиту просмотра всех каталогов и подкаталогов с уничтожением временных файлов, приделать к ней симпатичную оболочку с кнопочками, меню, картинками, диалогом ввода расширения уничтожаемых файлов, и эта утилита будет работать практически в любой ОС!

        Tcl — расширяемый язык. Можно самостоятельно определять новые команды языка (как в Форте). Классический пример определения команды Tcl:

        button .b -text Hello! -font {Times 16} -command {puts hello}

        Команда button предназначена для создания кнопки (.b) с надписью «Hello!» (можно указать картинку), которая пишется шрифтом Times размером 16 пунктов. При нажатии на кнопку в стандартное устройство вывода посылается строка hello (puts hello). Набором таких команд можно очень компактно и наглядно описать GUI с полным функциональным наполнением. Эти команды можно вызывать из других языков или на их основе писать ПО полностью на Tcl. В последнем случае приложение считается «Pure Tcl 100%».

        Tcl/Tk разрабатывался одновременно как язык и библиотека. Эта идея была позже реализована в Java, языке фирмы Sun, в которой Аустираут трудится с середины 90-х годов. Библиотека Тk содержит стандартизованный набор команд поддержки GUI в стиле Motif. Управляющие элементы, хранящиеся в Тk, называются виджетами (widgets). Большое количество нетиповых виджетов можно найти в Сети. На основе Тk создаются переносимые приложения, например, на Си, с графическим интерфейсом.

        На Tcl написано очень много мобильных приложений с GUI, которые используются в самых разных областях — для управления ОС, администрирования сетей, обслуживания Web-серверов и т.д. В Тk имеются команды для работы с сокетами, с помощью которых можно создавать приложения для Сети. Для браузеров разработаны подключаемые модули, позволяющие вставлягь Тс1-скрипты (тиклеты) в НТМL-страницы. Известно использование Tcl/Tk в масштабных российских проектах, в частности, в кодогенераторах фирмы DataX/Florin для поддержки платформо-независимого пользовательского интерфейса.

        Tcl/Tk распространяется в исходных текстах бесплатно. Он может легко интегрироваться с Си++, Адой, Прологом, Модулой-3, Perl и многими другими языками. Tcl реализован для Windows 3.1/95/98/NT, Macintosh, AIX 3.x, VMS, для практически всех UNIX-платформ — SunOS, SCO Unix, HP-UX, BSDI, Linux, QNX, а также для суперкомпьютеров Cray и NEC. Ha Pure Tcl 100% написана оболочка Visual Tcl, которая позволяет разрабатывать кросс-платформенное ПО для UNIX, Windows и Macintosh. Версию Тс1/Tk для OS/2 Presentation Manager написал некий Илья Захаревич из штата Огайо (не исключено, наш соотечественник, так как в этом штате работает много российских программистов). Имеется расширение языка incrTcl/incrTk, ориентированное на создание больших приложений.

        С начала 90-х годов проект Tcl взялась поддерживать фирма Sun. Была создана рабочая группа SunScript (название языка осталось прежним). В середине 90-х годов в этой группе работает Джон Аустираут. SunScript создает коммерческие версии Тk, в частности, для Windows и Macintosh. Несколько месяцев назад эта группа приступила к интеграции Tcl и Java. Разработана версия Tcl, написанная на Java — Jacl (JAva Command Language). Расширение языка Tcl Blend позволяет работать с Java VM и интегрировать Tcl-скрипты с Java-кодом.

        В восьмой версии Tcl/Tk интерпретация заменена компиляцией в байт-код «на лету» (по аналогии с Java). Полностью переделана обработка строк. Работа с двоичными объектами и большими текстовыми массивами по сравнению с версией 7.x ускорилась в 2—20 раз. Добавлены новые команды быстрой сортировки, ввода/вывода двоичных данных с поддержкой различных типов периферийных устройств, поддерживается протокол http, реализованы новые средства обеспечения безопасности. Увеличена точность при работе с числами с плавающей запятой до 12 цифр вместо 6. Подробно документирован интерфейс с Си. Полностью переписана Тk. Работа с объектами управления стала более удобной, усовершенствована работа с меню и шрифтами, добавлены новые команды работы с графическими файлами и др. Наконец, приложения на Tcl/Tk могут сопровождаться логотипом «Tcl Powered» (по лицензии Sun). Появилась, правда, небольшая несовместимость с программами, написанными на старых версиях Tcl. Теперь даты, выраженные двумя цифрами года, трактуются как даты следующего столетия. Например, 17 год означает не 1917, а 2017.

        Учитывая, что Tcl/Tk активно поддерживается Sun, можно предсказать этому языку очень хорошее будущее. А история создания Tcl/Tk является классическим примером на тему «как стать знаменитым». Хотите им стать? Разработайте свой скрипт-язык для использования в какой-нибудь быстро развивающейся области ИТ, положите исходные тексты интерпретатора на свою страничку, напишите в конференцию по программированию, и ждите, когда вас пригласят в Sun или Microsoft...
Hosted by uCoz