LINUX.ORG.RU

Вводные статьи о Tcl/Tk


0

0

Появились вводные статьи об интересном кросплатформенном скриптовом языке программирования Tcl/Tk.

Статья 1 ( http://itc.ua/article.phtml?ID=16262 )

Статья 2 ( http://itc.ua/article.phtml?ID=16346 )

Язык очень прост в изучении, с предельно простым синтаксисом.

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

anonymous

Проверено: maxcom

угу, иметь переменную с именем 1 и значением 2 можно только в этом языке. Крайне удобно... ;)

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

Язык - фиговый, слишком многословный.

Кроссплатформенность - липовая.

И давно ли это поделие перестало падать два раза в минуту?

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

это python многословный? По сравнению с C, java - он сама лаконичность :)

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

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

> НУ так. Правда недолго - perl6 будет рулить плохо и неправильно. не факт. и потом, никто не заставляет юзать новые фичи perl6, а обратная совместимость сохранится.

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

> это python многословный? По сравнению с C, java - он сама лаконичность :)

Нашел с чем сравнивать :)

> python кстати не многословнее перла

Намного многословнее.

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

Питон сасёт, по сравнению с перлом питон гавно и мыльный пузырь, потомучто во-первых перл питон делает по праизвадительности и быстрате хешей а вовторых для перла есть CPAN.

А питоновый gui это полное позорище. надо ж было для гую взять и к скриптовому языку привязать другой скриптовый язык (тикль/тк)! Кто не знает - в питоне вызовы графических тиклевых виджетов генерят строки с коммандами которые передаются потом интерпритатору тикля, так что тормоза стоят неподетские.

А все потому что Гвидо, блин, этот любитель языковых изъебов, одни классы чего стоят, в каждой версии питона они идиалогически несавместимы с предыдущими. Вот в сане работают вменяемые люди - сделали для джавы AWT и SWING, родные графические среды, и аопроса с выбором гуя для джава программеров не вохникает. А в питоне что не пионер то новый гуй придумывает - Tk, WinGUI, GTK, Qt, wxWindows (теперь их кстати следует называть wxWidgets, хорошо еще не wxW----ws ::) Забл упомянуть еще PythonMegaWidgets, тот же AWT/SWING через прослойку Jython, Windows Forms для .NET (глубокая бета), для макоса опять же 33 варианта гуя, и в довершение всего монстр Zope, для тех кто распрощался с мыслью иметь нормальный GUI для питона и решил пользовать веб-интерфейс, да и у тех не все ладно - пытаются прикрутиь мозильный XUL, но и здесь мнения разделились, одни говорят надо генерить XUL в ZOPE и слать мазиле, другие интерпрететор питона вставляют прямо в мазилу (которая и сама известный тормаз, тормознее тикля уж точно), короче полный содом и гомора.

и правильно Патрик сделал что выкинул из слаки-current питон нахрен, не нужен он в нормальных дистрибутивах, пускай красношапкие пионеры питонскими принттулами и прочими линуксконфами забавляюца.

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

ПУЗОМЕРКА

Ну все, бл.., пацаны, давайте письками меряца, у каво язык нимнагасловней и выразительней!

Придлагаю задачу : самопечатающаяся программа. У кого текст будет короче, того язык круче.

Длина текста считается в символах, перевод строки - 1 символ, табуляция или пробел - 1 символ. Читать текст программы из файла нельзя, скачивать с инета нельзя, сообщения об ошибках печатать нельзя.

Варианты короче чем есть на странице http://www.nyx.net/~gthompso/quine.htm не предлагать.

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

1. Не дольше тебя

2,3. Смеяться будешь по пути нах, там будет уже не до смеха

anonymous
()

Можно вопрос не флейма ради?
Как будет на tcl/tk выглядеть допустим такая тривиальная вещ:
var
a: integer;
s: string;
f: text;
begin
assign(f,"test.txt");
reset(f);
while not eof(f) begin
readln(f,s);
if s="test" then a:=a+1;
end;
close(f);
writeln(a);
end.
Просто интерестно чо рациональнее использовать если нужно написать какую-нить мелкую приблуду сложно реализуемую на баше.
Заранее благодарен.

