|
По-порядку.
Tcl - язык программирования высокого уровня, представляющий из себя смесь языка C и языка коммандного интерпретатора csh.
Tk - инструментарий для создания графического юзерского интерфейса (GUI), с кнопками, меню, и прочими listboxes and scrollbars.
Краткое описание синтаксиса Tcl можно прочитать здесь. Я только-только за него взялся, но вскорости оно будет достаточно полным.
Вместе же они являются довольно мощным средством построения GUI. Последние версии позволяют создавать кросс-платформенные приложения. Таким образом вы можете написать одну Tcl/Tk программу (назовем ее скрипт) и она будет выглядеть как Motif приложение под Unix, как Windows под Windows 3.1/95/NT, и как Mac приложение на системах Macintosh.
Вот пример,
UNIX |
Windows 95/NT |
Macintosh |
Достоинства.
button .b -text "Hello, World!" -command exit
pack .b
Хотя можно и еще хуже:
pack [button .b -text "Hello, World!" -command exit]
<<< Такой вот Motif получится под X-Windows. | |
|
<<< Вот так будет под Windows 95. |
* Как пример создания достаточно полновесного приложения можно привести TkTetris by Jeffrey Hobbs. Вот здесь можно глянуть скриншотик, а вот отсюда можно забрать саму игрушку (она в два раза меньше скриншота). Это конечно не самое грандиозное, что я видел, но на меня эта игрушка произвела самое сильное впечатление.
* НО самое главное, Tcl изначально задумывался как расширяемый язык.Так что в отличие от остальных скриптовых языков он не ограничен узкими рамками его разработчиков, а может быть расширен и дополнен по усмотрению прикладного программиста. Собственно Tk и есть одно из его расширений.
* Кстати о расширениях - их такое несметное множество, что всего просто не перекомпиляешь. Достаточно богатое собрание есть на Neosoft. На мой взгляд наибольшего внимания заслуживают Tclx (достаточно мощное расширение для работы с файлами и списками, успевшее уже стать неотъемлемой частью Tcl), Blt (расширение Tk, потрясающий инструментарий для научной и около-научной графики), [incr]Tcl (объектное расширение скриптового языка!!!), Expect (функции администрирования, исторически очень тесно связан с Tcl)
* О дистрибутивах. Официальные можно получить на официальном сайте Scriptics, обычную инсталяшку под Windows и исходники под Unix (но можете и под Windows заиметь исходниики, если вы достаточно $%@$%тый (неординарная личность)). Понятно, что все это барахло - Open Source, как и большинство расширений. На сегодня самым последним release является 8.1b, но он как beta был - так beta и остался, так что лучше брать проверенный 8.0.X.
* Во всех известных мне RedHat - дистрибутивах Tcl и Tk прилагаются в виде традиционных rpm, вместе с Tclx, Tkx, Tix и Expect. Там вообще говоря на них все завязано, так что если вы сталкивались с функционирующей Linux-машиной - считайте вы уже многое видели.
* Уже начинают идти разговоры о Tcl компиляторе и распространении байт-кодов, а там уж недолго и до Tcl - машин, ну чем тебе не Java. Кстати, так как оба являются детищами Sun итегрируются они достаточно легко. Существуют возможности двустороннего обращения при помощи Jacl(вызов Tcl из Java) и Tcl Blend (обращение к JM из Tcl). О взаимоотношениях этих двух творений Sun можно прочитать в следующей статейке.
* Главное не забыть автора. Зовут его John Ousterhout. Сейчас он возглавляет Scriptics - подразделение Sun. А придумал он Tcl еще преподавая в Berkley. Но после некоммерческого успеха своего языка для инструментария интегральных схем, продался капиталу и сейчас проводит время пописывая всякие там статьи про замечательные возможности своего замечательного языка.