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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     03 Sep 2004  11:38:54
 To : Alexey Gradovtsev
 Subject : Re: Вопросец
 -------------------------------------------------------------------------------- 
 
 Alexey Gradovtsev -> Artem Chuprina  @ Fri, 03 Sep 2004 00:00:07 +0400:
 
  AG>>> Что имеем в С++? STL, предоставляющий
  AC>> функциональных языках, где eval есть, либо встраивать в собственную
  AC>> программу интерпретатор C++).  Hо сделать это со сравнимой
  AC>> эффективностью язык не позволяет.
 
  AG> Итак, основное преимущество интерпретируемых языков - это eval? :)
 
 Да.
 
  AG>>> Однако при всем при том в С++ все переопределяемо, а в эхотаге? Таких
  AG>>> возможностей существенно меньше. Или я ошибаюсь?
  AC>> В эхотаге уж чего-чего, а возможностей по переопределению больше.
  AC>> Hапример, можешь ты в C++ переопределить [] так, чтобы он не добавлял
  AC>> элемент к контейнеру, если его там нет?  Без специальной обработки этого
  AC>> в типе покладаемого туда элемента?
  AC>> Это грабли, по которым я с полгода назад потоптался - вместо перлового
  AC>> if (defined(my $el = $container{$key}))
  AC>> приходится писать три довольно длинных строки - объявить итератор,
  AC>> вызвать find(), вызвать end(), сравнить.  Можно, конечно, написать
  AC>> функцию, которая будет все это дело оборачивать, и даже объявить ее
  AG> [... Дальше неразборчиво ...]
 
  AG> Упс. И где тут переопределение [] ? if (defined (container[key])) -
  AG> это вовсе не переопределение, а вызов функции, как ты и
  AG> написал. Вся проблема в том, что сделать эту функцию в С++ нужно
  AG> самому, ну так и что с того???
 
 В перле это переопределение обычно просто не требуется (что уже большое
 преимущество), а если требуется, то можно и переопределить.
 
  AG> А вот переопределить [] в С++ всегда запросто (контейнер ведь
  AG> всегда можно и самому сконструировать при желании!)
 
 Так, а вот этого не надо.  Да, я могу сам сконструировать контейнер.  Hо
 мы говорили о наличии уже готовых средств.
 
  AG> , и тогда запись: container[key] = "value"; будет иметь разные
  AG> последствия, определяемые программистом! А в перле? А в перле
  AG> остается только вызов функции if (defined ($container[$key])).
 
 Так мне не надо container[key] = "value".  Мне надо if
 (Type value = container[key]).  Ошибки в количестве знаков равенства
 нет.  В C++ при этом автомагически будет создан container[key], что мне
 совсем не надо.
 
  AG> Впрочем, нет смысла сравнивать, что там в С и что в перле. Просто
  AG> факт есть факт: возможности одного языка ничуть не уступают
  AG> возможностям другого.
 
 Повторяю: теоретически.
 
  AC>> Главное же - это уже не STL, причем совсем.  Готовое средство не то
  AC>> чтобы совсем непригодно для решения задачи (поддержку структуры
  AC>> контейнера я все-таки ему оставил), но непригодно для написания
  AC>> программы.
 
  AG> С чего это? Тебе дают готовые средства. Хочешь - пользуйся, а хочешь -
  AG> переписывай самостоятельно.
 
 Хочешь пользоваться - пользуйся.  Хочешь, чтоб удобно было пользоваться
 - переписывай самостоятельно.  Всё.
 
  AG> В перле второе просто отсутствует.
 
 Да ну!?  И давно ты в последний раз perl видел?  Hе меньше 10 лет назад,
 факт.
 
  AC>> C - язык для решения узкого круга задач закаленными профессионалами, C++
  AC>> - вредный.  Он, увы, не мертвый - писать на нем код сознательно учат.  И
  AC>> это - диверсия в масштабах планеты.
 
  AG> :)) Ортодоксы были и есть везде и всегда. Интересно, что на эти
  AG> слова говорят в сишных эхах ;) Это я про С++, про С
  AG> согласен. Вопрос ведь не в языке, а в том, КОГДА удобнее на нем
  AG> писать.
 
 Так вот, во всех случаях, когда применяется C++, всегда найдется язык,
 на котором данную задачу решать более правильно.  Причем я бы сказал,
 что можно сделать полное покрытие в этом смысле тремя языками - C, Lisp
 и Tcl.  Хотя совсем не обязательно они будут наилучшими выборами.
 
 -- 
 Artem Chuprina
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757
 --- ifmail v.2.15dev5.3
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Вопросец   Bogdan Watula   30 Aug 2004 22:30:40 
 Вопросец   Serge Chervjakov   31 Aug 2004 03:13:39 
 Вопросец   Bogdan Watula   31 Aug 2004 04:28:04 
 Hа: Вопросец   Alexander V. Gaiduk   31 Aug 2004 08:54:19 
 Re: Вопросец   Victor Wagner   31 Aug 2004 09:34:00 
 Вопросец   Alexey Gradovtsev   01 Sep 2004 22:01:42 
 Re: Вопросец   Artem Chuprina   02 Sep 2004 11:16:59 
 Re: Вопросец   Victor Wagner   02 Sep 2004 12:10:32 
 Re: Вопросец   Nick Kostirya   02 Sep 2004 12:24:51 
 Re: Вопросец   Artem Chuprina   02 Sep 2004 14:49:55 
 Re: Вопросец   Victor Wagner   02 Sep 2004 15:00:27 
 Re: Вопросец   Nick Kostirya   02 Sep 2004 15:59:21 
 Re: Вопросец   Victor Wagner   02 Sep 2004 16:52:46 
 Re: Вопросец   Nick Kostirya   02 Sep 2004 17:11:29 
 Re: Вопросец   Sergey Gernichenko   03 Sep 2004 08:48:24 
 Re: Вопросец   slava kozyrev   03 Sep 2004 10:52:46 
 Re: Вопросец   Victor Wagner   03 Sep 2004 10:58:46 
 Re: Вопросец   Alexey Gradovtsev   02 Sep 2004 13:35:37 
 Re: Вопросец   Victor Wagner   02 Sep 2004 14:29:27 
 Re: Вопросец   Alexey Gradovtsev   02 Sep 2004 16:15:24 
 Re: Вопросец   Artem Chuprina   02 Sep 2004 16:42:34 
 Вопросец   Alexey Gradovtsev   03 Sep 2004 01:17:12 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 11:47:38 
 Re: Вопросец   Alexey Gradovtsev   03 Sep 2004 12:13:18 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 15:13:12 
 Re: Вопросец   Alexey Gradovtsev   03 Sep 2004 16:57:43 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 18:21:47 
 Вопросец   Alexey Gradovtsev   05 Sep 2004 01:49:21 
 Re: Вопросец   Artem Chuprina   06 Sep 2004 21:28:03 
 Re: Вопросец   Serge Chervjakov   02 Sep 2004 17:57:22 
 Вопросец   Alexey Gradovtsev   03 Sep 2004 01:25:22 
 Вопросец   Serge Chervjakov   03 Sep 2004 11:07:56 
 Вопросец   Alexey Gradovtsev   03 Sep 2004 11:55:46 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 12:16:26 
 Re: Вопросец   Alexey Gradovtsev   03 Sep 2004 13:10:23 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 15:15:44 
 Re: Вопросец   Alexey Gradovtsev   03 Sep 2004 16:43:19 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 16:55:11 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 17:07:28 
 Вопросец   Alexey Gradovtsev   05 Sep 2004 00:27:32 
 Вопросец   Alexey Gradovtsev   05 Sep 2004 01:46:07 
 Re: Вопросец   Artem Chuprina   06 Sep 2004 21:40:48 
 Re[2]: Вопросец   Maxim Yemelyanov   03 Sep 2004 16:49:54 
 Re[2]: Вопросец   Alexey Gradovtsev   03 Sep 2004 18:17:05 
 Re[3]: Вопросец   Maxim Yemelyanov   03 Sep 2004 20:13:04 
 Re[3]: Вопросец   Alexey Gradovtsev   03 Sep 2004 20:51:24 
 Re[4]: Вопросец   Maxim Yemelyanov   04 Sep 2004 13:14:25 
 Вопросец   Serge Chervjakov   03 Sep 2004 18:37:21 
 Вопросец   Alexey Gradovtsev   03 Sep 2004 20:58:38 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 21:13:20 
 Вопросец   Alexey Gradovtsev   05 Sep 2004 01:35:45 
 Re: Вопросец   Artem Chuprina   02 Sep 2004 14:47:09 
 Re: Вопросец   Alexey Gradovtsev   02 Sep 2004 16:10:14 
 Re: Вопросец   Artem Chuprina   02 Sep 2004 16:37:17 
 Вопросец   Alexey Gradovtsev   03 Sep 2004 01:00:07 
 Re: Вопросец   Victor Wagner   03 Sep 2004 10:56:06 
 Re: Вопросец   Alexey Gradovtsev   03 Sep 2004 11:12:35 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 12:17:58 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 11:38:54 
 Re: Вопросец   Alexey Gradovtsev   03 Sep 2004 12:42:47 
 Re: Вопросец   Ivan Frolcov   03 Sep 2004 13:18:54 
 Re: Вопросец   Alexey Gradovtsev   03 Sep 2004 13:27:32 
 Re: Вопросец   Artem Chuprina   03 Sep 2004 15:19:59 
 Вопросец   Denis Knyazev   03 Sep 2004 21:20:28 
 Re: Вопросец   Ilyak Kaznacheev   06 Sep 2004 20:38:25 
 Re: Вопросец   Artem Chuprina   06 Sep 2004 21:44:09 
Архивное /ru.cgi.perl/256060f25bf01.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional