LINUX.ORG.RU

Языку Tcl (Тикль) исполнилось 30 лет

 , ,


4

4

Динамический язык программирования Tcl (Tool Command Language) празднует своё тридцатилетие. В январе 1989 года был опубликован первый экспериментальный выпуск языка Tcl, предложенный для тестирования сторонним разработчикам. Tcl представляет собой динамический язык программирования, распространяемый совместно с кроссплатформенной библиотекой базовых элементов графического интерфейса Tk. Несмотря на то, что основное распространение Tcl получил для создания интерфейсов пользователя и как встраиваемый язык, Tcl также подходит для других задач, таких как web-разработка, создание сетевых приложений, администрирование систем и тестирование.

Как написал один из пользователей почему он в него такой влюбленный:

  • вики, где есть даже игрушки (там можно подсмотреть интересное :)
  • шпаргалки
  • а ещё — это просто красиво и красиво

    От себя добавлю - со связкой tcl/tk знаком 20 лет (тоже Юбилей) и с удовольствием на ней пишу. Последнее что недавно написал это удостоверяющий центр CAFL63

    Спасибо создателю этого замечательного языка Tcl/Tk!

>>> Подробности



Проверено: Shaman007 ()

Ответ на: комментарий от rust_afari

раст моложе и перспективнее

Разве что для крематория он перспективен.

Quasar ★★★★★ ()
Ответ на: комментарий от Linfan

у тикля отличная интеграция в макоси, приемлемая в венде и полный ахтунг в линуксе.

Нет нигде у тикля специфической интеграции. На маке и венде он выглядит так, как единственно возможный визуальный дизайн у стандартного приложения. На линуксе он выглядит как Motif. И то тему можно сменить на другую, получив другой внешний вид.

Quasar ★★★★★ ()
Ответ на: комментарий от Croco

Тип в командно-скриптовых языках существует только один: строка

Ты сильно отстал от жизни.

А в Тикле спецформ нет

по общим единым правилам

Те же яйца, вид сбоку.

no-such-file ★★★★★ ()
Ответ на: комментарий от Croco

Tcl, собака, красив, вот прямо никуда не денешься. Изящно придумано.

Есть такое понятие - эстетика уродства.

И некоторое количество людей имеют такое мировоззрение.

anonymous ()
Ответ на: комментарий от anonymous

Все эти «универсальные» веб-поделия на электронах довольно убогие и тормозные. Годятся только на то, чтобы человек с навыками веб-дизайнера быстренько сляпал несложный GUI, и не более.

vscode - весь насквозь скриптовый. Вторая реинкарнация emacs'а.

anonymous ()
Ответ на: комментарий от Vudod

Пишешь прогу на tkinter, она в винде выглядит вполне сносно, а в Линуксе — жуть полная.

Попробуй использовать Tile.

Quasar ★★★★★ ()

это просто красиво и красиво

серьезно?

Куча операторов в ряд, это ж потом по своему же коду ориентироваться глаза устанут и куча времени просто на поиск уйдет, а без подсветки синтаксиса - вообще хоть вешайся..

По настоящему просто и красиво это языки с Си-подобным или Паскалеподбным многословным синтаксисом - действительно просто и действительно красиво.

bonta ★★ ()
Последнее исправление: bonta (всего исправлений: 2)
Ответ на: комментарий от Linfan

Ну объясните, как получить нормальные (а не леденящие душу) системные диалоги, как нормализовать шрифты и цветовое оформление (вырвиглазие топикстартера - антипример). Программное меню - это ваще трешак на линуксе, кототрый рихтуется только полной переимплементацией и больше никак.

https://wiki.tcl-lang.org/page/List of ttk Themes

Quasar ★★★★★ ()
Ответ на: комментарий от Linfan

У тикля на маке виджеты отрисовывались карбоном.

У Tcl/Tk везде одним и тем же движком виджеты рисуются. Этому движку можно указать использовать конкретные темы. На маке по умолчанию используется тема, которая пользуется возможностями родного GUI, как и на венде.

Quasar ★★★★★ ()
Ответ на: комментарий от anonymous

tk же для прототипирования только?

Для прототипирования много чего подходит. Tk же и для продакшна. Это превосходный инструмент.

Быстро накидал интерфейс, быстро переделал, если что.

Удобно для разработки.

Виджетов там кот наплакал

Для большинства задач достаточно.

да и отрисовка стрёмная (привет, 80-е).

Отрисовка отличная. И не 80-е, а 90-е.

С трудом верю, что на нём пишут что-то серьёзное, да ещё и в продакшн.

Пишут и пользуются. Тулкит серьёзный.

