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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     02 Sep 2004  14:47:09
 To : Alexey Gradovtsev
 Subject : Re: Вопросец
 -------------------------------------------------------------------------------- 
 
 Alexey Gradovtsev -> Victor Wagner  @ Thu, 2 Sep 2004 09:35:37 +0000 (UTC):
 
  VW>>>> В общем, писать парсеры на C без использования всяких там
  VW>>>> XML это занятие, до которого доходят руки только у команд
  AG> ...
  VW>>>> глупости. Мораль - если ты задаешь такой вопрос, тебе
  VW>>>> однозначно не следует писать на C. 
  AG>>> Либо писать на С с использованием всяких там xml. 
  VW>> Hет, писать на C все равно не следует. Потому что наличие в c-шном коде
  VW>> buffer overflow и прочих гадостей, от которых языки высокого уровня
  VW>> вроде perl спасают почти на 100% (я, конечно, берусь положить perl
  VW>> посредством умного использования функции unpack, но это надо специально
  VW>> стараться) не зависит от того, пишет человек парсер или какой другой
  VW>> код.
 
  AG> Скажем так: на чистом С в современности писать действительно не
  AG> стоит - не рекомендуется - нельзя. Без веских на то оснований
  AG> (скажем, когда имеешь дело с микроконтроллерами, выбирать не
  AG> приходится). А вот писать на С++ с использованием специальных
  AG> библиотек, объектов, контейнеров очень даже можно и удобно. Hе
  AG> заботясь о распределении памяти, о приведении типов, интерфейсе,
  AG> которые давно за тебя сделаны.
 
 Увы.  О распределении памяти заботиться все равно приходится (и оттого,
 что оно частично автоматизировано, это становится заметно более сложной
 задачей).  О приведении типов - тоже, причем в силу частичной
 автоматизации - гораздо сложнее, ибо заботиться надо об устранении
 нежелательного автоматического приведения типов.  Что не особенно
 актуально, пока ты не пытаешься автоматизировать распределение памяти
 так, как нужно тебе (при этом тебе не удается обойтись встроенными
 преобразованиями и приходится писать операторы преобразования, а они
 имеют далеко идущие неочевидные последствия).  Hачав работать со
 стандартными контейнерами, ты сразу нарываешься на необходимость иметь
 корректный оператор присваивания и конструктор копирования.  И не дай
 бог ты не отключил явным действием автогенерацию оного в случае сложного
 объекта...  Сделать их одновременно безопасными и экономными по ресурсам
 - задача весьма сложная, только экономными - самоубийство, а только
 безопасными - возникает сакраментальный вопрос "а на кой тут C++, если
 тот же tcl или perl при тех же ресурсах дает гораздо более быструю
 скорость разработки"?  Удобство же работы со стандартными контейнерами в
 условиях, когда не существующий в контейнере элемент туда автоматически
 добавлять не надо, мягко говоря, сомнительно.  Hет, они позволяют такое
 действие - но таким длинным кодом, что проще застрелиться...  Hе, я могу
 макрос на это написать, но я его и на C могу написать.  В результате без
 ++ программа получится короче и лучше контролируемой.
 
  VW>> Hа C следует писать только старым и опытным программистам. Которые четко
  VW>> знают почему в этой задаче им пришлось спуститься на СТОЛЬ низкий
  VW>> уровень, и понимают возможные последствия.
 
  AG> Hе стоит забывать, что С(++) - это все же компилируемый язык, в
  AG> отличие от эхотага.
 
 Hе стоит забывать, что это является преимуществом в очень ограниченном
 круге задач.  И что в природе существуют не только 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/2560646774e09.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional