Найти тему

TCL: Язык программирования, который никогда не получит Оскара

Оглавление

О, TCL. Язык программирования, о котором в мире IT говорят, как о том отпрыске семейства языков программирования, который был на вечеринке, когда устраивали перепись. Если бы языки программирования были актерами, TCL был бы тем, кто всегда играет второстепенные роли и никогда не получит Оскара, но все равно любим зрителями.

TCL, или Tool Command Language (язык управления инструментами), был разработан Джоном Оустерхаутом в 80-е годы. Если бы он знал, каким образом его творение будет использоваться и упоминаться спустя десятилетия, он, возможно, переосмыслил бы некоторые вещи.

Ты можешь думать, что TCL – это лишь простой, скриптовый язык программирования, но подожди-ка, пока ты не узнаешь, что его также можно использовать для создания графического интерфейса! Что ж, в принципе, это не так уж и удивительно, учитывая, что TCL в переводе с английского означает «язык управления инструментами». Не важно, что «инструменты» в этом контексте обозначают встроенные функции языка. В любом случае, использовать TCL для создания GUI так же разумно, как использовать ложку в качестве молотка.

TCL, как правило, не используется для больших, сложных проектов. Но если вы захотите протестировать свои нервы и попробовать написать на TCL что-то большое и сложное, то удачи вам! Вы точно будете нуждаться в ней.

Если когда-нибудь TCL будет спрашивать о своей роли в мире IT, можно сказать ему: "Ты как швейцарский армейский нож в мире программирования: многие твои функции можно найти и в других инструментах, но в некоторых случаях ты бываешь действительно удобен". И это правда: у TCL есть несколько нишевых применений, в которых он бы широко используется, например, в автоматизации сетевых устройств или встраиваемых системах. И это все великолепно, пока вы не попытаетесь использовать TCL для чего-то более... эм... амбициозного. В этом случае вас, возможно, ожидает не самый приятный сюрприз.

Синтаксис TCL как будто был создан специально, чтобы избавить программистов от скучного и однообразного кода других языков. Вместо этого вы получаете бесконечное веселье с фигурными скобками, квадратными скобками и долларовыми знаками! Никаких скучных точек с запятой или круглых скобок - приветствуйте новый уровень креативности в кодировании! Ну, или, по крайней мере, в том, как вы выражаете свою фрустрацию, когда TCL делает не то, что вы от него ожидали.

Но давайте не будем слишком строгими к TCL. У него есть свои плюсы. Как мы уже упоминали, TCL - это как швейцарский армейский нож. Он может быть немного громоздким, но его универсальность делает его полезным инструментом в определенных ситуациях. И если вы попробуете использовать TCL для своих нужд, может быть, вы обнаружите в нем функции и возможности, которых не ожидали найти.

Так что вот таков TCL. Это не тот язык программирования, о котором мечтают вспоминать студенты, изучающие IT, и, вероятно, это не тот язык, который вы бы выбрали для большого проекта. Но у него есть свои ниши, и он заслуживает уважения за свою универсальность и упорство. В конце концов, быть вечным "поддерживающим актером" тоже своего рода достижение.

TCL, мы ценим твой вклад в мир программирования, даже если иногда ты заставляешь нас выть от отчаяния, вглядываясь в свой бесконечно запутанный синтаксис.


Интересные факты


1. В 1994 г. Оустерхаут становится ведущим инженером проекта SunScript. В течение следующих 4 лет, став одним из проектов корпорации Sun, TCL не только остался свободно распространяемой системой, но и значительно усовершенствовался, стал кроссплатформенным. И в этом же году между Оустерхаут и Столлманом произошла словесная "война" из-за языка Emacs Lisp который продвигал Столлман.
2. Язык TCL должен был быть основным языком компании Sun, но после появления языка Java Джон Оустерхаут покидает компанию Sun и создаёт (при поддержке Sun) компанию Scriptics, продолжая развитие технологии Tcl/Tk
3. В TCL "всё есть строка", что это говорит, это говорит о том, что всё может быть переопределено - простым присваиванием, любые ваши развращенные фантазии, можно реализовать в этом языке :)


Пример

Парсер конфиг файла где есть строки из регулярок
Парсер конфиг файла где есть строки из регулярок
То что получили тут уже ходим по сайтам и парсим по определенным правилам
То что получили тут уже ходим по сайтам и парсим по определенным правилам

Репозитории