Quasar ★★★★★ ()
Ответ на: комментарий от bonta

Куча операторов в ряд, это ж потом по своему же коду ориентироваться глаза устанут и куча времени просто на поиск уйдет, а без подсветки синтаксиса - вообще хоть вешайся..

Если руки не из жопы, то всё нормально. Если из жопы, то не поможет даже python.

Quasar ★★★★★ ()
Ответ на: комментарий от Quasar

Разве что для крематория он перспективен.

в крематории тоже важна надежность, как и в роддоме, поэтому да, раст там перспективен

rust_afari ()

Ура!

долгих лет!

anonymous ()

Для небольших программ с простым GUI Tcl/Tk весьма неплох.

gorky ()
Ответ на: комментарий от gorky

Для небольших программ с простым GUI Tcl/Tk весьма неплох.

Нормальную работу буфера когда сделают.

anonymous ()
Ответ на: комментарий от anonymous

Нормальную работу буфера когда сделают.

Уже сделано.

anonymous ()
Ответ на: комментарий от slovazap

есть вполне объективные свойства

Которые можно оценивать по разным критериям.

saahriktu ★★★★★ ()
Ответ на: комментарий от anonymous

Уже сделано.

Почему тогда gitk не работает, да и во всех tk-поделках?

anonymous ()
Ответ на: комментарий от anonymous

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

Fixed.

Odalist ★★★★★ ()

Запуск вас абсолютно не к чеме не обяжет.

Ой, а эти скриншоты от разработчиков? На картинке статическая OpenSSL указана в /tmp — это сразу отбивает даже пробовать запускать, если это нарисовали разработчики.

vodz ★★★★★ ()

Три страницы обсуждений и никто не вспомнил, что Тикль --- это Лисп для малаграматных. :-(

ugoday ★★★★★ ()
Ответ на: комментарий от Quasar

хех так питон как раз один из ярких представителей «понятного» синтаксиса :D

bonta ★★ ()
Ответ на: комментарий от ugoday

Малаграматные (это те (у кого заело скобки (а тикль (человеческий езык))))

anonymous ()
Ответ на: комментарий от lenin386

Да когда были такие мониторы, Линукса не было. Samsung Sync Master 3ne, 1994-й год.

Мимо тазика.
Tk - первый релиз 91 год
SLS, первый дистр с Xfree - 92-94.
Slackware 1.0 - 93 год

scott_tiger ★★★ ()
Ответ на: комментарий от anonymous

Tcl, собака, красив, вот прямо никуда не денешься. Изящно придумано.

Есть такое понятие - эстетика уродства.

Есть такие люди - неосиляторы-хейтеры, для которых всё уродство, в чём они не разобрались или что им не понравилось. Короче уроды без логики и воображения.. ))

yyk ★★★★★ ()

на хабре пользователя «Орлов Владимир Николаевич @saipr» устал читать, так еще здесь со своей неприкрытой рекламой лисси софта и адовыми цветами GUI в каждом посте

можно было хотя бы пост про тактикль сделать без рекламы на скриншоте ?

AHAH ()

Хорошая штука, сам пользуюсь tk. Намного быстрее, чем gtk3 и прочие.

Deleted ()

Никогда с ним не сталкивался, только видел проприетарные эмуляторы железа Motorola, которые работали на этих скриптах.

Много я потерял?

EXL ★★★★★ ()
Ответ на: комментарий от yyk

Короче уроды без логики и воображения.. ))

Красота - предельна. Уродство - неожиданно.

Ты подтвердил, что для того, что бы что-то считать красивым надо воображение.

Это тебя полностью характеризует.

anonymous ()
Ответ на: комментарий от Quasar

Нет нигде у тикля специфической интеграции.

Пардон, но вы таки не понимаете смысла интеграции. На макоси контролы тикля отрисовывает макосевский карбон - ровно так, как это задал Эппл. В результате аппликуха выглядит родной для макоси.

На никсах тикль вырисовывает свой интерфейс самостоятельно, используя команды Xlib (нарисовать прямоугольник/линию/эллипс и т.п.), используя свою собственную цветовую палитру, шрифтовое оформление и т.п. И даже в случае тем, это все-равно самопальное рисование, а не интеграция в десктоп.

Linfan ★★★★★ ()
Ответ на: комментарий от Quasar

https://wiki.tcl-lang.org/page/List of ttk Themes

Спасибо, я с Tile (тикль 8.4) и возможностями темезационного движка (тикль >=8.5) ознакомился гораздо раньше вас, т.к. мой проект их активно юзал в 2007-2010м годах.

