Tcl/Tk 9.0: убивця всього чи найбільша подія для програмістів з часів винайдення борщу

Tcl/Tk 9.0: Нова версія старої, віджилої та нікому не потрібної нішевої мови, яка тепер містить деякі покращення продуктивності, підтримку Unicode та нову модель обробки помилок. Це оновлення, можливо, дозволить користувачам трохи ефективніше створювати графічні інтерфейси і автоматизувати рутинні завдання, але кому це насправді потрібно?

Ого, нарешті вийшов Tcl/Tk 9.0? Це дійсно велика подія для тих, хто в темі. Якщо ти зараз дивишся на це, питаючи себе: «Що це за древній динозавр?», дозволь пояснити. Ми пірнаємо у світ програмування, де Tcl/Tk був і залишається незамінним інструментом для тих, хто розуміє ціну ефективності.

Отже, Tcl (Tool Command Language) — це скриптова мова, яка з’явилася ще в 1988-му, старша за більшість ваших гаджетів і навіть за деяких із вас! Вона була створена, щоб робити нудні завдання простішими, і швидко завоювала прихильність тих, хто цінує простоту там, де інші влаштовують хаос. Tk, до речі, — це бібліотека для графічного інтерфейсу, яка дозволяє створювати всі ці кнопочки й віконечка, навіть якщо ти типовий хардкорний системний девелопер, якому більше до вподоби старий добрий термінал, ніж зайвий клікабельний інтерфейс.

З моменту релізу Tcl/Tk 8.6 у 2012 році пройшло цілих 12 років. За цей час ми стали свідками стрімкого зльоту і не менш швидкого спаду таких мов, як Python і Ruby. Вони пережили свій зеніт і занепад, у той час як Tcl/Tk залишався незмінно стійким, як скеля посеред бурхливого моря технологій. Очевидно, що Tcl/Tk — це найкращий вибір для тих, хто прагне стабільності та довговічності. І, звісно, не можна забути про ще одного динозавра — Java. Навіть якщо її незабаром вб’є Oracle, вона теж намагалася втриматися на плаву, але ніколи не досягла тієї ж стійкості, що Tcl.

Ще одним важливим моментом є різниця в моделі управління між Tcl і сучасними мовами. Tcl зберігає просту, централізовану структуру, де рішення приймаються однією невеликою групою людей, які добре знають, що роблять. Сучасні мови, з іншого боку, останнім часом мали свої «напруження» в керівництві. Ви, напевно, чули про всі ті драми з відставками та розбіжностями у баченнях майбутнього. В Tcl таких проблем немає — мабуть, коли все просто працює, драму важко створити.

Крім того, Tcl є надзвичайно привабливим для комерційного використання завдяки своєму ліцензуванню. Tcl має ліцензію BSD, яка є дуже дружньою до комерційних проектів. Ви можете використовувати Tcl у своїх продуктах, змінювати його як завгодно і продавати без жодних обмежень — на відміну від багатьох сучасних мов, які мають більш суворі ліцензійні умови або обмеження. Для підприємств це означає свободу і впевненість у тому, що їх продукт не зіштовхнеться з юридичними складнощами, що є важливим чинником для вибору технологій.

І ось, після довгих років очікування, з’являється Tcl/Tk 9.0! (Хочеш деталі? Глянь тут). Можливо, для когось це «просто ще одна версія», але справжні профі знають, що кожна нова версія — це результат безцінного досвіду і тонни роботи.

Нова версія принесла багато покращень: перероблену підтримку Unicode, нову модель обробки помилок і серйозні оптимізації продуктивності, що дозволяють навіть старим машинам працювати з дивовижною швидкістю. Tcl/Tk 9.0 також додав підтримку сучасних GUI, бо як не крути, кнопочки і віконця все ще потрібні кінцевим користувачам. Хоча справжні профі, звісно, надають перевагу командному рядку.

