LINUX.ORG.RU

Tcl/Tk 8.5


0

0

Сегодня, 20.12.2007 года, вышел первый официальный выпуск Tcl/Tk 8.5 - языка, интерпретатора, и сопутствующей библиотеки виджетов. Среди изменений по сравнению с версией 8.4 - улучшение производительности интерпретатора, нативная поддержка вычислений с произвольной точностью и добавление новой структуры данных dict; что касается библиотеки Tk, то здесь отмечается нативная поддержка стилей виджетов (проект Tile был внесён в ядро Tk), улучшения в рендеринге шрифтов и отрисовке текстовых виджетов, плюс множество частных улучшений (поддержка прозрачности, улучшения внешнего вида, улучшения в механизмах размещения виджетов)

почитать : http://tcl.tk/software/tcltk/8.5.html

скачать : http://tcl.tk/software/tcltk/download...

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

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

> tcl - очень простой язык

не надо путать "примитивный" и "простой" особенно, в смысле "простой в использовании". приходится вникать в "особенности", а это, принимая во внимание, что сталкиваться с ним приходится все реже и реже, длиннннный жииииирный минус. только одна установка зависимостей expect на солярке (не к ночи будет упомянута) потребовала пару нелестных слов в адрес ссаныча и ко :)

anonymous
()

+ Tcl один из самых простых языков из всего того зоопарка что я встречал.
+ tile и antialiasing вещи которые надо было добавить только для того хотя бы чтобы поколение фастфуда не хныкало (извините что так категорично - я считаю ресурсы ушедшие на это можно было бы на более серьезные вещи направить из того чего не хватает).
+ Tcl всё еще популярен в среде где если решение проверено годами и платформами то ему кредит доверия выдают по максимуму - используется и Sun и Cisco и Boeing и NASA и вояками. Так что не спешите хоронить - он еще всех нас переживет.

:) ttk - как бы вы не относились ко второму тулкиту в ядре всё равно в связи с тем что опыт прикручивания tk есть у тучи языков которым было "слабо" залудить свои родные тулкиты, то все языки сейчас делают три раза КУ и идут прикручивать ttk

- комьюнити реально мал и не организован
- библиотек порой нехватает или они недопилены/заброшены

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

упс.. моя tcl знать лучше чем русского - за ошипки сильно не пилите :)

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

> только одна установка зависимостей expect на солярке (не к ночи будет упомянута) потребовала пару нелестных слов в адрес ссаныча и ко :)

Это не проблема tcl, это проблема сантехников, не реализовавши нормальный пакетный менеджер.

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

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

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

>>он еще всех нас переживет.

Ой, нам и Кобола хватает, не надо нам второго такого зомби, который пережил всех, включая себя самого.

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

> поиск дурацких ошибок в тикле (типа, неправильно закрытой скобки или, как здесь, пропущенного пробела) в итоге может оказаться разнузданной и продолжительной оргией.

Всё приходит с опытом.

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

> Tcl всё еще популярен в среде где если решение проверено годами и платформами то ему кредит доверия выдают по максимуму - используется и Sun и Cisco и Boeing и NASA и вояками. Так что не спешите хоронить - он еще всех нас переживет.

Просто потому что всё работает и ничего переписывать не надо. Да и сложно переписать приложение на всепозволяющем тикле на узкий c++ или что-то иное.

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

>поиск дурацких ошибок в тикле (типа, неправильно закрытой скобки или, как здесь, пропущенного пробела) в итоге может оказаться разнузданной и продолжительной оргией.

Может, стоит пользоваться нормальным редактором? А перед этим прочитать нормальную книгу?

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

И какой редактор ты считаешь нормальным? Кто из них даст вразумительные указания на ошибки в этом коде:

proc test { {gfhfhf 1)}{ set z [list 12 3 4) }

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

И какой редактор ты считаешь нормальным? Кто из них даст вразумительные указания на ошибки в этом коде:

proc test { {gfhfhf 1)}{ set z [list 12 3 4) }

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

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

proc test { {gfhfhf 1) } { set z [list 12 3 4) }

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

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


proc test { {gfhfhf 1) } 
		{ 
			set z [list 12 3 4)
		}

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

Нет слов млин...
Плохому танцору скобки мешают...
1й класс, вторая четверть...
Мне бы ваши проблемы...

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

Да кста - был на эмоциях забыл в редактор ткнуть который горе писарю красным такой код подчеркнет и покажет - Komodo Edit

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

Проблема то не в скобках. А что такие ошибки в tcl принципиально не ловятся. Потому что "всё есть строка".

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

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

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

А как? Интерпретатор выпадет и выдаст сообщение, которое к действительности никакого отношения не имеет.

