Достоинства и недостатки Tcl

10:13:00


 
Вокруг языка Tcl ходит очень много слухов. Оно и не удивительно - Tcl/Tk имеет богатую историю, скандальные случае (то же выступление Ричарда Столлмана), истории провалов и успехов. Интерес к языку не угасает до сих пор, он стал как частью мемов ("Почему Tkabber такой страшный?", "Единственный язык на котором можно программировать будучи пьяным в дугу"), частью истории Unix, нашел множественное практическое применение, как в науке (применяется во множестве разного рода НИИ), космонавтике и астрологии (первое что найдет внеземную жизнь - будет сложное устройство, которое работает по программе написанной на Tcl), промышленности (особенно язык Tcl любим на буровых станциях). Но почему он не пошел в массы? С чем связан такой парадокс? Почему язык не стал мейнстримом? Ответом на этот вопрос являются недостатки языка программирования, которые имеют место быть. Именно на них мы и остановимся подробнее.


Недостатки
1. Низкое быстродействие
Недостатком ранних версий Tcl/Tk, несомненно, было низкое быстродействие. Версии ниже 8-й использовали прямую интерпретацию исходного текста, однако использование байткода разрешило эту проблему. Сейчас по быстродействию Tcl не сильно отличается от PHP, хотя заметно уступает таким скриптовым языкам как, например, Python или Lua. Сложные или критические по времени выполнения участки кода рекомендуется выполнять в виде внешних модулей на C/C++.
2. Синтаксис
Tcl/Tk, отличает непривычность синтаксиса для программистов на «традиционных» языках. Он ближе к стандартному синтаксису оболочки Unix. Этот синтаксис может быть произвольно изменён (как и в других «программируемых языках программирования», таких как Forth или Common Lisp). Это может быть преимуществом для программиста-индивидуала или небольшой группы программистов, но делает Tcl/Tk вряд ли пригодным для использования в качестве языка общего назначения при разработке в промышленном масштабе. Хотя наличие стандартизированных расширений снижает остроту этой проблемы. Tcl может использоваться и в крупных проектах в пределах своей «экологической ниши» (встроенные скрипты, «склеивание» компонент, WEB-программирование).
3. Сложность в написании рекурсивного кода
Хотя Tcl обладает всеми свойствами функционального языка, его интерпретатор до версии 8.6 не производил оптимизацию хвостовой рекурсии, что затрудняло использование чисто функционального стиля, уменьшало его эффективность. Впрочем, гибкость языка позволяет обойти эту проблему, реализовав подобие такой оптимизации на высоком уровне. Наконец, появившаяся в тестовой версии 8.6 команда tailcall позволяет без особых проблем использовать хвостовую рекурсию.
4. Не привлекательный GUI
Наиболее тесная интеграция Tcl с графической библиотекой Tk, которая зачастую используется и в сочетании с другими языками программирования — несомненное преимущество Tcl. Для создания GUI оболочек к консольным программам или пакетам консольных программ Tcl может оказаться наилучшим выбором.
5. Мало батареек
Некоторые недостатки (как приведенные выше) на самом деле имеют место быть, некоторые - как этот, просто надуманы. По количеству разработанных для Tcl библиотек расширений и инструментальных средств несколько уступает Питону, а тем более Перлу, но вряд ли вы столкнётесь с их нехваткой. Чего, правда, нельзя сказать о количестве документации и литературы по Tcl, особенно — русскоязычной. Именно поэтому наш ресурс старается это исправить.
  1. Быстрое введение в Tcl
  2. Быстрое введение в Tcl: группировки
  3. Быстрое введение в Tcl: немного математики и функциональных понятий

Вам так же может быть интересны

0 коммент.

Дорогие друзья! Будем уважать друг друга и не превращать данный блок в linux.org.ru

Мы в социальных сетях

Контакты

  • ООО "Миллениум. Интеграция"
  • Контактный телефон: +7 (919) 932-86-97
  • Электронная почта: написать нам!