Ненавижу
автоматически рождающиеся объекты типа блокирующего loading-on-demand. И синглтоны типа Майерса.
автоматически уничтожающиеся объекты под smart_ptr. И подсчёт ссылок.
автоматически регистрирующиеся получатели сообщений. И unbound рассылку сообщений.
автоматически создающиеся нетривиальные объекты со статическим storage duration. И вообще бурную деятельность до main().
мгновенность, нераспределенность, модель exception, lower-order programming.
Но научить правильно не всегда получается.
автоматически рождающиеся объекты типа блокирующего loading-on-demand. И синглтоны типа Майерса.
автоматически уничтожающиеся объекты под smart_ptr. И подсчёт ссылок.
автоматически регистрирующиеся получатели сообщений. И unbound рассылку сообщений.
автоматически создающиеся нетривиальные объекты со статическим storage duration. И вообще бурную деятельность до main().
мгновенность, нераспределенность, модель exception, lower-order programming.
Но научить правильно не всегда получается.
no subject
Date: May. 30th, 2006 11:21 (UTC)no subject
Date: May. 30th, 2006 11:33 (UTC)>автоматически рождающиеся объекты типа блокирующего loading-on-demand. И синглтоны типа Майерса.
Ну это из за корявости C++ все.
>автоматически уничтожающиеся объекты под smart_ptr. И подсчёт ссылок.
И GC туда же? :-) Больше всего достает во всем это то, что даже когда объект уже как бы формально сдох, все равно приходится иммитировать жизнь, так как, какая то св...ь все еще держит указатель и когда GC, или еще кто то решит, вызвать деструктор - никто не знает (я еще ни разу не применял деструктор в C#, зачем вообще нужна функция которая вызывается неизвестно когда?). Так как мне просто приходится работать с COM и без AddRef и Release ну просто никак, на современном C++ эффективный и ЧЕСТНЫЙ GC практически не возможен. То вот мои наивный мысли, счетчик ссылок останется, но только для пустышек :-).
no subject
Date: May. 30th, 2006 11:51 (UTC)Типа уровень загрузили/выгрузили, или чанк уровня застримили/выкинули ;)
Имхо, классический GC применим только для тривиальных ADT.
Уж лучше смотреть тогда сильно в сторону от C++ ;)
А у тебя еще и COM, бедный.
Прокси хорош только если HRESULT можно все время кривой возвращать, нет?
О! Я зыбыл написать, что ненавижу исключения, вот! :)
С++ - говноязык, однозначно :)
no subject
Date: May. 30th, 2006 11:53 (UTC)no subject
Date: May. 30th, 2006 12:05 (UTC)от тупости и неумения переносить жизнь из одного периода в другой.
но всё это поебень, конечно :)
no subject
Date: May. 30th, 2006 12:19 (UTC)Да, кривой :-) А какой ты хотел получить если объект cдох, окно и файл закрыли, связь оборвалась и началась война? :-) Сказать что все нормально? :-) Ваш запрос обрабатывается :-) На то он и HRESULT :-) + IErrorInfo :-)
>А у тебя еще и COM, бедный.
:-) Ну я ведь сказал что 75% кода генерю из XML, так как я ненавижу COM (хорошая идея, реализация - г.), и ненавижу ATL (неудачная попытка шаблонами спрятать корявость COM). ATL не использую и не буду (аргументы даже не рассматриваются). Ненавижу MIDL, больше чем COM и ATL.
>О! Я зыбыл написать, что ненавижу исключения, вот! :)
Я тоже, а есть альтернативы? :-) if(CheckLastError()) после каждой функции я еще больше ненавижу :-)
no subject
Date: May. 30th, 2006 12:19 (UTC)так, может быть, будет более понятно.
no subject
Date: May. 30th, 2006 12:33 (UTC)Я уже практически полюбил СНОБОЛ! :))
no subject
Date: May. 30th, 2006 12:37 (UTC)Расскажи подробно безграмотным :-)
>Имхо, классический GC применим только для тривиальных ADT.
ADT = abstract data types? В смысле runtime type info?
>Уж лучше смотреть тогда сильно в сторону от C++ ;)
Низя... На C# COM библиотеки писать ну никак низя...
no subject
Date: May. 30th, 2006 12:39 (UTC)no subject
Date: May. 30th, 2006 13:14 (UTC)О боги, от кого я это слышу
no subject
Date: May. 30th, 2006 14:02 (UTC):)
no subject
Date: May. 30th, 2006 14:27 (UTC)no subject
Date: May. 30th, 2006 15:59 (UTC)А можно по каждому пункту "как надо"? Без читерств типа YMMV ;)
модель exception
Date: May. 30th, 2006 16:17 (UTC)no subject
Date: May. 30th, 2006 16:39 (UTC)no subject
Date: May. 30th, 2006 16:44 (UTC)Это не жизнь до main. Это смерть до main. Кто му же еще и паебень.
no subject
Date: May. 30th, 2006 16:49 (UTC)no subject
Date: May. 30th, 2006 16:51 (UTC)no subject
Date: May. 30th, 2006 17:33 (UTC)no subject
Date: May. 30th, 2006 17:37 (UTC)А потом ты ребутишь PS2 IOP и вынужден все начинать сначала :)
Жызнь до main() - зло.
P.S. Мне стала нравится идеология MW, который инициализирует все только по явному запросу mwInit().
no subject
Date: May. 30th, 2006 17:51 (UTC)+1 (автоматически уничтожающиеся объекты под smart_ptr. И подсчёт ссылок).
Уж если объект умер,дайте ему умереть спокойно. Если кто-то хочет на него смотреть во время гибели, дайте ему извещение "оно умерло". Путь дольше этот кто-то сам что хочет, то и делает со своей ссылкой.
-1 (автоматически регистрирующиеся получатели сообщений. И unbound рассылку сообщений).
Руслан, а их-то за что? Короче, надеюсь, мы с с тобой еще подискутируем на эту тему. Хотя в unbound есть и свое зло :)
+1 (автоматически создающиеся нетривиальные объекты со статическим storage duration. И вообще бурную деятельность до main()).
См. пост выше.
мгновенность, нераспределенность, модель exception, lower-order programming.
Жопой чувствую, что надо тоже написать "+1" но тема нифига не раскрыта.
no subject
Date: May. 30th, 2006 17:54 (UTC)Ресурсы, когда они не могут быть заранее упакованы.
автоматически регистрирующиеся получатели сообщений. И unbound рассылку сообщений.
Обработка консольных команд, etc.
модель exception
А какие проблемы с исключениями, кроме вопросов эффективности конкретно в C++?
no subject
Date: May. 30th, 2006 19:56 (UTC)no subject
Date: May. 30th, 2006 21:04 (UTC)