LINUX.ORG.RU

Выпуск Tcl/Tk 9.0

 , ,

Выпуск Tcl/Tk 9.0

4

4

Привет, ЛОР!

Спустя 27 лет после версии 8.0 наконец вышла новая версия некогда популярного языка программирования Tcl и развиваемой вместе с ним библиотеки для создания пользовательских интерфейсов Tk.

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

В новом выпуске содержатся несовместимые изменения с версиями 8.x, поэтому было решено увеличить ведущий номер версии:

  • При вычислении имён теперь используется только текущее пространство имён (namespace), а не глобальное;
  • Проблемы кодирования в функциях ввода-вывода теперь по умолчанию выбрасывают ошибку;
  • Тильда (~) в путях к файлам больше не указывает на домашнюю директорию пользователя;
  • Переменная tcl_precision больше не влияет на форматирование чисел.

Также среди изменений:

  • Добавлена поддержка переменных размером больше 2 гигабайт;
  • Улучшена работа Unicode;
  • Поддержка доступа к содержимому ZIP-файлов как к файловой системе;
  • Мультиплексинг IO теперь поддерживает epoll (в Linux) и kqueue (в BSD). Поддержка select сохранена.

В Tk 9.0 среди прочего были добавлены поддержка доступа к инструментам ОС, таким как трей, уведомления и печать документов, поддержка формата SVG, полный доступ к информации о графических файлах (метаданные и т.д.), поддержка жестов экрана и тачскрина.

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

★★★★★

Проверено: dataman ()
Последнее исправление: dataman (всего исправлений: 3)
Ответ на: комментарий от Shadow

Простите, а как у вас гуй на python вообще тормозит? У него же весь гуй - биндинги к c или c++!

Значит, тормозит питонячья логика за гуем.

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

В былые времена приходилось 3-4 версии autotools держать, чтобы программы собирать…

Брехать только зачем? Для сборки программы autotools вообще не нужен. autotools нужен, чтобы подготовить дитротарболл.

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

Или вы залочили логику с гуем в одном потоке.

А я-то тут причем? Я пользователь на правах домохозяйки. Но постараюсь запомнить на всякий случай.

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

А этих тиклей по-прежнему надо устанавливать стопицот версий одновременно?

Никогда не нужно было. Там за обратной совместимостью контроль получше чем у Python.

Gentooshnik ★★★★★
()

Спустя 27 лет после версии 8.0 наконец вышла новая версия
27 лет

вот это круто! вот это я пони-маю, штабильность! всяким шыштемдэ и прочим жырнофоксам есть о чем задуматься!
(и вот не надо тут про less. less - это другое!)
опять же, тот же Дебиан (который, якобы, говно мамонта и оплот штабильности) задолбал постоянно новые релизы выпускать и каждый раз трахать мозг при обновлении - дескать, там кодовое имя релиза изменилось, а у тебя "testing" в sources.lst! блин, да мне срать, какой там релиз вы опять выпустили, поэтому и написано "testing" - как бы троллинг-релиз такой колхозный, но нет((
а вот 27 лет - это хорошо, это мне нравится! раз в 27 лет можно даже и подправить какую-нибудь фигню при обновлении)))

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

Если программа без configure, то очень даже нужно.

Shadow ★★★★★
()

Нужно, хорошая штука. Использую. Быстро работает, возможностей вполне хватает. Gui на python получается очень быстрый, таблички на 100+ тыс записей переваривает без заметных тормозов, правда сьедает ощутимо оперативки. С python идет из коробки, много места не занимает. Работает везде. Альтернативы типа Qt, wxWidgets по сравнению с ним весьма тяжелые и нужно повозится с установкой. Из минусов много вещей приходится делать руками, но большая часть задач реализуется относительно просто.

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

Может ли оно собирать GUI по XML и есть ли к нему редактор форм? Оказалось, что есть. SpecTcl

Но tcl/tk – тот редкий случай, когда описать формочку на самом tcl быстрее и удобнее, чем накидать её через редактор форм, и код получится лаконичнее любого xml представления.

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

Двадцатилетия

Первой половины 21 века. Вряд ли следующий релиз будет раньше 50-х годов.

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

вот это я пони-маю, штабильность!

Более того написанное более 20 лет назад для Win XP до сих пор запускается и работает на современном Linux. Никакому питону такое и не снилось.

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

«Здесь» - это где? Среди ЛОРовцев? Уже был опрос на эту тему. Лично я предпочитаю командную строку. А вот как люди путаются в том, что делают, и именно из-за того, что пользуются недогуями, и немножечко консольными командами, не вполне понимая, что именно все эти команды и гуи делают - наблюдал буквально вчера.

seiken ★★★★★
()

Пока в tk не завезут поддержку масштабирования - нинужно. Пользоваться гуи на нем в 2024 больно глазам.

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

Гуи создали, чтобы программа могла показать доступные опции пользователю визуально и принять команды пользователя через действия маниуплятора (в т.ч. типа «мышь»).

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

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

Брехать только зачем? Для сборки программы autotools вообще не нужен. autotools нужен, чтобы подготовить дитротарболл.