Що робить Tcl/Tk настільки важливим? У світі розробки ASIC (та інших спеціалізованих чіпів), Tcl використовується для автоматизації рутинних задач, таких як налаштування середовища, генерація тестів або керування інструментами для синтезу й верифікації. Це дозволяє інженерам витрачати менше часу на нудну рутину і більше — на творчість і оптимізацію реальної роботи.

Також Tcl знайшов своє місце і в високорівневому мережевому обладнанні, як от у Cisco і Juniper. Деякі з вас, можливо, навіть мали нагоду розбиратися з його скриптами, коли конфігурували маршрутизатори чи комутатори. І цей досвід виявився досить ефективним — Tcl залишався там, де йому довіряють вирішувати важливі задачі. Навіть MacPorts, який використовується багатьма розробниками, написаний на Tcl, і це додає ще більше прикладів успішного застосування цієї мови.

Tcl — це твій лайфхак, щоб скоротити час між написанням коду і отриманням результату, без зайвого болю. Він робить процес максимально простим і ефективним, дозволяючи зосередитися на вирішенні важливих задач замість марнування часу на складності.

І тут не можна не згадати про особливу філософію Tcl: «все є рядок». Це, по суті, аналог філософії UNIX, де «все — файл». У світі UNIX файли представляють будь-що — пристрої, процеси, сокети. Аналогічно, в Tcl все — це рядок: команди, змінні, аргументи. Це призводить до певної єдності і простоти в роботі з мовою, хоча інколи потрібно докласти зусиль, щоб тримати все в голові. Це рішення має свої переваги для автоматизації і швидкого прототипування, коли немає часу на складні типи даних і структури — все, що вам потрібно, це рядки, з якими легко працювати і легко передавати.

Так, Tcl/Tk 9.0 несе з собою віяння змін, як весняний вітер після довгої зими версії 8.6.

До речі, Tcl передбачувано отримав підтримку корутин і оператора yield більше десяти років тому. І так, поки інші мови все ще намагаються впровадити ці концепції або сперечаються про їхню реалізацію, Tcl тихо й спокійно робив це задовго до того, як це стало мейнстрімом. Крім того, ядро Tcl засноване на циклі подій, що дозволяє ефективно керувати асинхронними операціями. Це ще одна причина, чому Tcl завжди був на крок попереду.

І, беззаперечно, Tcl має найкращу у своєму класі підтримку розбору дати й часу прямо у своєму ядрі. Поки інші мови додавали все нові і нові бібліотеки для роботи з датами, Tcl просто робив це з коробки, без зайвих складнощів.

І якщо після всього цього ви ще сумніваєтеся, чи варто використовувати Tcl, сподіваюся, що тепер вам стало очевидно: ваш поточний безладний проект просто проситься на переписування на Tcl! Немає нічого кращого, ніж упевненість у стабільності, простоті й ефективності. Тож чому б не скористатися цією нагодою і не дати вашому коду другий шанс — на мові, яка точно не підведе? Піднімімо келихи за цю мовну платформу, яка вижила стільки років і продовжує дивувати стабільністю та гнучкістю. Tcl — це старий знайомий, на якого завжди можна покластися, а Tk додає інтерактивності, роблячи ваші рішення приємними на вигляд.

До речі, очевидно, я використовував нову версію ChatGPT з Canvas для написання цієї статті, що дозволяє редагувати текст на льоту, як справжній кодер. Мабуть, Tcl не єдиний, хто здатен перевтілюватися і ставати кращим з кожним оновленням!

Напишіть +1 в коментарях, якщо дочитали до цього моменту. Ну а якщо ні — то теж напишіть, будемо робити вигляд, що ви намагалися!

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось8
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Дякую за статтю.

Бачиш сусліка (tcl) ?
Неаа,
А він є.

Здорово! Ещё регулярно выходят новые версии FORTRAN, вот можно какую-нибудь прогу на нём скомпилировать, и что-то на TCL забацать. Потом написать про это статейку, и выложить через Денвер.