nuHrBuH
()
Ответ на: ПУЗОМЕРКА от anonymous

> Придлагаю задачу : самопечатающаяся программа. У кого текст будет короче, того язык круче

Perl и Python равны. Самая короткая программа, которая
печатает сама себя занимает ... 0 (ноль) байт.

$ touch introspective_void.py
$ python introspective_void.py

$ touch introspective_void.pl
$ perl introspective_void.pl

$



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

На perl:

perl -ne '$a++ if /^test$/; END {print "$a\n"}'

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

> Язык - фиговый, слишком многословный.

Во-первых, зато читабельный. Во-вторых - ты просто не умешь на нём писать :)

>> python кстати не многословнее перла

> Намного многословнее.

Зато и намного читабельнее.

> перл питон делает по праизвадительности и быстрате хешей

Удобства написания софта не даются даром. Кроме того, Perl не принципиально быстрее, т.е. при выборе языка из Perl / Python выбирают исключительно по другим параметрам, включая религиозные :)

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

Зато совместимы практически. У тебя возникали с этим проблемы? Я вот, один раз с этим столкнулся, да и то, это решилось за 15 сек добавлением одного родителя.

> вызовы графических тиклевых виджетов генерят строки с коммандами которые передаются потом интерпритатору тикля, так что тормоза стоят неподетские.

Что, Кваку на Python/Tk написать не получается?

> А в питоне что не пионер то новый гуй придумывает

Не в Питоне, а для Питона. Только не каждый GUI в Питон попадает. Пока попал только Tk. А AWT/SWING в Jython - как бесплатное приложение :) Кроме того, видал я как-то какую-то навороченную прикладуху на java - то, как здесь описывают тормоза KDE или OO покажется цветочками по сравнению с её тормозами. Я натурально допивал вторую чашку чая, когда она соизволила наконец догрузиться. Ну и нах? Выходит, что ни на том ни, на этом Кваку или даже Офис написать не получится.

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

> Во-первых, зато читабельный.

perl намного читабельнее.

> Во-вторых - ты просто не умешь на нём писать :)

А ты не знаешь perl :)

> Зато и намного читабельнее.

См. выше

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

Например, так:

puts [llength [lsearch -all -exact [read [open "test.txt"]] "test"]]

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

2anonymous (*) (26.02.2004 18:32:40):

> во-первых перл питон делает по праизвадительности и быстрате хешей

Насчет быстродействия: http://dada.perl.it/shootout/
из 25 бенчмарок Питон проиграл Перлу только в 3-х, хэши не в числе этих 3. При том, что не использовался psyco, который дает ускорение до нескольких раз.

> а вовторых для перла есть CPAN.

Насчет CPAN'а тут кто-то уже высказывался - в этом отстойнике найти нужный модуль, запускающийся без проблем с конкретной версией Перла часто является проблемой. А стандартная библиотека Питона официально поддерживается и по функциональности вполне пригодна для многих системных и интернетовских задач, а если добавить Numeric и какой-нибудь gui-toolkit - больше вообще ничего не надо.

Это было во-первых. А во-вторых, см. сюда: http://www.python.org/pypi

> А питоновый gui это полное позорище

Ну Перл от Питона недалеко ушел в смысле GUI (о чем скромно
умолчали). Те же самые PerlTk,
wxPerl, Perl GTK, Perl Qt ... Только для Питона все эти модули
появились раньше и многие из них сейчас в гораздо более завершенном состоянии, те же wxPython & PyQT.

> правильно Патрик сделал что выкинул из слаки-current питон нахрен, > не нужен он в нормальных дистрибутивах, пускай красношапкие > пионеры питонскими принттулами и прочими линуксконфами забавляюца

Чистой воды п$@%ж, выражаясь в Перловской нотации.


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