Linfan ★★★★★ ()
Ответ на: комментарий от Quasar

У Tcl/Tk везде одним и тем же движком виджеты рисуются.

Не занимайтесь инсинуациями и фантазиями, а посмотрите сорцы.

Linfan ★★★★★ ()
Ответ на: комментарий от Quasar

На маке по умолчанию используется тема, которая пользуется возможностями родного GUI, как и на венде.

К сожалению. вы несете чушь, никак не соответствющую реальности. Во-первых, виджеты у тикля неоднородны - классические tk-виджеты не могут быть изменены темой. Они на линуксе отрисовываются самим тиклем, а на маке натягивается их изображение карбоном. Темезации подвержены новые ttk-виджеты, которые появились после интеграции Tile в тикль в версии 8.5 Они на всех платформах рисуются заданными в теме битмапами и системный L&F им пофиг.

Отдельной ипостасью стоят ttk-темы, которые генерят L&F с помощью системных библиотек. Но фишка в том, что такую тему можно прикрутить к тиклю только с помощью перекомпиляции тикля. Учитывая монопоточность тиклевого гуя, применимость его - формочки стиля «два батона, три чекбокса».

Linfan ★★★★★ ()
Ответ на: комментарий от anonymous

Почему тогда gitk не работает, да и во всех tk-поделках?

У меня работает. Проверь, например, в браузере ­— скопируй что-нибудь, потом закрой все окна браузера (проверь, что браузера в памяти не осталось) и попробуй вставить куда-нибудь. Работает?

Если и в браузере не работает, то дело не в tk, чини свой clipboard manager.

anonymous ()
Ответ на: комментарий от no-such-file

Ты сильно отстал от жизни.

(заинтересованно) а это ты о каком из моих отставаний?

Те же яйца, вид сбоку.

Фигассе те же яйца, там базовый интерпретатор вынужден знать все спецформы (и что в каком порядке в них делать), а здесь железобетонная последовательность «подставили что надо куда надо по единым правилам, разделили на слова, первое слово — имя команды, остальные слова — её аргументы, вызвали реализацию команды, передав ей массив строк-аргументов, и нам (интерпретатору то есть) пофигу, что она там дальше будет делать». Офигеть просто какой вид сбоку.

Croco ★★ ()
Ответ на: комментарий от lenin386

Да, и что.

С точки зрения количества места на экране под окошки и 4K планшет с dpi = 200-250 и моник 800x600 с dpi=72 примерно одно и тоже. Однако тогда как-то не переживали за рамки у окон. Тогда панель задач убирали, чтобы освободить чуток пикселей по вертикали.

Хотя и действительно экономия без рамок, не спорю.

praseodim ★★★★ ()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от Croco

базовый интерпретатор вынужден знать все спецформы

Нет. Т.е. для оптимизации он конечно может делать что-то особенное, но это не обязательно.

а здесь железобетонная последовательность

В лиспе точно такая же последовательность. Разница только в подстановке, т.е. нужно ли вычислять аргументы в лиспе определяется свойством символа, а в tcl каждый раз указывается явно в виде скобочек. Причём в лиспе тоже можно указывать явно.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Нет. Т.е. для оптимизации

Э, батенька, да это не Tcl виноват, это вот лично ты Лиспа не знаешь. NB: если что, у меня есть своя реализация Лиспа, так что я знаю, что говорю.

В лиспе точно такая же последовательность.

В Лиспе последовательность совершенно не такая, она вот такая: (при вычислении формы) посмотреть на первый элемент формы, если с ним связана простая функция, то: (1) вычислить все аргументы (2) сменить контекст на связанный с функцией (ибо она есть замыкание), (3) применить тело функции к аргументам.

