Спустя 27 лет со времени формирования ветки 8.0 представлен релиз Tcl/Tk 9.0, динамического языка программирования, распространяемого совместно с кроссплатформенной библиотекой базовых элементов графического интерфейса Tk. Основное распространение Tcl получил как платформа для создания интерфейсов пользователя и как встраиваемый язык, при этом Tcl также подходит для быстрого прототипирования, web-разработки, создания сетевых приложений, администрирования систем и тестирования. Код проекта распространяется под лицензией BSD...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=61944
Перл своего времени. Такой же непонятный, но почему-то применявшийся.
Что за чушь? Это буквально один из самых простых языков программирования.
Почему в прошедшем времени? Perl 5 сейчас активно используется, просто он не на виду, т.к. предназначен для решения повседневных прикладных задач, а не для создания больших проектов и выкладывания на GitHub.
Некоторые js и python для скриптов используют
Это их выбор. Не будем их осуждать.
> предназначен для решения повседневных прикладных задачв легаси инфраструктуре.
Лучший из лучших. Скурпулезное отношение к мелочам. Отличная читаемость и производительность. Забота об обратной совместимости. Аскетичность и удивительная достаточность. Параллельное программирование - лушая реализация их простых и понятных. Образец для подражания.
> Забота об обратной совместимостиАга, пути с ~ и глобальные переменные перестали работать.
Позаботились, спасибо.
Ну, раз в 27 лет можно, да?
> Лучший из лучших. Скурпулезное отношение к мелочам.Глобальное пространство имён по умолчанию?
Так переделали же. Я и говорю, скурпулезно.
У Tcl была одна важная приставка, сильно отличающая его от Перла: "Tk". Т.е. любой скриптописака мог за час слабать недурственный GUI! Да, руками, но ГУЙ! Это важно. Не всем заходят консольные поделия с тысячей флагов.
> Перл своего времени. Такой же непонятный, но почему-то применявшийся.Как бы там ни было, а многие большие и дорогие программы (порядка ста тысяч баксов за годовую лицензию) представляют собой набор консольных утилит, обвязанных графическим интерфейсом именно на TCL/TK (САПР Ментор Графикс, например).
Это такая архитектура десктопных приложений -- нижний уровень обеспечивает чистую функциональность и пишется на языке низкого уровня, таком, как, например, си и с++. Он предоставляет прикладной протокол для сокетов и консольный утилитарный интерфейс поверх него (типа, как у gdb), а фронтенд пишется на скриптовом языке, предоставляя графический пользовательский интерфейс и интеграцию утилит.
Такая архитектура является единственной, которая обладает линейным масштабированием функциональности при сохранении производительности. Все остальные практически сразу упираются в падение производительности, либо банально не могут масштабироваться. Например, полный стек в рамках ОО архитектуры не масштабируется по функциональности в принципе (как пример, программы в составе {open|libre}office). Даже если не обращать внимание на производительность.
воу воу полегче , куда так скачете с разработкой и нововведениями в язык =D
Заголовок немного провокационный. В течении этих 27лет язык развивался и регулярно выходили обновления. Предыдущая версия вышла всего дней 10 назад.
До сих пор ничего лучше ткл гуя придумано не было.
Если не делать ничего сложнее школьных лабораторных по информатике, то может быть.
Если у тебя такое все сложное то тебе надо свой фреймворк писать. Или архитектуру приложения переделывать.
> Если у тебя такое все сложное то тебе надо свой фреймворк писать.Только зачем, если уже есть Qt.
Если тебе хватает Qt не такой уж у тебя и сложный гуй.
Для тех кто в танке... ну или на бронепоезде...
в Qt можно использовать свои виджеты, которые делают то, что ты хочешь и так как ты хочешь.
Ну или чужие наработки.
> в Qt можно использовать свои виджеты, которые делают то, что ты хочешь и так как ты хочешь.Ну или чужие наработки.
Как и в Tcl/Tk.
В tk уже появился табличный виджет?
Перманент в гугле? https://tktable.sourceforge.net/
Придумано: GNOME HIG и libadwaita.
inb4 "гигантские кнопки", которые оказываются таких же размеров, если сравнивать попиксельно с KDE/Qt.
Кнопки на полэкрана - это, как раз, про GNOME.
Если экран размером со спичечный коробок, то да. На таком экране любая кнопка будет на полэкрана, какой тулкит ни возьми (включая сабж).
У меня монитор 27'' и мне нравятся мелкие элементы управления, это позволяет уместить на экране больше окон.
Значит значительнейшая часть тулкитов не соответствует твоим критериям. Под значительнейшим я подразумеваю вообще все тулкиты, за исключением специально написанных под конкретную прогу (типа Blender).
WinXP соответствует.
На мониторах 800x600 или 1280x1024 (обычные для тех времен), икспишечка вполне себе имеет "кнопки на полэкрана". Разумеется, это если пользоваться терминологией анонов выше, ибо на самом деле у икспишечки нормальные размеры для моников тех времен, как и у GTK/Qt -- для моников времен 2024.
У Gtk современного для планшетов и то на планшетах он не используется.
Нет не так. https://ibb.co/Sck3xgh
У тебя там даже панель распухла.
Специально открыл гномовский софт поверх скриншота. Да, в пикселях кнопки у меня несколько больше, зато и разрешение экрана тоже больше. При этом в некоторых программах, типа konsole я периодически специально увеличиваю шрифт, чтобы было комфортнее читать. Так что никакой выгоды старый xp в плане размещения информации не даёт, скорее наоборот бездарно тратит. Вот у вас, например, панель задач в две ширины, при том, что она практически пустая. Заголовок окна у вас на скриншоте - просто огромен. В гноме есть csd, там в заголовке может куча кнопок быть, в firefox там вкладки. У вас всё это место уходит только на то, чтобы может быть таскать окно по экрану. Я окна не перетаскиваю, занчит у меня это пространство будет уходить в никуда. Кнопки ОК Отмена Применить тоже отъедают пространство. Их вполне можно было бы в заголовок окна засунуть. Кнопка Отмена - вообще бессмысленная, так как она полностью дублирует функцию закрыть окно. Пустые рамки вокруг значка раскладки, он при моём текущем разрешении немного меньше чем у вас. Трей, в котором куча значков. Вы всеми десятью программами пользуетесь с одинаковой частотой? Как по моему, в трее нет смысла держать все значки постоянно, только несколько частоиспользуемых, остальные скрыть.
Панель задач в две ширины для того чтобы эти самые окна были на виду и удобнее было переключаться между окнами програми когда их становиться слишком много.Мне не нужны все пиктограммы в системном лотке, но так как в Windows XP нельзя сделать так чтобы всегда показывались только указанные пиктограммы, то пришлось включить показ вообще всех пиктограмм. Постоянно пользуюсь только тремя из них.
О бессмысленности кнопки отмены согласен, а с перемещением кнопок в заголовок окна нет. Заголовок окна конечно толстоват, но если начать перемещать туда кнопки, поля ввода и всё прочее, то заголовок приходиться делать большим чтобы там всё это уместилось и не было слишком маленьким. Ну и как видно кнопок на полэкрана нету.
Чтобы оценить выгоды перемещение всего чего только можно стоит глянуть это сравнение Visual studio 2010 и Visual studio 2019. Сэкономлено почти ничего и при этом кнопки управления окном сделали большими и без видимых грани между ними. Название проэкта почти не видно. Пункто панели меню стало 13 вместо 14 так при этом в Visual studio 2010 ещё осталось много места на панели меню. Также сократилось число кнопок на панели быстрого доступа и опять же стало меньше свободного места из–за большых отступов в Visual studio 2019.
https://ibb.co/7k64pVRТолько что запустил GNOME 3 сравнить с тем ж GNOME 2, но увидев что они там наворотили даже не стал начинать. Чего только стоит изуродованное главное меню в котором они умудрились соединить вместе относительно мелки пиктограммы и оброезанны подписи к ним.
https://ibb.co/2K3zyYt
>а с перемещением кнопок в заголовок окна нет. Заголовок окна конечно толстоват, но если начать перемещать туда кнопки, поля ввода и всё прочее, то заголовок приходиться делать большим чтобы там всё это уместилось и не было слишком маленьким. Ну и как видно кнопок на полэкрана нету.В этом случае, заголовок станет толще может процентов на двадцать, зато исчезнет панель снизу, размером примерно в полтора-два заголовка.
>Чтобы оценить выгоды перемещение всего чего только можно стоит глянуть это сравнение Visual studio 2010 и Visual studio 2019Давненько я со студей не взаимодействовал. Тут вопрос не в перемещении, а в том, что интерфейсы делаются под сенсорные экраны, с соответствующими отступами. Мне сложно представить, кто будет открывать студию на таких устройствах, так как правило это не особо производительные ноутбуки. Если ужать отступы, то влезет всё тоже самое.
>Название проэкта почти не видноВидно и хорошо, но в непривычном месте, из заголовка эту информацию можно было бы и убрать. Под списком открытых файлов идёт в начале название проекта, потом название модуля, потом имя метода. Мне сложно сказать, кто и как проектировал интерфейс. В старой студии на панели состояния итак куча места, так в новой они ещё части информации перетащили на строку с полосой прокрутки. Здесь проблема - это монитор 3:4. Сейчас всё затачивается под длинные мониторы, дошло до того, что на смартфонах в 16:9 не влезает, дизайнеры хотят 21:9.
>Также сократилось число кнопок на панели быстрого доступа и опять же стало меньше свободного места из–за большых отступов в Visual studio 2019Не совсем. В панель быстрого доступа воткнули кнопку "Admin" - не знаю, что она делает, и скорее всего кнопку смены аккаунта. Плюс выпадающий список Any CPU.
>Пункто панели меню стало 13 вместо 14 так при этом в Visual studio 2010 ещё осталось много места на панели менюЭто незанятое место - просто потеря пространства. Не знаю кто как, но я почти всегда держу окно развёрнутым на полный экран и лишь иногда на половину, в мозаичной компоновке. Может кто-то и программирует при стековом расположении окон, но в это мне трудно представить.
>Только что запустил GNOME 3 сравнить с тем ж GNOME 2, но увидев что они там наворотили даже не стал начинатьУ гнома есть большое количество расширений. Правда они не меняют внешний вид приложений, типа наутилуса, но вот меню, панель и прочее - очень даже. Гномеры кончено любители ломать совместимость с расширениями, но если не сидеть на арче, то обычно проблем не будет.
https://extensions.gnome.org/extension/3628/arcmenu/
https://extensions.gnome.org/extension/6/applications-menu/
https://extensions.gnome.org/extension/608/gnomenu/
То есть запихивание всего и вся в заголовок окна чтобы иногда немного сэкономить места это хорошо?
Я не говорю, хорошо это или плохо. Я говорю, что любители старых интерфейсов совершенно забывают, как тратилось место в старых программах, на всякие кнопки ок, отмена, но осуждают новые, какие на современных разрешениях выглядят компактнее старых
Да ладно.
У меня сейчас 2 по 1280х1024.
Даже 10-ка на них отлично смотрится.
> У меня монитор 27'' и мне нравятся мелкие элементы управления, это позволяет уместить на экране больше окон.Да вы батенька - извращенец )
Открой для себя "Рабочие столы" и "Быстрые клавиши", тогда не придется гробить зрение, разглядывая надписи и кнопочки под лупой.
Горячие а не быстрые.
Как он вообще выглядит? Есть примеры програм?
Как ядерная война зато просплатформенно переносимо и работает десятилетиями. И ресурсе не ест от слова ваще совсем https://en.m.wikipedia.org/wiki/Tk_(software)
Неправда! Tk везде выглядит нативно. Но на линуксе нет "нативного" вида, поэтому приходится выглядеть как гов^Wмотиф. Но дело поправимое с помощью ttk.
Скриншот из видны выглядит ужасно, но полагаю, тут примерно половина вины самой винды. Взять то, что переключатель выглядит не круглым, а каким-то многоугольником. Canvas без сглаживания. Тонкие, однопиксельные линии. Вот vista выглядела очень красивой. Оформление 9x могло выглядеть неплохо. Но нет, текущий результат однозначно ужасный.
На скриншотике ещё куда ни шло. Наверное, потому, что в Десяточке.
QML тоже кроссплатформенно. А ресурсы... (волнуют владельцев P-IV). Зато выглядит не как ядерная война.
> А ресурсы... (волнуют владельцев P-IV)То есть, ноутбука у тебя никогда не было, а если и был, то всегда лежал на столе, подключённый к розетке.
> А ресурсы... (волнуют владельцев P-IV)Ложь. Обладателей i5 13xxx тоже волнуют. Сам такой.
>На скриншотике ещё куда ни шло.На скриншоте ужас. Одно только отсутствие сглаживания чего стоит.
Tk поддерживает темы, можно сделать красиво.
Усложнение, не понятен срок поддержки темы.
Откройте каталог любой темы, прежде чем заявлять об усложнении. Они простейшие.
>УсложнениеНикакого усложнения. Если ты не игнорировал рекомендации и использовал ttk вместо старых виджетов, то тебе даже код менять не придётся. Просто выбираешь понравившуюся тему и подгружаешь.
>не понятен срок поддержки темы.
Там-то и поддерживать особо нечего. Это, грубо говоря, css с картинками.
> Это, грубо говоря, css с картинками.Картинки то хотя бы векторные?
Теперь могут быть. Прямо в новости написано:> Добавлена поддержка векторной графики в формате SVG, которую можно использовать для создания масштабируемых виджетов и тем оформления.
Кстати, на Винде стандартная тема Tk сделана не статическими картинками, а рисуется через Win32, то есть выглядит как родная и масштабируется без "мыла". За Мак, правда, не помню...
Поэтому разговоры о плохом виде Tk лет 10 минимум как не актуальны.
> можно сделать красиво.
> [кидает ссылку со скриншотами, подтверждающими, что сделать красиво нельзя]нуок
Там закос почти под все существующие операционные системы. Выглядит вполне достойно.
А ещё этот интерфейс встроен в питон =р и всегда работает без доп либ.
Tk в питоне сравним с совой на глобусе. Он не вписывается в идиоматику языка.
Это всё не важно, важно лишь, что у любого, поставившего третий питон окошки откроются с помощью 10-20 строчек кода.
> Tk в питоне сравним с совой на глобусе. Он не вписывается в идиоматику языка.И каким именно образом он "не вписывается"?
использовал только tkabber
Согласен. И порог вхождения - ниже не придумаешь. Просто берешь и пишешь.
И код как песня льётся...
>Добавлена поддержка прикрепления архивов к библиотекам и исполняемым файлам, что позволяет формировать однофайловые сборки, включающие все необходимые для работы приложения данные.Java, потеснись.
Правда неясно, возможно у Tcl это будет настоящий исполняемый файл, либо zip-архив как у Java.
> Добавлена поддержка работы с 64-разрядными переменными, что позволяет использовать значения, превышающие 2 ГБ.Откуда вы это взяли? Какие значения превыщающие 2ГБ? В оригинале:
> 2002-02-15 (new feature)[TIP 72] support for 64-bit integer values on
32-bit platforms and ability to work with >2GiB files. Extends many
commands. See ChangeLog and TIP for details.
http://tcl.tk/software/tcltk/9.0.html
>64-bit Capacity: Data values larger than 2Gb
Это что за такая переменная, измеряющаяся в Гб? Строка? Массив? Точнее писать надо.
Учитывая, что в tcl'е всё есть или строка, или команда, вариантов не много.
С точки зрения программиста, под капотом, конечно, это не совсем так.
Строка в какой кодировке?
> 64-bit capacity: Data values larger than 2 GB
> - Strings can be any length (that fits in your available memory)
> - Lists and dictionaries can have very large numbers of elements
Т.е. они сами у себя чуш написали, ясно, спасибо.
Пришлось столкнуться когда ковырял FPGA. Язык просто отвратительный. Да и сайт сам за себя говорит. Какой-то мусор из 90-х как и сам язык.
Отлично, теперь этот язычок не только архаичен, но и несовместим сам с собой.
Это не айфон, пользуйся предыдущей версией.
> Перл своего времени. Такой же непонятный, но почему-то применявшийся.Так они с перлом ровесники. Да, оба два от людей ничего не понимающих в языках программирования.
> Так они с перлом ровесники. Да, оба два от людей ничего не понимающих в языках программирования.В книжке про Perl, если не ошибаюсь (давно было), начиная со с. 301 было описание взаимодействия Perl с интерфейсными элементами Tk. Так что они у меня чисто ментально воспринимаются едино.
Как условный рефлекс? Видишь тцл и попёр перл?
Попёрл
> от людей ничего не понимающих в языках программированияЦитаты из статьи Михаила Полушкина (MihailPolushkin@gmail.com):
http://minix3.ru/docs/tcl.pdf"Tcl появился на свет в конце 80-х. Джон Остераут, его создатель и профессор университета Беркли, в те времена работал над новой экспериментальной операционной системой Sprite. Группа его студентов занималась разработкой ядра системы, в то время как сам Остераут, используя свой новый язык, создавал текстовый редактор и эмулятор терминала для новой ОС."
"В 1997 году ему была вручена награда ACM Software System Award за язык Tcl. Наряду с ним награду получали: Ричи и Томпсон за UNIX, Дональд Кнут за TeX, разработчики TCP/IP, WWW и нескольких других технологий, определивших историю человечества."
Поколение эге изучение истории считает пустой тратой времени.
Премия - не показатель ничего. В то дремучее время премии раздавали походу любому, кто кричал "я написал ЯП!". Столько г---на было понаписано, что про некоторые ЯП мы даже не слышали! Но факт тот, что до реально удобного применения годятся от силы 5 языков. И увы, Tcl с его скриптовой природой просто не нужен.
Языки для адекватов: C#, Kotlin. Языки для гиков: C++, Perl, LISP, Smalltalk. Весь остальной мусор можно стереть и забыть.
Поддержку вяленого в TK они так и не реализовали?
А чем им тильда (~) не угодила в качестве ссылки на домашний каталог?
Жаль, что убрали. Удобно было. Теперь придется старые скрипты пересматривать.
На венде эта загогулька не значит ничего. Соотв. скрипт, который заложился на "это домашний каталог юзера", будет лажать. Так-то в венде есть домашний каталог юзера, но... во-первых, их там ТРИ, а во-вторых, в венде никто и не слыхивал про "~". Так что проще отменить "гиковское" значение тильды и использовать просто как символ.
>на использование системных вызовов epoll и kqueueЭто, конечно, хорошо. Но когда уже сделают настраеваемый backlog для слушающего сокета? Из-за этого тикль нельзя применять при сколь-нибудь интенсивных нагрузках.
В 97-м году запустил первую систему мониторинга tkinter написанную на tcl.
До сих пор работает?
Не знаю как у того анонима, у меня работает
Кто-нибудь уже смотрел, что там за новые команды?
> Прекращена интерпретация символа "~" в файловых путях как домашнего каталога пользователя.Вот это номер!
Это когда делаешь кроссплатформенный тулкит, но используешь понятия одной конкретной системы.
Гораздо хуже в таком поведении другое - `~` - это валидное имя файла/каталога в ФС, поэтому обработка этого имени специальным образом на уровне API работы с ФС - это очень плохая затея.Представьте, что у вас есть некий каталог, содержимое которого вы не контролируете, в этом каталоге кто-то создал подкаталог с именем `~`. Допустим, вашему скрипту нужно рекурсивно обойти этот каталог. При попытке прочитать содержимое подкаталога `~` он вместо этого прочитает содержимое домашнего каталога и далее пойдёт внутрь и обойдёт весь домашний каталог, а вовсе не подкаталог `~` в исходном каталоге.
Последствия прикиньте сами
Очевидно или разработчик или язык не умеет в контекст.
> Очевидно или разработчик или язык не умеет в контекст.Контекст глобальный.
Язык крутой уже потому, что был не осилен Ричардом Столлманом. Одобряем!
Кстати, да. Репейник ему в бороду за это.
Столлман - лиспер. Ему важнее программировать на Лиспе.
Ну я сам тоже уважаю Лисп, он очень красивый и элегантныйА вот Столлман как-то взъелся на Остераута. У Остераута была идея, что есть ниша для мелких скриптовых языков, которые как клей (если не придумываю, то его метафора как раз) помогают в разных мелких вещах, быстро переконвертировать что-то во что-то и т.п. И тикль для этого и задумывался. А Столлман начал, что не нужен этот ваш тикль, ерунда это всё
>У Остераута была идея, что есть ниша для мелких скриптовых языков, которые как клей (если не придумываю, то его метафора как раз) помогают в разных мелких вещах,Этих мелких языков больше чем нужно, с слабозаметной разницей. Достаточно взять любой взрослый язык, добавить к нему батарейки и надобность в мелких языках тут же отпадает. Тем более, что при серьёзном применении эти скриптовые языки не масштабируются.
> Этих мелких языков больше чем нужноСейчас да. Но вот Вики пишет, что Tcl появился в 1988 году аж. Языки, конечно, уже были и тогда, но думаю что их было меньше, да и Интернет был не настолько развит, чтобы можно было просто загуглить и найти что-то нужное под задачу.
Это сейчас и Интернет есть, и инструментов полно, а тогда ещё те времена были, когда наверное легче было просто себе сделать инструмент под свои задачи.
> Достаточно взять любой взрослый язык, добавить к нему батарейки и надобность в мелких языках тут же отпадает. Тем более, что при серьёзном применении эти скриптовые языки не масштабируются.
Спорно, хотя во многом согласен. Но концепция, как я её понимаю - именно в таком быстром языке-замазке, на какое-то именно вот серьёзное применение (типа какого-нибудь корпоративного высоконагруженного сервера) такие языки не должны претендовать. А сделать прототип, склеить домашнюю страничку, написать быстрый одноразовый скриптик для мелкой рутины - почему бы и нет
> Языки, конечно, уже были и тогда, но думаю что их
> было меньшеБыло полно, о многих просто уже забыли.
На самом деле, я вот сейчас думаю, языков может даже могло быть и больше. Опять же, Интернет не так большой, поисковиков ещё вроде толком не было. Инструменты найти сложнее - люди просто писали себе свои собственные.Так же вот как и операционных систем раньше было дофигища разных. Каждый делал под свои нужды. А вот сейчас уже оформилось несколько самых крупных, типа Линукса, Винды, Макоси, Фряхи, и софт под них есть и очень много. А все остальные стали не нужны и угасли, ну или же ушли во всякие специализированные области применения типа каких-нибудь реал-тайм ОСей для марсоходов и прочих железок
До tcl/tk графические программы можно было создавать только на С с использованием X toolkit intrinsics и osf/motif, что было излишне сложно для маленьких программ, особенно для непрофессиональных программистов.>Так же вот как и операционных систем раньше было дофигища разных. Каждый делал под свои нужды
Из бесплатных в 80-е годы была только minix.
>Но концепция, как я её понимаю - именно в таком быстром языке-замазке, на какое-то именно вот серьёзное применение (типа какого-нибудь корпоративного высоконагруженного сервера) такие языки не должны претендовать. А сделать прототип, склеить домашнюю страничку, написать быстрый одноразовый скриптик для мелкой рутины - почему бы и нетЯ некоторое время назад писал для себя небольшие скрипты на ruby. Однако позже, я решил от этого отказаться, и писать всё, как небольшие задачи строк на десять, так и довольно большие программы на одном языке - Ocaml. За счёт того, что я не переключаюсь при написании скриптов на другой язык, я могу сразу же начать писать код, а не искать информацию, как это сделать на руби, так как за время, прошедшее после написания предыдущего скрипта я уже успел забыть руби. Не могу сказать, насколько подобные языки облегчают вход в программирование, но если человек уже программирует, то для него такие языки будут скорее отвлечением. Возможно, в будущем я и на баше перестану писать скрипты
>Это сейчас и Интернет есть, и инструментов полно, а тогда ещё те времена были, когда наверное легче было просто себе сделать инструмент под свои задачи.А на самом деле не важно, кто из них был первым, вопрос в том, что есть огромная куча якобы простых языков. Вот далеко не полный список: Basic 1964(впоследствии куча разных диалектов), Smalltalk 1972, Scheme 1975, Perl 1987, Tcl 1988, Python 1991, Lua 1993, ruby 1995, php 1995. Сейчас этот процесс к счастью замедлился, и новые языки скорее всего так и останутся малоизвестными, хотя вот в 2009 Julia появилась и даже получила определённую популярность.
>за время, прошедшее после написания предыдущего скрипта я уже успел забытьЯ думаю что у многих такая же проблема. А если подсчитать время на вспоминание, то может оказаться что выигрыша в скорости разработки нет.
>есть огромная куча якобы простых языков.
Так это всё или для быстрого прототипирования или для любительского программирования.
>Так это всё или для быстрого прототипирования или для любительского программирования.Данные языки не содержат в себе какого-то внутреннего ограничения. Если любительский проект или прототип взлетит, он так и будет на этом же языке. И потом, всеми правдами и неправдами его будут дальше развивать. Уже дошло до того, что для динамически типизированных языков переизобретают статическую типизацию, типа typescript. Работает это через раз, но так вот на любительских язык и пишут серьёзные проекты. Хотя можно было бы изначально взять Ocaml, а не изобретать typescript.
На самом деле аналогичная ситуация. И всегда вот небольшая дилемма - вроде хочется всё написать на одном языке (в моем случае это Go), а вроде бы это такие задачи, для которых все пишут скрипты, кто на баше, кто на питоне, и код на Го, который надо компилировать, они в этом месте не поймут. А так да - приходится нагугливать, как сделать на Питоне, и по итогу-то времени тратишь не так уж мало
Во-первых, "мелкие скрипты" легко могут писаться и на обычном ЯОН, нахрена делать ОТДЕЛЬНЫЙ язык?? Пример: язык D, где сорсы можно как канпелять, так и скармливать интерпретатору.
Во-вторых, Tcl - не такой простой язык, чтобы "любая домохозяйка" могла на нём писать.
В третьих, УЖЕ ЕСТЬ BASIC - реально простой язык для начинающих, возможностей которого хватает с головой для любых скриптов. Причём он тоже ЯОН, т.е. вы не будете ограничены возможностями, который закладывал в "скрипто-язык" его создатель (например, "всё есть строка" в Tcl - тупость несусветная).
Столлман всё это видел и наверняка объяснял, но как ты остановишь дурачка с горящими глазами, которому хочется написать ЧТО УГОДНО, лишь бы это был ЯП??
Ну в Си или Go интерпретатора нет. Я бы писал вместо скриптов и на них. Да люди косо посмотрят, что надо компилять и запускать, вместо того чтобы просто запустить скрипт на питоне или баше (будь он ...)
>Столлман - лиспер. Ему важнее программировать на Лиспе.Не многим известно, но tcl - тоже лисп, но со строками слов вместо списков.
Может быть это и было актуально в своё время, сейчас же даже не представляю, кто в здравом уме будет что-то писать на тикле.
Он всё ещё актуален. Да и вообще, какой, кроме Tk, ты знаешь реактивный гуи-тулкит? Вебня не считается.
> Он всё ещё актуален.Примеры?
https://bpa.st/UVVN2
Вот тебе пример. Реализуй такое же на своем любимом языке и тулките.
У тебя запросили пример реального готового продукта, а не непонятного васянокода на 10 строк.
За этим в поисковик, я не слежу, кто и что на нём пишет, лишь использую для своих нужд.Что касается актуальности, tcl/tk не только остаётся конкурентноспособным в настоящее время, но и по некоторым параметрам опережает альтернативы.
>непонятного васянокода
Код прост и прозрачен. Запусти и всё поймешь.
> по некоторым параметрам опережает альтернативыПо каким именно? Лить воду тут все умеют. Конкретику давай, в цифрах, а не в ощущениях.
Реактивность, например. Выразительность.>в цифрах, а не в ощущениях.
Реализуй пример выше на своем любимом языке - сравним, будут тогда и цифры.
> По каким именно? Лить воду тут все умеют. Конкретику давай, в цифрах, а не в ощущениях.Навскидку, опережает он в:
* Простой и гибкий синтаксис, позволяющий максимально легко сделать свой DSL.
* Зрелый, кросс-платформенный GUI тулкит со встроенным scene graph.
* Огромный набор готовых, проверенных временем библиотек на все случаи жизни и предметные области.
* Максимально легкая связь с другими языками. С помощью criticl сишный код так вообще можно инлайном в Tcl скрипте писать.
> У тебя запросили пример реального готового продукта, а не непонятного васянокода на 10 строк.Чел, какой еще "готовый продукт" на скриптовом языке?
Он создавался как инструмент для внутреннего использования: прототипирование (в т.ч с GUI), скриптинг, автоматизация тестирования, создание DSL под личные нужды.
Под все эти задачи Tcl - это устоявшийся, проверенный временем инструмент, в котором есть решения на все случаи жизни.
А если тебе кодеров по объявлениям набрать, то да, тут он в пролете. Как и все, что не используется крупными игроками в больших комперческих проектах, и соответственно, не изучается будущими наемными работниками.
Да ладно. Если ты программист для Linux, то мелочевка типа awk, sed, tcl это само собой разумеющиеся навыки которые нужно знать хотя бы на поверхностном уровне.
> tclВот тут глубокая ошибка.
В том что видел генерируют код и потом его выполняют.
А правила обработки кавычек и спецсимволов в таком случае дают такие нюансы, что иногда думаешь:
"Это ошибка или разработчик и в самом деле этого хотел?".
> У тебя запросили пример реального готового продуктаGitk.
Запустил gitk. Выделил интересующий хэш. Скопировал в буфер.
Закрыл gitk. Вставил в терминал. А хеша - нет.
После закрытия gitk уже нечего вставлять.
Нюансы tsl/tk.
У меня такие глюки с буфером часто бывают и с другими приложениями. Не пойму чей косяк, то ли буфер линуксов такой, то ли кдешный менеджер истории буфера косячит.
Это бага от рождения tcl/tk. Они ее не багой а особенностью считали и править не собирались.Что при этом откалывались варианты использования программ на tcl/tk их не волновало.
Как это предлагается читать?
Не уверен, что я правильно понял код, но пример напоминает Elm. А это любой elm like подход. Хоть тот же react native, хоть iced на rust.
>Как это предлагается читать?Можно с документацией http://tcl.tk/man/tcl9.0/TkCmd/ttk_label.html
Хотя мне кажется, что код и так достаточно прозрачен.> но пример напоминает Elm
Ну да, только там FRP, а в tcl реактивность на уровне интерпретатора.
>Ну да, только там FRP, а в tcl реактивность на уровне интерпретатора.И что эта реактивность на уровне интерпетатора даёт? Почему это не может быть на уровне библиотеки?
Судя по вопросам, ты не понял, о чем речь. Почитай, что такое реактивное программирование.
>Хоть тот же react native, хоть iced на rust.Модно-молодежно, но tcl/tk всё ещё лаконичнее.
>> Он всё ещё актуален.
> Примеры?Какие ты хочешь примеры, если Tcl используется для "внутренней кухни" - прототипы, скипты, тестирование, DSL?
Ну вот тебе список компаний, например:
> Tcl используется для "внутренней кухни"Хочется мне посмотреть где вообще хотя бы просто слышали о таком языке в 2к24 году в этих ваших "внутренних кухнях".
> Хочется мне посмотретьТак бери и смотри по ссылке вверху. А чем проблема?
Написание 2k24 - определённый маркер.
>Примеры?A Tcl/Tk RAD - https://github.com/vtcl/vtcl
WaveSurfer is a tool for sound visualization and manipulation - https://sourceforge.net/p/wavesurfer/
Графический видеоконвертор на FFmpeg - https://sourceforge.net/projects/tkffmpeg/
1C rac gui tool (Графический интерфейс к утилите управления кластером серверов 1С rac) - https://www.opennet.dev/opennews/art.shtml?num=49258
Password gorilla is simple but powerful password manager writen in tcl/tk - https://github.com/zdia/gorilla
DRAKON Editor is a free cross-platform editor for the DRAKON visual language - https://drakon.su/drakon_editor
Vkeybd — это виртуальная клавиатура для MIDI- и ALSA-драйверов.
Она эмулирует функциональность обычной MIDI-клавиатуры, позволяя
отправлять MIDI-события с клавиатуры или мыши. (An old and good virtual keyboard) - https://github.com/tiwai/vkeybdpd - Real-time patchable audio and multimedia processor. pd gives you a canvas for patching together modules that analyze, process, and synthesize sounds, together with a rich palette of real-time control and I/O possibilities.
Maxima graphical frontend written in Tcl/Tk - https://maxima.sourceforge.io/download.html
TiMidity++ -- проигрыватель MIDI-файлов, не требующий аппаратной
поддержки MIDI и использующий для синтеза внешнюю wavetable в
виде так называемых патчейDSTool - a dynamical systems toolkit
DsTool - A Dynamical Systems Toolkit.
This software is very useful in the visual study of nonlinear systems and Chaos, as well as finding numerical solutions to differential equations. It has the ability to plot flows and maps in both 2D & 3D phase space
tkabber официально мёртв
Он прекрасен для создания DSL. В Сане/Оракле я его использовал в хвост и гриву.
> кто в здравом уме будет что-то писать на тикле.На тикле, например, пишут скрипты управления железками через NIST Expect, если snmp по какой-то причине не подходит.
У меня когда-то была проблемная железка, которая постоянно отваливалась, при этом достучаться до неё становилось невозможно, и передёрнуть её можно было только по питанию - звонили дежурным, они кнопку тыкали. Пришлось колхозить схему - писюк рядом со стойкой, с ним связь по g.shdsl по отдельной паре, на писюке Expect через com-порт мониторит состояние железки.
Tcl/Tk, читается как "тикль-ток". Никто об этом даже не упомянул.
25 лет не знал как это читается и узнавать не хочу.
Теперь не развидеть.
начинал с него. dsl очень легко реализовать, например конфиг bind.
потом ушел в плюсы, сейчас в лисп, думаю на этом пути и останусь.
>на печать и системный лотокЧто такое системный лоток?
> Что такое системный лоток?tray systems
Вроде это значки справа на панели задач.
Предусмотренное конструкцией системы корытце с кошачьим наполнителем.
Уж куда лучше, нежели десктоп, загаженный "ярлыками".
Вот это реально событие. Долгая лета!
Долгие лета. Пиши правильно.
Долгая лета – это с церковно-славянского.
Где на практике в известных проектах его посмотреть? Видел в редисе тесты на нем.
Для примеров применения можно глянуть сюда:
https://archlinux.org/packages/extra/x86_64/tcl/#pkgreqs
причем там не все вижу чем пользовался, что-то видимо тянет его через другие библиотеки.
И ведь совсем не густо. Раньше больше бвло. Это кстати примерно то что ждёт перл.
Сколько платят программистам на тикле и есть ли вообще вакансии? А подсветка синтаксиса и автодополнение в vscode? Мне кажется даже перл более жив на фоне сабжа.
Некорректные вопросы. Для тикля не нужны вакансии. Ты сам тащишь его (без спроса) в проект для автоматизации. Работодатель вообще может не знать о нём, а ты нажал enter, скрипт побежал и отдыхаешь оставшийся день.
> для автоматизацииЭмм... а зачем, если есть bash и всякие там sed с awk?
Tcl имеет в базе полезные библиотеки, bash довольно скуден.
>Эмм... а зачем, если есть bash и всякие там sed с awk?Удел баша - это запуск нескольких программ за один раз, с нужными ключами. Посмотрите на сложность работы с массивами, например, https://www.shellcheck.net/wiki/SC2207
Для GUI.С мелкой автоматизацией bash вполне справляется, а вот простенькую форму набросать уже неудобно, и zenity не спасает.
А gtkdialog и ему подобные ... ну так.
>Ты сам тащишь его (без спроса) в проект для автоматизации. Работодатель вообще может не знать о нёмРаботодателю нужна итоговая функциональность. На чём написано - не его собачье дело. А если работодатель с бзиком в голове, то пусть в договоре явно указывает язык и тулкит на котором надо сделать приложение.
Вот бы выпилить UI и сделать самостоятельной кросплатформенной универасльной библиотекой, а язык этот Tcl выкинуть нафиг.
Может тебя самого надо выкинуть нафик. Вот, цитата из Википедии:
"Tk может использоваться другими языками программирования, например Perl, Python, Ruby. Большинство из этих языков использует Tcl как мост для Tk.
Tk портирован на большинство реализаций Linux, macOS, Unix и Microsoft Windows. Начиная с Tcl/Tk 8 графический интерфейс имеет «родной» для ОС вид, то есть графические элементы будут выглядеть так же, как и стандартные для данной ОС".
не будут
поддержки скейлинга нет
так что вырвиглазно
Масштабирования чего нет?http://tcl.tk/man/tcl9.0/TkCmd/tk.html#M11
>tk scalingВот этого нет?
"самостоятельной кросплатформенной универасльной библиотекой" уже претендуют WPF/MAUI + ещё разной степени гиковости тулкиты.
Если оно не может исполнять то, что уже работает, то это не новая версия, а другой диалект.
Где эти ретроязыки используют? Что на нём пишут, для чего его можно взять себе?
Всё так лайтово/красиво написано в описании, и что он дает это новый/старый/обновленный язык текущим поколениям средних или вовсе молодых по возрасту специалистов??
Какая польза от него, кроме того что на нём что-то можно делать, при этом не говорить своему работодателю на чем это сделано? Странные подходы к выполнению своей работы.
Суть этого языка программирования? Полезность и применить как его и как на нём научиться программировать то? А как на нём веб-программирование осуществлять? Никакого сообщества русскоязычного нет, а если есть, то подскажите где искать? Вот надо инструменты для оф бизнеса сделать, которыми решать практические задачки, и инструменты эти веб-интерфейсы могли бы использовать, и как на этом тик/ток, тикль-токе извиняюсь, забацать что-то внятное и быстро?