А под "принципиально" подразумевалось, что наличие одного единственного типа данных мало способствует отлавливанию ошибок. Разве только сидеть и, уставившись в экран, медитировать над кодом.

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

Эх кому-бы намекнуть что User line break на ЛОРе должен стоять по дефолту при ответе на реплику..
Или это мне одному так кажется?

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

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

Ну и как то о чем вы написали не мешает Komodo парсеру такие случаи показывать (более того любой вменяемый современный редактор ставит вторую скобку автоматом за первой или по крайней мере умеет подсветить парную и нескладуху сразу заметишь)

Мне кажется мы углубились в проблему невыеденного яйца..?

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

тьфу - бес попутал - "..выеденного яйца не стоящую"
was in hurry так ск-ть

anonymous
()

Читал комменты и веселился :-) За 2007 год все свои проекты на тикль перевел (это под debian, windows всех версий, winmobile всех версий) и всем доволен. А любопытным две задачи на два десятка строк кода каждая для виндового десктопа (xp,2003,vista):

1. получить файл с КПК под винмобайл и передать через http на сервер. 2. получить файл с веб-камеры и передать через http на сервер.

В обоих случаях полагать, что компилятора под рукой нет, есть виртуалка с чистой виндой и установленным активсинком версии от 4.1 до 4.5 (должно работать под любым) и установленными дровами для камеры. Более ничего на виртуалке не ставится, готовое приложение должно представлять собой один бинарь, для которого доступа на запись к диску десктопа нет.

Насчет серверного использования говорить не буду, поскольку aolserver + postgresql + pltcl сами за себя все скажут (см. openacs, к примеру).

P.S. Винду юзал последний раз лет 5 назад, тем не менее, поставил виртуалку и спокойно написал на тикле, что требовалось (интерфейс пользователя писал под дебианом, а вот работа с камерой и активсинком потребовала виртуалку).

P.P.S. Приведу три строчки, с которыми задача 1 решается тривиально:

set rapi_dll [file join $env(SystemRoot) system32 rapi.dll] ::ffidl::callout CeRapiInitEx {pointer-byte} uint32 [::ffidl::symbol $rapi_dll CeRapiInitEx] ::ffidl::callout CeReadFile {uint32 pointer-byte uint32 pointer-byte pointer} int [::ffidl::symbol $rapi_dll CeReadFile]

Далее очевидно - с помощью CeCreateFile из библиотеки RAPI.dll читаем файл с КПК и отправляем куда надо. Заметим, что приведенный код равноценно работает с _разными_ версиями активсинка.

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

>>::ffidl::callout CeRapiInitEx

Да, штука интересная, но у меня на Линуксе оно не собирается. После прочтения документации возникают сомнения, что его вообще на Линуксе тестировали.

Полез за большим драчевым напильником...

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

Пару месяцев назад я собирал ffidl под дебианом. Собирается, тесты проходят. Только особо смысла нет - и так все исходники есть. Вот под офтопик полезная вещь.

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

> получить файл с КПК под винмобайл... aolserver

шел бы ты со своими проблемами сам знаешь куда

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

>>И второй - blt собирается с новым tk (в частности, с новым шрифтовым движком)?

Не собирается. Ошибка в несовпадающих типах для Tcl_FindNamespace и подобное. Похоже разработчики tcl решили не рубить хвост по частям, а сразу убиться апстену. BLT одно из самых интересных расширений, которым широко пользуются. Вообщем-то без него весь интерес к дальнейшему использованию tcl/tk у меня пропал (думаю, не у меня одного).

Неприятный сегфолт на freetype. В папке .fonts у меня лежал некорректный ttf. wish падает при попытке открыть его. После удаления всё заработало. Но выяснилось это только после strace.

Одним словом для tcl как extendable и embeddable языка такие изменения api - непозволительная роскошь.

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

Ладно, с конфликтом разобрались (просто двойное объявление, раньше эти 
функции считались private и не выносились в публичные хедеры - так что 
проблема решается простым закомменчиванием). Так что BLT собирается 
кое - где даже работает, только есть уже пара багов с поворотом 
надписей (как например название y-axis), что приводит к ошибке Х и 
падению приложения.


По ходу стали открываться другие милые сюрпризы заботливо 
приготовленные разработчиками Tcl. Типа: 

man n global
...
       varname is always treated as the name of a variable, not an array  ele-
       ment.   An  error  is returned if the name looks like an array element,
       such as a(b).


Я уже знаю один проект (CMPR&LOGIC) где на этом месте возникает 
ошибка. Что-ж этот проект автор пока поддерживате, так что думаю что 
он поправит эту ошибку. Только что он будет делать с BLT (которое там
 тоже используется)?

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

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