На FORTRAN написано більшу частину дата-сайєнсу, на якому тримається Python :) Там не лише нові версії виходять, а ще й Intel всі свої нові векторні операції, сопроцесори і т.д. туди активно пушить...

Прикольно:)
Tcl когда-то занимал колоссальную нишу, да. Ностальгия в каком-то смысле:)

Это хорошо, что он жив.

олд-скул це круто! доречі, gitk — один з небагатьох тулів, що дійсно однаково нормально виглядає і на лінуксах, і на мак, і на віндах.

За цей час ми стали свідками стрімкого зльоту і не менш швидкого спаду таких мов, як Python і Ruby.

Зараз Python на першому місці в TIOBE index (і останні 20 років він знаходиться в топ-10), Ruby на 18-му. Tcl не потрапляє навіть в топ-50.

На підставі яких даних автор заявляє про «швидкий спад» цих двох мов?

Ну, наприклад, тому що у вас топ репозиторії на GitHub чомусь на JS/React, а не на Python :) Те, що він досі на першому місці — так і Java не на останньому :))

Всі ці індекси — це lagging indicators, вони показують наслідки, а не причини.

А реальність досить очевидна — Python живий лише завдяки датасайнсу.

приємно, що хтось вважає мій гітхаб еталоном популярності компʼютерних технологій, а не всі ці індекси, зібрані на основі активності мільонів менш достойних кодерів.

в проекті, над яким я працюю 90% часу, і який лежить в приватному гітхабі, я використовую python через pyodide, тому що в JS таких потужних бібліотек нажаль нема, і імхо ніколи не буде. (ніт, проект не по data science, просто олдскульний computer aided design).

Окрім DS i TIOBE можна глянути гугл тренди embedded і побачити, наприклад, що "micropython esp32"/"micropython arduino" в рази обходять аналогічні запити по lua.

Той же pyodide (доволі нішевий порт пітону на wasm) має популярність співрозмірну з усім tcl/tk.

На DOU 47 вакансій згадують django (один з багатьох і доволі старий пітоновський веб фреймворк) і жодної не згадують tcl/tk.

Можна критикувати кожний окремий індикатор, але якщо всі вони вказують на той самий тренд — можливо всесвіт намагається натякнути, що іноді треба факт-чекати тексти, написані chatgpt. бо інакше це зробить якийсь злобний дід в коментах.

А реальність досить очевидна — Python живий лише завдяки датасайнсу.

І легким веб-«рушіям», од Django до aiohttp.

ChatGPT з Canvas пише текст (чи допомагає писати текст), який виглядає як набір лозунгів.
Воно ніби ок, але втомлює від Егергії та Зарядженості Цього Тексту.

А щодо самого tcl/tk — то це радує, дякую за розбір новини.

Згоден, іноді здається, що трохи забагато лозунгів, але хтось же має робити цей світ яскравішим і цікавішим 😊
Якщо чесно, колись я досить багато писав на Tcl, і це було дійсно зручно.

цікавішим? я дочитав до кінця і зрозумів, що найнаповненіша інформацією частина — заголовок. А далі — «що читав що радіо слухав»

без зайвого болю.

шат ап енд тейк май мані

Колись пробував ui для утиліти на python написати на ньому це повна дічь. Той же QT набагато зручніший

OMG думав воно вже нарешті спочило, а люди перебрались на wxWidgets, GTK+, QT і т.д. Але виявляється ні — ще чомусь воно живе.
Це настільки закам’яніло лайно мамонта, що там лише в 2024 завезли UNICODE в повній мірі, це там мало бути ще в 2000-му, але не вийшло бо Sun перекинуло усі зусилля на команду Гослінга та Java. Перший реліз оцієї штуки — 1988, але так як той же QT воно не розвивалось і близько.

Біль того наче під віндою досі ставиться за замовчанням із пакетом python

Тому що UI за замовчуванням в Python це Tk :)

Ну через те, що воно за замовченням його як той AWT/Swing народ намагався використовувати. Доки не вмовили зїхати на wxPy.

Підписатись на коментарі