Гы-гы забавно: два фаната пистона спорят друг с другом.

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

>>var a: integer;
>>s: string;
>>f: text;
>>begin
>>assign(f,"test.txt");
>>reset(f);
>>while not eof(f) begin
>>readln(f,s);
>>if s="test" then a:=a+1;
>>end;
>>close(f);
>>writeln(a);
>>end.

set fl [open "text.txt"]
set cnt 0
while {![eof $fl]} {
if {[gets $fl] == "test"} {
incr cnt
}
}
close $fl
puts $cnt

jk_
()
Ответ на: ПУЗОМЕРКА от anonymous

к вопросу о популярности
по перлу там даже две странички, на питоне 3 или 4 примера... не густо, правда? :)

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

Чем пример на perl не устраивает?

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

а чем плохо

grep '^test$' test.txt | wc -l

anonymous
()

Подскажите кто знает, хорошую книгу на русском по Tcl/Tk
заранее благодарен

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

На русском попадались след. книги:

А. Петровский "Командный язык программирования TCL" - Сочетание руководства по хелловордам с переводом маном.

П.В. Москвин "Азбука TCL" - Нелловорды по Tcl, Tk и сишному интерфейсу Tcl.

Может кто знает хорошие книги "среднего и выше" уровня?

anonymous
()
Ответ на: ПУЗОМЕРКА от anonymous

> Придлагаю задачу : самопечатающаяся программа. У кого текст будет короче, того язык круче.

в gforth это будет звучать так:

see see

Вот и всё.
Для интересующихся - протокол:

$ /opt/forth/bin/gforth
Gforth 0.6.2, Copyright (C) 1995-2003 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
ok
see see
: see
parse-word find-name dup 0=
IF drop -13 throw
THEN
name-see ; ok
ok
bye
$

> Длина текста считается в символах, перевод строки - 1 символ, табуляция или пробел - 1 символ. Читать текст программы из файла нельзя, скачивать с инета нельзя, сообщения об ошибках печатать нельзя.

что считать, если программа встроена в язык?

P.S. ...а над грамматикой и орфографией стоило бы поработать.

:-)

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


: test2 s\" test" find-name name-see ;

ok
test2
: test
s\" test" find-name name-see ; ok
ok


или ещё короче (по-символам):

ok
: a find-name ; ok
: b name-see ; ok
ok
: test3 s\" test3" a b ; ok
ok
test3
: test3
s\" test3" a b ; ok

:-)

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

Чем перл отличается от ПХП (синтаксис есесно) так как чел грил что очень похожи язики. Как и впрочем все ОО думаю но всё-же?

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

> Язык - фиговый, слишком многословный.

Да нет, просто мы, в отличие от P..l, иероглифов не используем принципиально, для улучшения читабельности. Нам ведь язык нужен для работы, а не для того, чтобы "ламерам" рассказывать, какие мы из себя все 1337 и крутые, что вот даже суперпрограмму в две строчки могем написать.

> Кроссплатформенность - липовая.

То есть, тебя раздражает отсутствие в списке поддерживаемых твоей любимой платформы - MS-DOS 2.0?

> И давно ли это поделие перестало падать два раза в минуту?

Давно.

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

> Да нет, просто мы, в отличие от P..l, иероглифов не используем принципиально, для улучшения читабельности.

Да-да-да. Вы небось и аббревиатурами принципиально не пользуетесь. Не может быть читаемой простыня на 40 страниц кода.

> Нам ведь язык нужен для работы, а не для того, чтобы "ламерам" рассказывать, какие мы из себя все 1337 и крутые, что вот даже суперпрограмму в две строчки могем написать.

Если бы Вам (Николаю Второму) язык был бы нужен для работы, то вы бы озаботились изучить его получше, а не п.дили бы про то, что язык с трудом воспринимается новичками.

> То есть, тебя раздражает отсутствие в списке поддерживаемых твоей любимой платформы - MS-DOS 2.0?

И ее тоже.

> Давно.

А wxPython об этом знает? Или падает по прежнему?

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

psyco питоновы хеши нифига не ускорит, они и так на сях написаны. он может ускорить поиск методов у объектов и прочую лабуду, это да, а поиск ключа в хеше никак не ускорит.

а еще bsd-un рассказывал что к перлу можно прикрутить крутую БД, и даже оракд, и тогда перл всех сделает, даже grep, sort и uniq.

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

print map(str.strip,file("test.txt").xreadlines()).count("test")

хотя конечно проще "grep ^test$ test.txt|wc"

anonymous
()

Чтоб wxPython не падал, надо к нему ридми читать.
Юзаю оный из портов FreeBSD с gtk2 wxWindows, ничего не падает, Boa рулит.

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

>Можно вопрос не флейма ради? 
>Как будет на tcl/tk выглядеть допустим такая тривиальная вещ: 
>var 
>a: integer; 

на баше оно пишется элементарно:


  i=0
  while read f; do
    if [ $f == "test" ]; then
      i=$(($i+1))
    fi
  done  < file.txt
  echo $i


anonymous
()

Tcl круто - я его как скрипт для игр пытаюсь прикручивать. А интерфейс на Tcl/Tk - некрасивый, но для мелких вещей полезен.

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

неверно. на sh (даже не bash) надо так:

i=0
while read -r s
do
  [ "x$s" = "xtest" ] && i=$(($i+1))
done < file.txt
echo $i

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

> Просто интерестно чо рациональнее использовать если нужно написать какую-нить мелкую приблуду сложно реализуемую на баше.

"чо" в переводе на китайский - жопа :)

посмотри на "сложно реализуемую на баше" муйню, что ты напаскалил, реализованную-таки на "баше"

#!/bin/bash
while read test ; do
  [ "$test" = "test" ] && ((count++))
done < test.txt
echo $count

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

> Да-да-да. Вы небось и аббревиатурами принципиально не пользуетесь.

Пользуемся. Но надо знать меру.

> Не может быть читаемой простыня на 40 страниц кода.

Это скажи Java-программерам. К Питону сие явно отношения не имеет.

> Если бы Вам (Николаю Второму) язык был бы нужен для работы, то вы бы озаботились изучить его получше, а не п.дили бы про то, что язык с трудом воспринимается новичками.

А я что, говорил что-то про _восприятие новичками_? Или это такое новое leet'ное определение читабельности кода?

Что до "изучить получше" - а сам-то не пробовал? Перл однозначно обставляет Питон на скриптах и тому подобных _утилитарных_ задачах. Но вот что касается _приложений_ - тут уже обратная ситуация. И это является прямым следствием дизайна этих языков, они так и были задуманы.

> А wxPython об этом знает? Или падает по прежнему?

Знает. Не падает. Хотя я лично предпочитаю PyQt.

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

>что к перлу можно прикрутить крутую БД, и даже оракд

а сам то пробовал оракл прикрутить? хуже тормрза были наверно тока в питоне :)

anonymous
()
Ответ на: ПУЗОМЕРКА от anonymous

cat $0 > куда вам там...?

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

> это python многословный? По сравнению с C, java - он сама лаконичность :)

странно видеть self в качестве параметра методов в языке, претендующем на лаконичность. или это побочный эффект псевдо-оо-сти?
сэкономили на скобках, чтобы осталось место для self :)
ничего личного, просто вопрос

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

Здравствуйте уважаемые! Нужен PyQT для оффтопика (win2k) хотя бы для ознакомления. Может знает кто URL где можно cкачать копию. То что лежит на сайте производителя PyQT отказывается работать с тем что лежит на сайте QT. Требует QT-MTEDU230.dll Памягитя! Очень хочу заюзать PyQT.До этого очень активно юзал wxWindows. Вещь хорошая, но кое чего не хватает.

anonymous
()

Что вы как звери налетели!

Больше статей по программированию на русском языке!

Спасибо авторам за работу!

А язык найдет своего пользователя

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