Lan Magazine/Русское издание, (Октябрь 1996, том 2, номер 6)
Компания Sun Microsystems может гордиться многим, и в частности тем, что разработанный ею язык программирования Java за короткое время стал самым популярным на сегодняшний день средством разработки приложений для Internet. Однако, несмотря на все свои преимущества, Java все-таки не самый легкий для изучения язык, и разработка сложных приложений занимает довольно много времени. Вопрос, как ускорить разработку приложений для Internet, недолго ждал своего решения: на сцену выходит другая разработка Sun - Tcl/Tk (Tool Command Language/Tool Kit).
Разработчикам из мира Unix Tcl/Tk (чаще всего произносится как "тикль-ти-кей") известен уже давно - эта система программирования была создана сотрудником SunLabs доктором Джоном Оустерхутом около шести лет назад, когда он еще работал в Университете в Беркли, и с тех пор довольно успешно применяется в молекулярном моделировании, администрировании баз данных Oracle, системах управления сетевыми маршрутизаторами и в других областях. Изначально Tcl/Tk задумывался как средство быстрой разработки приложений для X Window и предоставляла пользователям несложный язык программирования (TCL) и набор объектов GUI (TK). Отличие Tcl/Tk от Xlib, Xview и Motif в том, что для управления объектами не требуется использование C/C++, и даже незначительный опыт работы с системой позволяет быстро создавать полноценные приложения. Tcl также обладает развитыми средствами обработки строк, а при создании приложений в них можно включать модули, написанные на других языках, в частности C/C++ и, конечно же, Java.
Sun предполагает, что Tcl/Tk станет для Java тем же, чем сегодня Visual Basic для C/C++. В зависимости от поставленной задачи можно будет применять либо один из языков, либо оба сразу. Разработку экранных форм, использующих стандартные элементы GUI, лучше всего осуществлять только при помощи Tcl/Tk. При разработке приложений, производящих большие объемы вычислений, несомненно нужно использовать Java; если же необходимо объединить несколько подобных программных модулей под общим интерфейсом, то лучшим решением будет применение обоих языков. Для того чтобы задуманное свершилось, Sun не жалеет усилий. Во-первых, работа по обеспечению межплатформенной поддержки продвигается довольно быстро - адаптация системы к платформам ПК и Мас идет постоянно. Во-вторых, создание компилятора байтового кода близится к завершению, а это означает, что сценарии Tcl будут выполняться в 10-20 раз быстрее. В-третьих, модель безопасности выполнения сценариев, пока что ограничивающая использование возможностей языка, продолжает совершенствоваться. И, наконец, для того, чтобы пользователи Web могли просматривать разработанные с помощью Tcl/Tk страницы, Sun выпустила модуль расширения для Netscape Navigator, позволяющий запускать сценарии Tcl или, как их еще называют, "тиклеты" (от "Tcl"+"applet") в окне программы просмотра.
Microsoft пришлось смириться с победным шествием Java, однако окончательно
сдавать позиции в битве стандартов для интерактивной Web компания не собирается.
Концепция ActiveX - модификации элементов управления OCX для Internet -
пользуется сегодня довольно большой популярностью. Но, если Tcl/Tk, предлагающей
библиотеку и средства разработки аналогичных элементов управления, суждено
повторить успех Java, то ActiveX ожидает скорое забвение. Причин тому несколько,
и одна из главных - реализация механизма обеспечения безопасности при выполнении
программных модулей, загружаемых из Internet. Модули ActiveX/OCX разрабатываются,
как правило, на С/С++, и их код может содержать в себе вирусы или просто
вредоносные ошибки. Tcl же гарантирует безопасность выполнения "непроверенных"
модулей, применяя принцип "ящика с песком" - интерпретация сценария
осуществляется на виртуальной машине, "дочернем интерпретаторе",
запрещающей использовать "опасные" команды типа записи на диск.
При этом механизм "безопасных вызовов" разрешает "дочернему
интерпретатору" посылать ядру Tcl запросы на обращение к конкретным
файлам в указанном каталоге, разрешение на которые дается в зависимости
от установленных в системе ограничений. Преимущества такого механизма очевидны,
поскольку от разработчиков страниц Web требуется только обеспечить правильную
работу сценариев, а обеспечением безопасности занимается система.
Насколько успешным будет продвижение Tcl/Tk на рынке Internet, пока трудно
предположить. Netscape еще не объявляла о поддержке Tcl/Tk в Navigator,
но с модулем расширения это не проблема. Плюс ко всему, за шесть лет появилось
достаточно большое количество разработчиков, использующих Tcl/Tk, и это
дает ей большую фору при старте. Ориентация же Tcl/Tk на применение совместно
с Java придает "старой" разработке налет модности, что тоже немаловажно.
Посмотрим, какой ответный удар попытается нанести империя Гейтса.