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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     02 Sep 2004  16:37:17
 To : Alexey Gradovtsev
 Subject : Re: Вопросец
 -------------------------------------------------------------------------------- 
 
 Alexey Gradovtsev -> Artem Chuprina  @ Thu, 2 Sep 2004 12:10:14 +0000 (UTC):
 
  AG> Возможно, я немного не то имел в виду. Что было поставлено в
  AG> заслугу эхотагу (по сравнению с С)? Простота работы с текстом
  AG> (данными), скорость разработки.  Hа чем это основано?
  AG> Hетипизированность, наличие мощных средств работы с данными (хеши -
  AG> ассоциативные массивы, списки и, опять же, нетипизированные
  AG> скаляры), менеджер памяти, позволяющий не заботиться о проблемах
  AG> утечек, регулярные выражения на уровне языка...
 
  AG> Что имеем в С++? STL, предоставляющий
 
 Вот тут слово пропущено.  "математически".  И в этом вся проблема.
 Строго математически - да, можно сделать почти то же самое (не совсем -
 совсем то же самое из традиционно компилируемых можно сделать только на
 функциональных языках, где eval есть, либо встраивать в собственную
 программу интерпретатор C++).  Hо сделать это со сравнимой
 эффективностью язык не позволяет.
 
  AG> все те же возможности: ЛЮБЫЕ формы работы с данными, автоматическое
  AG> распределение памяти, автоматическое приведение типов (свободно
  AG> переопределяемое при этом) посредством оператор-функций и
  AG> перегрузок. Регулярные выражения (пусть и не на уровне языка, это
  AG> все равно). А помнить про конструкторы копий и присваивания - это
  AG> уже вопрос организационный. В конце концов, завести себе исходный
  AG> шаблон для объявления объекта (а говоря об STL - только если
  AG> нативные не устраивают)...  Это уж называется синтаксисом. Как use
  AG> strict - ведь это тоже явное действие!
 
  AG> Однако при всем при том в С++ все переопределяемо, а в эхотаге? Таких
  AG> возможностей существенно меньше. Или я ошибаюсь?
 
 В эхотаге уж чего-чего, а возможностей по переопределению больше.
 Hапример, можешь ты в C++ переопределить [] так, чтобы он не добавлял
 элемент к контейнеру, если его там нет?  Без специальной обработки этого
 в типе покладаемого туда элемента?
 
 Это грабли, по которым я с полгода назад потоптался - вместо перлового
 
 if (defined(my $el = $container{$key}))
 
 приходится писать три довольно длинных строки - объявить итератор,
 вызвать find(), вызвать end(), сравнить.  Можно, конечно, написать
 функцию, которая будет все это дело оборачивать, и даже объявить ее
 inline.  Hо встроенное в язык обращение к элементу контейнера
 безвариантно пойдет лесом.  В итоге остается только найти тот набор
 макросов, который, (по слухам, он существует) преобразует C++ в лисп, и
 писать сразу в лисповом синтаксисе - при таком раскладе он будет
 удобнее.
 
 Я в итоге (у меня была не просто эта задача) сделал класс, содержащий
 этот контейнер, в котором [] возвращает указатель на элемент.  Hо у меня
 была более узкая задача и дополнительные требования (межнитевые
 блокировки), так что там овчинка выделенки стоила - класс все равно надо
 было делать.
 
 Главное же - это уже не STL, причем совсем.  Готовое средство не то
 чтобы совсем непригодно для решения задачи (поддержку структуры
 контейнера я все-таки ему оставил), но непригодно для написания
 программы.
 
  AG>>> Hе стоит забывать, что С(++) - это все же компилируемый язык, в
  AG>>> отличие от эхотага.
  AC>> Hе стоит забывать, что это является преимуществом в очень ограниченном
  AC>> круге задач.  И что в природе существуют не только C++ и эхотаг.  Есть и
  AC>> компилируемые языки высокого уровня.
 
  AG> Имеется в виду Java?  Хм...
 
 Жабу не пробовал.  Есть еще толпа функциональных.  Которые, кстати,
 можно при компиляции соптимизировать гораздо лучше.
 
  AG> Так какие выводы? С - язык только для закаленных профессионалов,
  AG> С++ - мертвый язык? :)
 
 C - язык для решения узкого круга задач закаленными профессионалами, C++
 - вредный.  Он, увы, не мертвый - писать на нем код сознательно учат.  И
 это - диверсия в масштабах планеты.
 
 -- 
 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/25606b0a6dd2f.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional