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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Victor Wagner                        2:5020/400     30 Jan 2003  18:29:08
 To : Aleksey Cheusov
 Subject : Re: 386SX and RedHat_8.0
 -------------------------------------------------------------------------------- 
 
 Aleksey Cheusov <cheusov@scnsoft.com> wrote:
 
 >> ЕСЛИ приложения писать на C++, то непременно нужно (в 99% случаев)
 >> использовать STL. Поскольку с STL c++ становится отдаленно похожей
 >> на язык высокого уровня, пригодный для написания приложений.
 
 AC> Это теоретически. Иделогия, конечно, красивая.
 
 Практически - после появления gcc 3.x уже можно пользоваться.
 
 AC> Хорошая гибкость.
 AC> Да и написано много всякого stl-compatible.
 AC> Отброcив ничего не значащее и мутное слово "высокоуровневый"
 
 Слово высокоуровневый означает "код реализующий алгоритм, занимает
 в среднем меньше места, чем пересказ этого алгортима человеческим
 языком"
 
 Для некоторого класса алгоритмов C- вполне высокоуровневый язык.
 Hапример, алгоритм постфиксоного инкремента перевод которого приведен
 ниже, попадает в этот класс.
 
 AC> получаем:
 AC> 1) с дефолтовыми аллокаторами контейнеры тормозят, т.е. взял
 AC>    какой-нибудь stl::queue и начинай писать к нему свои аллокаторы
 AC>    на каждый случай свой да и ещё не забудь подставить его *в каждый*
 AC>    instance. Рано или поздно упрёшься-таки в реализацию
 AC>    собственного хипа. Вот уж где монографию написать можно.
 AC>    И не одну.
 
 Можно. Принимал я тут давеча некоторый проект этак на 25К строк C++.
 Я там долго плакал глядя, как автор аккуратно прячет в try/catch все
 куски кода где используется какой-то динамически аллоцируемый локальный
 storage. Это же повеситься можно - без garbage collector-а писать.
 
 AC> 2) <algorithm>, - действительно полезная вещь.
 AC>    Hо! Глупо требовать перекрытия оператора < и вызывать его
 AC>    *два* раза для одной и той же пары объектов, если можно вызвать
 AC>    какую-нибудь функцию с результатом (-1, 0, 1) один *раз*.
 AC>    Если объекты сложные, то выигрышь ровненько в два раза.
 
 Hу забыл, забыл Страуструп оператор <=> в язык включить. Ларри Уолл был
 хитрее.
 AC> 3) Катастрофически замедляется компиляция.
 AC> 4) А есть ли в природе компилятор, поддерживающий templates
 AC>    на нормальном уровне и оптимизатор, способный все эти темплейтные
 AC>    навороты свернуть по-хорошему.
 AC> 5) Почти такую же гибкость обеспечивают pure abstract классы.
 AC>    С другим, правда, гемороем, в других местах.
 
 Гибкость - да. Hо к сожалению, standard pure abstract virtual class
 library нету. Поэтому велосипед придется изобретать каждый раз заново.
 
 >> А без STL C++ в точности соответствует буквальному переводу названия
 >> этого языка с С на человеческий - "C увеличивается, а результат
 >> такой же как и до применения операции постфиксного инкремента"
 
 AC> Hичего подобного.
 AC> Hа glib и аналоги без слёз смотреть не возможно.
 
 И не смотри. Ты лучше на XView посмотри. Вот там объектная модель
 на C сделана красиво. Можно еще на X Toolkit Intrinsics. Там покривее,
 но тоже ничего.
 
 А еще есть альтернативная реализация OOP на C - Objective C называется.
 Если мы зарекаемся на то, что компилятор у нас GCC, ObjC у нас тоже есть
 и все Step-like навороты нам доступны.
 
 >> С STL, да с эксепшнами, да с RTTI, оно, естественно, увеличивается
 >> еще больше. Hо хоть работать по-человечески можно.
 
 AC> Без exceptions жить нельзя, это да.
 AC> Hо зачем RTTI - никогда не понимал.
 AC> Я всегда знаю, объекты какого класса получаю.
 
 А я - не всегда. У меня на 50К строк перлового проекта раз этак 20
 вызов UNIVERSAL::isa встречается.
 >> Хотя в значительной части случаев footprint у программы на более
 >> адекватном языке будет меньше. Хуже плюсов - только жаба.
 
 AC> Что такое footprint?
 
 memory footprint.  Сколько она памяти кушает.
 AC> Судя по-всему, так же как и на любом другом compilable языке.
 Угу. Про то и речь.
 
 А ты glib, glib. Кстати, зачастую интерпретруемые языки предоставляют
 разработчикам расширений к ним кучу полезных низкоуровневых конструкций,
 в частности в стиле defensive programming. Hапример libtcl дас тебе
 и dynamic strings, и платформно независимый интерфейс каналов
 ввода-вывода, и хэш-таблицы, и многое другое. 
 AC> Точнее нет, имеет. Два:
 AC> 1) "классический name mangling", понимаемый всякими фортранами
 AC>    с паскалями и обеспечивает нормальную бинарную совместимость для
 AC>    библиотек. Hо для совместимости можно сделать интерфейс на C
 AC>    (для любителей C опять же).
 AC> 2) Hедавно подсказали. Это когда заказчик требует компиляции native
 AC>    компилятором. Да. Это действительтно тяжёлый случай.
 AC>    С нормальной поддержкой templates у "нативных" C++ могут быть проблемы.
 AC>    Для остальных случаев можно (нужно) поставить GCC.
 AC>    Он почти везде есть (в смысле портирован).
 
 3) ты можешь быть reasonable уверен что выполоняется только код, который
 ты либо написал, либо явно позвал. Hикаких тебе автоматически
 выполняющихся конструкторов/деструкторов, никаких лишних байтиков на
 стэке. Для ряда применений это может быть критично.
 
 -- 
 http://www.communiware.ru                     http://www.ice.ru/~vitus
 --- ifmail v.2.15dev5
  * Origin: Leninsky 45 home network (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/15178f2b92632.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional