Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Eduard Y Zozulya                     2:5020/400     02 Sep 2004  11:00:41
 To : Andrew Dolgov
 Subject : Re: Буквари: Программирование в X Window
 -------------------------------------------------------------------------------- 
 
 .lan>
 
 From: Eduard Y Zozulya <doro@doro.poltava.ua>
 On Wed, 1 Sep 2004, Andrew Dolgov wrote:
 
 > преимуществ нет. а недостатки можно перечислять годами, начать хотя бы с
 > общего убожества tcl, этого недоязыка...
 
 Hу а мне все кажется наоборот, недостатков нет а преимуществ много,
 думаю это из-за того, что мы больше думаем душой :-)
 
 Сначала о грустном, для некоторых:
 
 - каждому языку - свое применение
   маразм на tcl писать драйвера,
   но если речь идет о работе со строками - равных tcl почти нет,
   если речь о UI - равных tk почти нет
   если речь идет о tcl/tk - равных уж точно нет :-)
 
 О не совсем плохом:
 
 1) отсутствие типов переменных:
 
    думаю, это скорее плюс чем минус.
    Тип переменной зависит от того, где ты ее используешь.
    Ведь это похоже на жизнь. Забиваешь молотком гвоздь - это столярный
 инструмент,
    бъешь им по башке - орудие убийства.
 
    set a 1
    set b "Я сегодня $a"   # a - это строковая переменная
    set b [incr a]         # a - это int
 2) массивы:
 
    по-большому счету это не совсем массивы в "классическом понимании",
    скорее, это совсем не массивы, это нечно на жизнь большее
 
    - размерность не ограничена
    - индекс массива - все что угодно
    - один и тот же массив одновременно может быть и одномерным и двухмерным и
      N-мерным
 3) подстановки:
 
   set a 1             # a = 1
   set b a             # b = a
 
   puts [subst $$a]    # результат = 1
 4) eval:
 
   представим себе общение клиента и сервера по довольно примитивной технологии,
   пусть клиент передает имя функции и ее аргументы, которую должен запустить
   сервер и отдать результат выполнения клиенту.
 
   простая задача, в обычных языках для реализации этого наверное надо вызывать
   case на имени функции, в tcl для вызова достаточно одной строки
 
   set RunString "По дороге в Ад, черный всадник мчится" # По - функция, все
 остальное ее аргументы
 
   eval $RunString
 5) namespace - пространство имен
 
   обычно нам доступны следующие области видимости переменных
   - глобальная
   - локальная
   - внутримодульная (поправьте если я обозвал не так)
 
   в tcl мы получаем практически неограниченую возможность построения
   областей видимости - внутри + экспорт изнутри с любого количества пространств
   имен. Более того это касается не только переменных, но и функций
 6) Цикл foreach
 
   foreach { a b c } { 1 2 3 4 5 6 } {   # циклические значения
     puts "$a $b $c"                     # a | b | c|
   }                                     # ----------
                                         # 1   2   3
                                         # 4   5   6
 
   я этим часто пользуюсь иначе, когда надо присвоить
   многим переменным некие различные значения
 
   можно сделать по-обычному:
 
   set a 1
   set b 2
   set c 3
 
   а можно одной строкой
 
   foreach { a b c } { 1 2 3 } {}
 
 7) Думаю я многое еще не представил на Ваш суд.
 
 Good luck.
 ----------------------
 With respect, Eduard.
 mailto:doro@doro.poltava.ua
 http://doro.poltava.ua
 ICQ: 176017203
 
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Буквари: Программирование в X Window   Eduard Y Zozulya   02 Sep 2004 11:00:41 
 Re: Буквари: Программирование в X Window   Victor Wagner   02 Sep 2004 15:06:14 
 Re: Буквари: Программирование в X Window   Eduard Y Zozulya   02 Sep 2004 15:59:52 
 Re: Буквари: Программирование в X Window   Victor Wagner   02 Sep 2004 16:27:07 
 Re: Буквари: Программирование в X Window   Eduard Y Zozulya   02 Sep 2004 17:19:47 
 Re: Буквари: Программирование в X Window   Victor Wagner   02 Sep 2004 18:02:00 
Архивное /ru.linux/103170e1044e3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional