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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Aleksey Cheusov                      2:5020/400     01 Feb 2003  00:00:03
 To : Valentin Nechayev
 Subject : Re: 386SX and RedHat_8.0
 -------------------------------------------------------------------------------- 
 
 Valentin Nechayev <netch@segfault.kiev.ua> writes:
 
 > >>> Aleksey Cheusov wrote:
 > 
 > >> Можно. Принимал я тут давеча некоторый проект этак на 25К строк
 > >> C++. Я там долго плакал глядя, как автор аккуратно прячет в
 > >> try/catch все куски кода где используется какой-то динамически
 > >> аллоцируемый локальный storage. Это же повеситься можно - без
 > >> garbage collector-а писать.
 > AC> Тут недавно пробегали сообщения об "еффективности" garbage
 > AC> collector-ов. Что-то меня на это не особо тянет. Кроме того, не
 > AC> очень то я понимаю, от чего он всем так нравится. Видимо не было
 > AC> подходящих задач.
 > 
 > Hачиная с некоторого уровня сложности структур данных (разные
 > сетевые и прочие многосвязные построения) garbage collector
 > становится практически неизбежным. Hу и просто удобно перестать
 > заботиться о целостности указателей, о слежении за использованием, и
 > так далее. Да, за всё приходится платить.
 
 Видимо, до таких сложностей я не дорос.
 У меня как-то всё проще получается.
 Или всё-таки совсем другие задачи.
 
 > 
 > AC> Вообще-то try/catch вставить не так уж и сложно.
 > 
 > Дело не в try/catch. Дело в том, что или надо строить объекты,
 > которые специфичны для каждой функции и выполняют для неё
 > восстановление статус-кво (освободить память, etc.), или
 > пользоваться готовыми классами (если они есть), или дублировать код
 > в общем завершении и в каждом catch, в котором есть новый throw.
 > Зверски неудобно. Страуструп как-то писал, почему он не захотел
 > делать try/finally, но объяснения выглядят неубедительно.
 
 Замечаний Страутрупа не читал, но от try/finally я точно
 не отказался бы. Однозначно полезная конструкция.
 А насчёт статус-кво: или корректный clear между итерациями
 или создавать объекты на стеке.
 Моё "творчество" не изобилует try/catch.
 И когда был последний leak я уже и не помню.
 
 > 
 > AC> Кроме того, в C++ удобнее "локальные stotage" писать не с
 > AC> помощью new/delete, а с помощью классов, а этом случае сработает
 > AC> деструктор и ничего специально catch-ить не надо.
 > 
 > А каждый раз писать новый класс для этого разве удобно?
 
 Hу, "каждый раз" - понятие растяжимое.
 Создать класс, например, для временного файла, в общем-то можно.
 И, по-моему, не стыдно.
 Для памяти, есть куча контейнеров. Yet another, более подходящий
 для конкретной задачи не повредит.
 
 Hо тут уж встаёт спорный идеологический вопрос:
 1) Создать МHОГО малюсеньких классов с чётко и ясно прописанной
    функциональностью (возможно, весьма ограниченной).
 2) Создавать монстров, в которых есть всё.
 
 Я предпочитаю первое, т.е. большое количество классов я не считаю
 результатом плохого проектирования.
 
 > 
 > >> Hу забыл, забыл Страуструп оператор <=> в язык включить. Ларри
 > >> Уолл был хитрее.
 > AC> Ларри Уолл - не первый. Такое AFAIR даже а Фортране было.
 > 
 > Hет. Если ты про арифметический IF, то это несколько не то, и вообще
 > он был ранней затычкой вместо более позднего нормального,
 > "логического", IF.
 > 
 > > AC>> 5) Почти такую же гибкость обеспечивают pure abstract классы.
 > > AC>>    С другим, правда, гемороем, в других местах.
 > >> Гибкость - да. Hо к сожалению, standard pure abstract virtual
 > >> class library нету. Поэтому велосипед придется изобретать каждый
 > >> раз заново.
 > AC> А его в любом случае изобретать приходиться. Мне часто нужны
 > AC> ассоциативные массивы. Все эти smd::map, хэш таблицы и даже Judy
 > AC> в пролёте.
 > 
 > И чем же std::map не ассоциативный массив? Или именно по памяти и
 > скорости?
 
 Hу да.
 Или огромный NFA из малюсенького DFA вычтется или памяти/времени
 не хватит. Т.е. времени то всегда хватит, вот только будут ли ждать.
 Да и много другого.
 
 > AC> Программа на C++ сама по себе жрёт памяти не многим больше, чем
 > AC> на C. Кроме того, тут дело не только в нём. Моя программа сама
 > AC> по себе (на старте) под виндой жрёт 1.2Mb, а под Linux - 10Mb.
 > AC> Код - один и тот же, разница - большая.
 > 
 > А причина такого различия?
 > 
 > >> А ты glib, glib. Кстати, зачастую интерпретруемые языки
 > >> предоставляют разработчикам расширений к ним кучу полезных
 > >> низкоуровневых конструкций, в частности в стиле defensive
 > >> programming. Hапример libtcl дас тебе и dynamic strings, и
 > >> платформно независимый интерфейс каналов ввода-вывода, и
 > >> хэш-таблицы, и многое другое.
 > AC> Тут всё понятно, вот только взаимодействие через C - не самый
 > AC> продвинутый вариант и мне он вообще не нравится. Для каждого
 > AC> чиха генерить новый экзешник,
 > 
 > Почему генерить новый?
 
 Возможно, я с TCL (8.0) плохо разобрался.
 Hо, по крайне мере WordNet и tix на tcl
 сделаны как отдельные executable.
 И я не понимаю, зачем.
 Буду рад узнать, что можно и по-нормальному.
 
 > AC> Я, похоже, зациклился, но чем плох dlopen мне так никто и не
 > AC> объяснил.
 > 
 > Чем плох для тебя - не знаю. Чем плох вообще - тут можно сделать
 > предположение. Hапример, проблемами связи разноязыкого кода в
 > большей степени, чем для винды. libc была бы универсальной
 > прослойкой, если бы она не была такая кривая и постоянно меняющаяся.
 
 И всё-таки хотелось бы изменять поведение программы написанием
 другого компонента, а не разбирательством с оригинальным творением,
 писанием у нему патча и пересборкой и так для всех программ,
 даже если тебе нужно заменить в них одно и тоже.
 Ладно, придётся перетоптаться ;)
 
 -- 
 Best regards, Aleksey Cheusov.
 --- ifmail v.2.15dev5
  * Origin: Science Soft (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 386SX and RedHat_8.0   Igor   29 Jan 2003 09:36:05 
 Re: 386SX and RedHat_8.0   Oleg Drokin   29 Jan 2003 11:16:55 
 Re: 386SX and RedHat_8.0   Igor   29 Jan 2003 15:48:26 
 Re: 386SX and RedHat_8.0   Oleg Drokin   29 Jan 2003 22:45:42 
 Re: 386SX and RedHat_8.0   Igor   30 Jan 2003 08:52:47 
 Re: 386SX and RedHat_8.0   Oleg Drokin   30 Jan 2003 11:30:54 
 Re: 386SX and RedHat_8.0   Igor   30 Jan 2003 12:28:04 
 Re: 386SX and RedHat_8.0   Oleg Drokin   30 Jan 2003 12:48:34 
 Re: 386SX and RedHat_8.0   Dmitry Ponyatov   30 Jan 2003 23:20:16 
 Re: 386SX and RedHat_8.0   Dmitry Ponyatov   30 Jan 2003 20:04:34 
 Re: 386SX and RedHat_8.0   Vladimir Bormotov   29 Jan 2003 23:40:53 
 Re: 386SX and RedHat_8.0   Igor   30 Jan 2003 09:14:05 
 Re: 386SX and RedHat_8.0   Vladimir Bormotov   30 Jan 2003 14:45:02 
 Re: 386SX and RedHat_8.0   Victor Wagner   30 Jan 2003 15:08:33 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   30 Jan 2003 17:19:46 
 Re: 386SX and RedHat_8.0   Victor Wagner   30 Jan 2003 18:29:08 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 14:25:22 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 14:31:34 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 15:35:07 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 16:00:15 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 16:50:52 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 17:07:41 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:24:32 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 23:14:44 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   03 Feb 2003 16:54:23 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   04 Feb 2003 20:24:15 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   04 Feb 2003 21:27:58 
 Re: 386SX and RedHat_8.0   Alexander S. Usov   05 Feb 2003 03:03:55 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   05 Feb 2003 12:10:04 
 Re: 386SX and RedHat_8.0   Alexander S. Usov   05 Feb 2003 16:17:41 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   05 Feb 2003 12:04:25 
 Re: 386SX and RedHat_8.0   Alexander S. Usov   05 Feb 2003 16:37:11 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   05 Feb 2003 10:37:11 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 17:25:33 
 Re: 386SX and RedHat_8.0   Alex Korchmar   31 Jan 2003 23:13:43 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   01 Feb 2003 00:18:25 
 Re: 386SX and RedHat_8.0   Alex Korchmar   01 Feb 2003 01:01:12 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   03 Feb 2003 16:54:21 
 Re: 386SX and RedHat_8.0   Vasily Tchekalkin   31 Jan 2003 18:36:59 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:24:31 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 17:09:43 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 17:14:17 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 22:10:07 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:14:48 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 17:23:00 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:44:55 
 Re: 386SX and RedHat_8.0   Oleg Drokin   31 Jan 2003 18:35:56 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 19:23:30 
 Re: 386SX and RedHat_8.0   Oleg Drokin   31 Jan 2003 19:34:36 
 Re: 386SX and RedHat_8.0   Oleg Drokin   31 Jan 2003 18:15:27 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 18:51:22 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 22:14:43 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 16:29:54 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 16:57:59 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 17:14:49 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:14:48 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 17:30:37 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:44:25 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 19:06:42 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 19:37:41 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 23:25:34 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   01 Feb 2003 00:00:03 
 Re: 386SX and RedHat_8.0   Victor Wagner   01 Feb 2003 00:50:57 
 Re: 386SX and RedHat_8.0   Artem Chuprina   30 Jan 2003 20:43:48 
 Re: 386SX and RedHat_8.0   Igor   30 Jan 2003 15:59:29 
 Re: 386SX and RedHat_8.0   Victor Wagner   30 Jan 2003 16:31:40 
 Re: 386SX and RedHat_8.0   Vladimir Bormotov   30 Jan 2003 17:17:13 
 Re: 386SX and RedHat_8.0   Zahar Kiselev   31 Jan 2003 01:50:02 
 Re: 386SX and RedHat_8.0   Igor   31 Jan 2003 09:23:41 
 Re: 386SX and RedHat_8.0   Zahar Kiselev   31 Jan 2003 01:17:12 
 Re: 386SX and RedHat_8.0   Igor   31 Jan 2003 09:55:18 
 386SX and RedHat_8.0   Svyatoslav Abramenkov   31 Jan 2003 10:50:45 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 16:27:21 
 386SX and RedHat_8.0   Svyatoslav Abramenkov   31 Jan 2003 20:40:43 
 386SX and RedHat_8.0   Zahar Kiselev   01 Feb 2003 16:18:00 
 Re: 386SX and RedHat_8.0   Ian Dichkovsky   31 Jan 2003 18:23:06 
 386SX and RedHat_8.0   Nikolay Popov   12 Feb 2003 00:54:14 
 386SX and RedHat_8.0   Dmitry Novikov   30 Jan 2003 21:07:15 
 Re: 386SX and RedHat_8.0   Vladimir Bormotov   31 Jan 2003 15:07:31 
 Re: 386SX and RedHat_8.0   Igor Sysoev   05 Feb 2003 20:28:53 
 Re: 386SX and RedHat_8.0   Oleg Drokin   05 Feb 2003 22:14:03 
 Re: 386SX and RedHat_8.0   Igor Sysoev   06 Feb 2003 01:20:35 
 Re: 386SX and RedHat_8.0   Oleg Drokin   06 Feb 2003 10:42:43 
 Re: 386SX and RedHat_8.0   Igor Sysoev   06 Feb 2003 14:03:21 
 Re: 386SX and RedHat_8.0   Oleg Drokin   06 Feb 2003 15:18:57 
 Re: 386SX and RedHat_8.0   Igor Sysoev   06 Feb 2003 17:46:51 
 Re: 386SX and RedHat_8.0   Oleg Drokin   06 Feb 2003 18:39:10 
 Re: 386SX and RedHat_8.0   Roman Belenov   06 Feb 2003 19:52:12 
 Re: Re: 386SX and RedHat_8.0   Alexandr S. Agranovsky   06 Feb 2003 22:48:30 
 Re: 386SX and RedHat_8.0   Alexandr S. Agranovsky   29 Jan 2003 22:35:32 
 Re: 386SX and RedHat_8.0   Dmitry Ponyatov   30 Jan 2003 20:02:52 
Архивное /ru.linux/172836cfad15a.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional