URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 87860
[ Назад ]

Исходное сообщение
"Релиз Tcl/Tk 8.6.0"

Отправлено opennews , 20-Дек-12 23:18 
После пяти лет разработки увидел свет (http://www.tcl.tk/software/tcltk/8.6.html) релиз новой ветки Tcl/Tk 8.6.0 (http://www.tcl.tk), динамического языка программирования Tcl, распространяемого совместно с кроссплатформенной библиотекой базовых элементов графического интерфейса Tk. Несмотря на то, что основное распространение Tcl получил для создания интерфейсов пользователя и как встраиваемый язык, Tcl также прекрасно подходит для других задач, таких как web-разработка, создание сетевых приложений, решение задач по администрированию систем и тестированию.


Основные новшества (http://wiki.tcl.tk/21276) Tcl 8.6:

-  В базовую поставку включены две реализации расширений для объектно-ориентированной разработки:


-  TclOO (http://wiki.tcl.tk/18152) - написанная на языке Си встраиваемая в Tcl система объектно-ориентированного программирования, полностью динамическая (может использоваться для создания иных объектных расширений), основанная на использовании классов и поддерживающая такие расширенные возможности, как мета-классы, фильтры и примеси (http://ru.wikipedia.org/wiki/%D0%9F%D1%8....

-  Itcl 4 (incr Tcl) - построенный с использованием TclOO пакет, предоставляющий (http://wiki.tcl.tk/37253)  некоторые элементы традиционного объектно-ориентированного программирования (в стиле C++);

-  Переход на модель вычислений без использования стека (Stackless Evaluation), которая позволяет обеспечить высокий уровень вложенности вызовов процедур без сохранения в стеке набора вложенных вызовов подпрограмм. Итогом внедрения новой бесстековой модели является обеспечение поддержки глубокой рекурсии в Tcl-скриптах. Кроме того, представлен набор новых команд  coroutine (http://wiki.tcl.tk/21446), tailcall (http://wiki.tcl.tk/14011), yield (http://wiki.tcl.tk/13849) и yieldto (http://wiki.tcl.tk/25230), предоставляющих поддержку сопрограмм и новые возможности по обеспечению параллелизма в Tcl-скриптах;
-  Для обработки исключений добавлены новые команды try (http://wiki.tcl.tk/8293) и throw (http://wiki.tcl.tk/22121), а также дополнительные средства для учёта кодов ошибок;

-  Поставка коллекции сторонних модулей, собранных и установленных в поддиректорию pkgs;

-  Готовность для создания и выполнения многопоточных программ. По умолчанию Tcl собран с поддержкой многопоточности и включает в поставку пакет Thread (http://wiki.tcl.tk/2770), а также реализацию новой команды interp cancel (http://wiki.tcl.tk/20550);

-  В поставку добавлен пакет с интерфейсом Tcl DataBase Connectivity (tdbc (http://wiki.tcl.tk/20343)), позволяющим использовать в скриптах SQL без учёта специфики конкретных СУБД. Для работы с базами в формате SQLite добавлены модули sqlite3 и tdbc::sqlite3;

-  Обеспечена поддержка IPv6, функция socket теперь в штатном режиме распознаёт IPv6-адреса;
-  Встроенная поддержка сжатия с использованием Zlib, для работы со сжатыми потоками и данными представлена новая команда zlib (http://wiki.tcl.tk/4610);

-  Добавлены новые команды для обработки именованных списков (хэшей): lmap (http://wiki.tcl.tk/13920) и dict map (http://wiki.tcl.tk/37114);

-  Поддержка работы со стековыми каналами (Stacked Channels) без написания кода на языке Си при помощи новых команд  chan push (http://wiki.tcl.tk/21282) и chan pop (http://wiki.tcl.tk/21281);

-  Дополнительные возможности: создание временных файлов, улучшенные методы сортировки, фильтрация словарей, поддержка закрытия одного из направлений двунаправленных каналов, средства для кодирования и декодирования бинарных последовательностей, более точный контроль выполнения команды load и многое другое (http://wiki.tcl.tk/21276).

Основные новшества (http://wiki.tcl.tk/37461) Tk 8.6:

-  Встроенная поддержка чтения и записи изображений в формате PNG, в том числе с возможностью установки альфа-канала для прозрачных областей;
-  Новая команда "tk busy", представляющая собой вариант blt::busy для временного замораживания интерактивных операций в окне;
-  Новый интерфейс "tk fontchooser" для реализаций диалоговых окон выбора шрифтов;
-  Поддержка вывода текста с наклоном (вращением). Угол наклона определяется через опцию "-angle $degrees" в $canvas;
-  Поддержка перемещения элементов на холсте через использование новых команд "$canvas moveto", "$canvas imove" и "$canvas rchars";
-  Средства для контроля за курсором для виджетов ввода текста;
-  Поддержка дополнительных хинтов оконных менеджеров.


URL: http://www.tcl.tk/software/tcltk/8.6.html
Новость: http://www.opennet.me/opennews/art.shtml?num=35661


Содержание

Сообщения в этом обсуждении
"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 20-Дек-12 23:18 
Самый главный вопрос: Tk перестал уже выглядеть, как "привет из 80х"? В остальном, изменения радуют.

"Релиз Tcl/Tk 8.6.0"
Отправлено GentooBoy , 21-Дек-12 00:05 
Как захотите так и будет выглядит, привет из 80x это без gui

"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 21-Дек-12 04:04 
Ну ок, уболтали, выглядит как привет из конца 80-х - начала 90-х. Т.е. страшный что пи...!

"Релиз Tcl/Tk 8.6.0"
Отправлено видящий , 21-Дек-12 22:48 
> Самый главный вопрос: Tk перестал уже выглядеть, как "привет из 80х"? В остальном, изменения радуют.
> Ну ок, уболтали, выглядит как привет из конца 80-х - начала 90-х. Т.е. страшный что пи...!

Что тот, что другой - одного поля ягоды.
Один думает, что все знает о времени, полагаясь только на свои глаза.

> Как захотите так и будет выглядит, привет из 80x это без gui

Другой ушел лишь чуть чуть дальше, но на самом деле лишь в обратную сторону. Он думает, что если что-то нельзя увидеть глазами, то это типа вконец устарело.

Компьютерные системы нужно _видеть_ разумом, а не глазами _смотреть_.
А время - это вообще вещь нелинейная.


"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 21-Дек-12 11:53 
Хочу чтобы в линуксе UI был не аля мотиф, а с текущей темой GTK(KDE) и стюардессами.
У TK на маке есть кокоа и поэтессы, на виндовсе -- аэро и феи.

А на линкусе -- мотиф и доярки.


"Релиз Tcl/Tk 8.6.0"
Отправлено Grammar Nazi , 21-Дек-12 15:44 
будет выглядеть

"Релиз Tcl/Tk 8.6.0"
Отправлено arisu , 21-Дек-12 22:55 
> привет из 80x это без gui

ага, Smalltalk'а, значит — где современные принципы GUI и зародились, — не было.


"Релиз Tcl/Tk 8.6.0"
Отправлено Michael Shigorin , 22-Дек-12 01:46 
> Самый главный вопрос: Tk перестал уже выглядеть, как "привет из 80х"?

Здрасьте, ещё б лет через пять спросили. :)


"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 20-Дек-12 23:19 
Подскажите какие причины могут заставить не использовать python+tk для написания GUI и отдать предпочтение C++/Qt под Mac OS X и Windows?

"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 21-Дек-12 00:32 
Причина не использовать python+tk - использовать PyQt

"Релиз Tcl/Tk 8.6.0"
Отправлено Led , 21-Дек-12 02:09 
>какие причины могут заставить не использовать python+tk для написания GUI

Такие же, как и "не есть жёлтый снег"


"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 21-Дек-12 04:05 
> отдать предпочтение C++/Qt под Mac OS X и Windows?

На кутях нет гемора с версиями питона. И программа не выглядит как г-но. И не тормозит как г-но.


"Релиз Tcl/Tk 8.6.0"
Отправлено ... , 21-Дек-12 20:49 
1. Питон и tk необходимо устанавливать в систему пользователя. Иногда такой возможности может не быть. С Qt можно ничего не устанавливать в систему.
2. GIL я отношу к минусам питона.
3. Документация, субъективно, у Qt лучше(все собрано в одном месте).
4. Юзер установил другую версию библиотек и появилась вероятность того что особенности питона пересекутся с особенностями tk.
5. Компилятор лучше детектит ошибки в коде чем интерпретатор.
6. Qt пытается ползти на мобильные платформы - возможный плюс.

Да и для многоплатформенного gui-я лучше испольщовать web.


"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 20-Дек-12 23:34 
Посмотрел на сайте Tcl/Tk, там в примерах Tk подхватывает нативный дизайн виджетов, а линуксе всё какое-то нескладное.

"Релиз Tcl/Tk 8.6.0"
Отправлено GentooBoy , 21-Дек-12 00:00 
небось опять на сайт wxWidgets зашли и народ баламутите

"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 21-Дек-12 08:49 
Как вышла версия 8.5 (4 года назад), с кривым дизайном у Tk ни разу не сталкивался, в линуксе тоже все в порядке.

"Релиз Tcl/Tk 8.6.0"
Отправлено Пользователь Debian , 21-Дек-12 01:00 
Ура!

"Релиз Tcl/Tk 8.6.0"
Отправлено Loooooker , 21-Дек-12 01:40 
> Переход на модель вычислений без использования стека (Stackless Evaluation)

Теперь можно не бояться использвать goto ))))


"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 21-Дек-12 04:06 
> Теперь можно не бояться использвать goto ))))

Так goto и на сях не боятся использовать. Просто оно ломает структуру программы. За что его и не любят. Наглядность страдает. А так JMP <label> было еще в ассемблере.


"Релиз Tcl/Tk 8.6.0"
Отправлено Аноним , 21-Дек-12 08:18 
> А так JMP <label> было еще в ассемблере

Было? А куда делось?

И да - switch/case по сути тот же самый goto


"Релиз Tcl/Tk 8.6.0"
Отправлено CPP , 21-Дек-12 11:13 
>> А так JMP <label> было еще в ассемблере
> Было? А куда делось?
> И да - switch/case по сути тот же самый goto

Ну да, похоже, но только в отличие от goto переход с условием как и  у if


"Релиз Tcl/Tk 8.6.0"
Отправлено Jorra , 24-Дек-12 05:07 
А где вы видели goto БЕЗ УСЛОВИЯ?! :)

"Релиз Tcl/Tk 8.6.0"
Отправлено Led , 25-Дек-12 07:24 
> А где вы видели goto БЕЗ УСЛОВИЯ?! :)

В GCC


"Релиз Tcl/Tk 8.6.0"
Отправлено alx , 21-Дек-12 02:25 
> Для обработки исключений добавлены новые команды try и throw, а также дополнительные средства для учёта кодов ошибок;

Про catch уже можно забыть? Или эти команды идут в дополнение?


"Релиз Tcl/Tk 8.6.0"
Отправлено anonymous , 21-Дек-12 09:11 
Лучшая новость за последние n месяцев!
*убежал переписывать кучу кода на использование coroutine*

"Релиз Tcl/Tk 8.6.0"
Отправлено stupid , 21-Дек-12 10:41 
>Переход на модель вычислений без использования стека (Stackless Evaluation)

Это как? Заменили в рекурсии стек на список?


"Релиз Tcl/Tk 8.6.0"
Отправлено anonymous , 21-Дек-12 11:22 
>>Переход на модель вычислений без использования стека (Stackless Evaluation)
> Это как? Заменили в рекурсии стек на список?

http://wiki.tcl.tk/20861


"Релиз Tcl/Tk 8.6.0"
Отправлено anonymous , 21-Дек-12 12:36 
Кстати, можно ли использовать coroutines как аналог threads? Либо это все происходит в рамках одного потока и одного процесса?
Кто использует какие техники для распределения "тяжелых" задач по процессорам (ядрам) в тикле?