Спецформы при этом вычисляются совершенно не так, и, заметим, нельзя даже сказать, как: большинство не переключает контекст, некоторые переключают, некоторые (как LET и компания) вообще свой создают. Вопрос «вычислять или не вычислять аргументы» для спецформы вообще не стоит, поскольку не вполне понятно, что является для спецформы аргументом (привет COND'у). Часто это определяется в рантайме.

И самое главное: начинающие обычно уверены, что если бы интерпретатор не вычислял аргументы для функций, то они бы могли это проделать сами уже внутри функции (в её теле). Так вот хрена лысого, функция не имеет доступа к контексту вызывающего, так что вычислить свои собственные аргументы, разумеется, не может. А ещё функция понятия не имеет, вызвали её обычным путём или из какого-нибудь функционала вроде MAPCAR или просто FUNCALL/APPLY — а в этих случаях аргументы тоже уже давно «просто есть», вычисления никакого не требуют.

Про «свойство символа» это вообще не в кассу, есть такое понятие, как symbol properties, оно совершенно из другой оперы.

Croco ★★ ()
Ответ на: комментарий от anonymous

Хипстота от нового фортрана не отошла ещё, так по ней тиклем стукнули. Жестоко это как-то.

anonymous ()
Ответ на: комментарий от saahriktu

Ещё бы! Видишь как седалища «прогрессоров» питонятножовоскриптных полыхают.

anonymous ()
Ответ на: комментарий от WitcherGeralt

Это ты про питон? Так он не рулил никогда, хоть жидкий хоть твёрдый, всё равно от него никакой пользы кроме вреда.

Сервера на червьось по-прежнему по крону обновляешь?

anonymous ()
Ответ на: комментарий от anonymous

К чему ты про питон вообще? Я на этом говне пишу не от большой любви и никому его не предлагаю, но оно всяко лучше тентакля.

червьось

Втф?

WitcherGeralt ★★ ()
Ответ на: комментарий от Croco

Всегда знал, что Лисп — хрень полная и при необходимости использовал OCaml.

Vudod ★★★★★ ()
Ответ на: комментарий от Linfan

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

Темой изменяется внешний вид кнопок, переключателей и т.д.

Quasar ★★★★★ ()
Ответ на: комментарий от WitcherGeralt

К чему ты про питон вообще?

Да, питону далеко до Тикля!

pki_gost ()
Ответ на: комментарий от Spoofing

Ностальжи.. Помню своего бота, карта ботсети, вот это вот всё...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

http://ourbot.net/ у нас до сих пор такое есть :)

помню как я был самый модный парень на деревне, завёл mIRC бота в EggDrop ботнет, благо протокол открытый, но из-за сложности понимания сорцов (незнания языка и вообще чужой код), по-сути я реверсинжирил протокол)) http://hawkee.com/snippet/7706/

у их ботнета фишка была, что боты общаются между собой внутри ботнета, типа на одном канале в сети запросили !seen, а тебе из другой сети отвечает бот в канал что видел чувака где-то там. так вот, все использовали дефолтный seen.mod и никто не шевелился чтобы сделать лучше. а у меня же всё своё! на мирке! сам писал!

и у меня бот отвечал что-то вроде «юзернейм сейчас в сети на каналах @#blablabla», и все такие спрашивают удивлённо типа откуда скрипт такой, где скачать. и им же приходится объяснять что это вовсе не eggdrop бот в ботнете, и тогда они удивляются ещё больше. :D в общем прикольно было. да.

вообще говоря за mIRC, в школьные годы это мой первый ЯП, писал на нём собственные реализации протоколов (клиент/сервер) http, ftp, irc, bittorrent, и многое-многое другое, очень сильно продвинулся в низкоуровневных вещах. типа понимании как всё на самом деле изнутри работает.

например, чтобы узнать размеры jpeg картинки, любой адекватный кодер возьмёт либу под это дело.. а что если таких либ в языке нету :D писал сам!

  if ($prop == dimensions) {
    if ($sock($1).rcvd > $calc(32 * 1024)) || ($bvar($+(&,$1),$calc($sock($1).rcvd - 1),2) == 255 217) {
      while ($bfind($+(&,$1),%offset,255)) {
        var %offset = $v1 + 1
        if ($bvar($+(&,$1),%offset,1) isnum 192-195) var %dimensions = %offset
      }
    }
    return %dimensions
  }
  if ($prop == width) return $base($+($base($bvar($+(&,$1),$calc($2 + 6),1),10,16,2),$base($bvar($+(&,$1),$calc($2 + 7),1),10,16,2)),16,10)
  if ($prop == height) return $base($+($base($bvar($+(&,$1),$calc($2 + 4),1),10,16,2),$base($bvar($+(&,$1),$calc($2 + 5),1),10,16,2)),16,10)

по-байтово ищет заголовки jpeg, и возвращает ширину/высоту картинки. ASCII значения переводит в 16-ти ричную форму, а затем их складывает (строки «FF» + «FF») и переводит обратно в 10-чную, и получаем ширину или высоту. отсюда у меня много всяких деформаций, что типа знаю наизусть ASCII таблицу символов. :D

много чо писал) http://hawkee.com/profile/61425/

Spoofing ★★★★★ ()
Ответ на: комментарий от Vudod

Лисп — хрень полная

Ну, такая точка зрения тоже имеет право на существование, хоть я её и не разделяю...

использовал OCaml.

... но ежели с OCaml сравнивать, то вышеупомянутая точка зрения начинает выглядеть несколько странно :-D

Croco ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.