Это актуально только когда ты скачиваешь релизный тарбол откуда-то, куда configure уже положили. Проблема в том, что последние лет 10 никто почти релизных тарболов не делает. Просто создаётся тег в гите и ты качаешь нужный коммит. А в репозитарий высеры автоконфа добавляют только полоумные.

Автолулзы должны сдохнуть. Большая часть проверок, которые делает типичный configure, нахрен не всрались.

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

Пока в tk не завезут поддержку масштабирования - нинужно. Пользоваться гуи на нем в 2024 больно глазам

отчего-то пользуюсь scaled темами в Tk

MKuznetsov ★★★★★
()

Хорошая новость. Надо её запомнить. Потому как до Tcl 10.0 не факт, что и доживёшь.

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

блин, да мне срать, какой там релиз вы опять выпустили, поэтому и написано «testing» - как бы троллинг-релиз такой колхозный, но нет((

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

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

Может ли оно собирать GUI по XML и есть ли к нему редактор форм?

Визуальный редактор какой-то есть, а составлять формы кодом на Tcl удобнее чем на большинстве заточенных под это языков разметок. Так что если думал писать XML руками - лучше пиши на Tcl.

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

Есть такой вид людей, у которых Питон вообще всегда тормозит.

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

Тогда можно сделать вывод о том, что разработчикам Tk масштабирование не нужно. Некоторые элементы интерфейса не обращают никакого внимания на tk scaling, увы. И Ttk не спасает, например, с отрисовкой меню.

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

скорее на R (а даже на S ) - и даже может быть на К (али J ) -

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

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

Хрен знает. Возможно, осторожный стиль описателей пакетов — с вот таким конкретным работает, а со следующим хз. Разные дистрописатели попадаются. Но в Tcl особых метаний не припомню. Хотя да, то, что сейчас пишется как {*}, сначала писалось как-то по-другому. Но это, как по мне, в приколы любой версионной штуки.

fat-II
()
Ответ на: комментарий от qulinxao3

А вот пейджера у меня никогда не было. :)

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

Там за обратной совместимостью контроль получше чем у Python

А это что? Прямо в тексте новости:

В новом выпуске содержатся несовместимые изменения с версиями 8.x, поэтому было решено увеличить ведущий номер версии:

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

К их чести, здесь поломка совместимости довольно минимальна.

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

Там за обратной совместимостью контроль получше чем у Python

А это что? Прямо в тексте новости:

А, т.е. между Python 2.x и Python 3.x несовместимых изменений нет? Это ж мажорнота.

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

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

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

Между Cobol и Java есть огромная разница: жабу активно развивают, добавляя в неё новые плюшки, и для неё есть вагон тулинга. А для кобола нет вообще нихрена.

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

O! Баночные программисты по Пелевину из Transhumanism Inc... :)

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

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

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

Когда книг пара сотен... Что-то отдал букинистам, что-то увез на дачу, что-то отнес в библиотеку в офис с мыслью их там и оставить, что-то просто выкинул. Оставил самое ценное, что точно буду перечитывать.

gns ★★★★★
()

А оно ещё живо? В смысле на нём кто-то пилит свежие проекты, а не только старьё поддерживает?

Сам язык и библиотека под какой-то своей бздеобразной лицензией, поэтому если сдохнет то совершенно не жалко.

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

Был visualtcl, жив или нет не знаю. Но ни разу не требовалось, в tcl/tk все просто и лаконично.

Вот калькулятор, к примеру:

wm title . "Tcl/TK calc"
pack [frame .frm] -expand true -fill both
grid columnconfigure .frm 0 -weight 1
grid rowconfigure .frm 0 -weight 1

entry .frm.ent
grid .frm.ent -row 0 -columnspan 5  -sticky nswe -padx 5 -pady 5

proc Calculate {ent txt} {
    if [regexp -nocase -all -- {([0-9]+)(\+|\*|\/|-)([0-9]+)} $txt match v1 v2 v3] {
        $ent delete 0 end
        $ent insert end [expr double($v1) $v2 double($v3)]
    }
}

set col 0
set row 1
foreach item {1 2 3 4 5 6 7 8 9 0 + - * /} {
    button .frm.btn_$item -text "$item" -command [list .frm.ent insert end $item]
    grid .frm.btn_$item -row $row -column $col -sticky nswe -padx 5 -pady 5
    incr col
    if {[expr fmod($col, 5)] eq "0.0"} {
        incr row
        set col 0
    }
}
button .frm.btn_calc -text "=" -command {
    Calculate .frm.ent [.frm.ent get]
}
grid .frm.btn_calc -row 3 -column 4 -sticky nsw -padx 5 -pady 5
svk28
()
Ответ на: комментарий от hateyoufeel

У Xilinx вся инфраструктура для билда FPGA на tcl. И да, реально, сначала жутко кажется избыточно, а потом как понимаешь, какие возможности это открывает…мммм… Я лично под FPGA не пишу, делаю работу под ARM ядра на UltraScale+, но заскриптовал загрузку кода и отвязался от разработки в Eclipse, сохранив возможность отладки на удалённой платформе.

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

Когда над тобой нависает жена с вопросом: «Когда же ты уберешь из кладовки эти шесть коробок книг?» и уже грозится принести скалку и сковородку, то как-то на первый план выходит скорость решения вопроса :)

gns ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.