|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Bulat Ziganshin 2:5093/4.126 17 Mar 2002 17:13:40 To : Victor Wagner Subject : Perl Ruby Tcl Piton -------------------------------------------------------------------------------- Sunday March 17 2002, Victor Wagner writes to Bulat Ziganshin: BZ>> а что, scheme действительно популярен? да и ruby.. а вот у VW> gimp-а и emacs-а (правда в последнем eLisp а не scheme) вполне хватит VW> для обеспечения популярности. А есть еще Gnome и Sawfish. elisp имеет отношение к scheme? мне из всех лиспов нравился только отечественный rlisp :) VW>>> Tcl хорош 1. Для событийно управляемого программирования, VW>>> в том числе GUI. BZ>> наскока я понимаю, речь о передаче блоков кода в процедуры BZ>> и сохранении их в переменных VW> Hет. Речь идет о встроенном в язык цикле обработки событий. Thread.new { Tk.mainloop } VW>>> Tk для него роднее чем для perl, а уж возможность VW>>> двунаправленных пайпов и копирования данных в фоновом VW>>> режиме... BZ>> что роднее - никуда не денешься, а второе и третье я не BZ>> понял. pipe(), fork() и даже треды есть и в перле VW> В перле ты не можешь сделать open F,"|prog|"; в раби можно, и даже stderr перенаправить впридачу. я так делал PerlInside - перлу на вход команды, от него результаты :) VW> А в тикле - можешь. Т.е. одновременно обрабатывать ввод и вывод VW> некоей программы В ОДHОМ ПРОЦЕССЕ - без форков и тредов. VW> В перле тебе понадобится для этого использование IPC::Open2 VW> и работа с sysread/syswrite, довольно неудобная. А в тикле есть VW> уровень абстракции, который берет на себя проблемы буферизации ввода VW> вывода и неодновременности готовности программы к вводу и выводу. это как - без тредов учитывать "неодновременность готовности программы к вводу и выводу" ? select? io_ready? VW>>> 2. Для встраивания в свои приложения. У perl С API VW>>> посложнее будет. Впрочем, в последних версиях Tcl с этим VW>>> хуже стало. До такой степени что в comp.lang.tcl VW>>> рекламируют LUA. BZ>> одна из сильных сторон Ruby - его реализация в виде ОО BZ>> библиотеки на Си. после чего сишные расширения языка BZ>> пишутся как на самом раби, только с неудобным синтаксисом VW> Это опять не про то. Расширения языка (кстати, чего ж в них сишного, VW> если на ruby?) это одно, а встраивание интерпретатора языка в VW> программу имеющую свою архитектуру и свои требования к оному языку - VW> совсем другое. да. но и при встраивании нужно обмениваться данными. что ты тогда имел в виду, когда говорил, что у перла C API сложнее? VW>>> 3. Для создания проблемно-ориентированных язычков. В нем VW>>> можно легко определять свои собственные управляющие VW>>> конструкции, типа for_each_file_in_directory_tree BZ>> опять же, такое можно в любом языке, где есть closures с BZ>> параметрами. но в некоторых языках ;) (см. код для gui) BZ>> это делать проще, чем в других VW> Вот собственно об этом мы речь и ведем - в каком месте на каком языке VW> проще. также, как на си++ можно делать всё, что на си, так и другие языки могут вбирать в себя возможности tcl, обеспечивая не меньшее удобство. вот исторически его назначение ты описал, я думаю, верно. не зря он называется task control language Bulat, mailto:bulatz-AT-fort.tatarstan.ru, ICQ: work 15872722, home 11849833 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/33403c94c39a.html, оценка из 5, голосов 10
|