Re[10]: За что я не люблю С++
От: criosray  
Дата: 27.05.09 22:15
Оценка:
Здравствуйте, NikeByNike, Вы писали:

D>>>Сейчас — в 2009м — это уже чаще всего неправда, но далеко не всегда — и не потому что С++ такой хороший, а потому что универсальной замены как не было, так и нет — что вот лично для меня — печаль.


C>>Начнем с того, что С++ не является универсальным языком. На этом и закончим.


NBN>Универсальным не является, но является (со своей сопутствующей поддержкой) наиболее универсальным среди распространённых.


Поделитесь критериями универсальности?
Re[24]: За что я не люблю С++
От: criosray  
Дата: 27.05.09 22:17
Оценка:
Здравствуйте, NikeByNike, Вы писали:


C>>Во-первых, не ясно при чем тут это.

C>>Во-вторых, это вам требуется несколько часов (максимум день???) на то, что в дотнет делается за 5 минут? Да уж, нашли повод для гордости.

NBN>В реальной жизни примерно столько же, хотя конечно всёравно проще (про пятиминутные исправления обычно говорят люди с 1-2 годами опыта реальной работы и ещё не умеющие отвечать за базар). Главный тормоз в этом не само подключение, а формализация процесса.

Да уж, задача невиданной сложности. Несколько часов, а то и день, чтоб формализовать... Похоже, что и среди плюсистов есть индусокодеры...
NBN>И я встрял исключительно чтобы показать тебе ещё один твой пробел в знаниях.
В итоге показали пробел в своих собственных знаниях. Так держать.


NBN>P.S.

NBN>Кончай фанатствовать
Начните с себя.
Re[19]: За что я не люблю С++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 27.05.09 22:21
Оценка:
Здравствуйте, criosray, Вы писали:

C>В С++ не возможно генерировать и исполнять произвольный код в рантайм.


Это на каком заборе так написано? Или опять — в википедии?

C>В лучшем случае сможете распарсить в структуру словарного типа, но это решение для бедных и не является десериализацией.


"Структура словарного типа" — это что такое? Какова связь "исполнения произвольного кода" с "десериализацией"?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[11]: За что я не люблю С++
От: NikeByNike Россия  
Дата: 27.05.09 22:27
Оценка:
Здравствуйте, criosray, Вы писали:

C>>>Начнем с того, что С++ не является универсальным языком. На этом и закончим.


NBN>>Универсальным не является, но является (со своей сопутствующей поддержкой) наиболее универсальным среди распространённых.


C>Поделитесь критериями универсальности?


А головкой подумать?
Нужно разобрать угил.
Re[25]: За что я не люблю С++
От: NikeByNike Россия  
Дата: 27.05.09 22:29
Оценка:
Здравствуйте, criosray, Вы писали:

Ты смешной Давно не наблюдал такой откровенной страусной тактики. Спасибо!
Нужно разобрать угил.
Re[20]: Подсчёт ссылок
От: Qbit86 Кипр
Дата: 28.05.09 00:55
Оценка: +3
Здравствуйте, COFF, Вы писали:

COF>Предположим, что у меня есть некий ресурс, пусть битмап, есть произвольное количество векторов std::vector< boost::shared_ptr<bitmap> > которые содержат пересекающиеся множества битмапов. Например, я делаю какие-то сложные вычисления над графическими примитивами. Теперь, мне нужно очистить один из векторов, я делаю v.clear(), при этом все битмапы, на которые нет ссылок в других векторах тут же должны быть тут же освобождены, так как битмапов много и я не могу их держать в памяти произвольное время.


C++ тут не при чём. Тут весь цимес в библиотечном классе shared_ptr.

COF>Как это сделать на C#?


Как сделать на C# что? Подсчёт ссылок а-ля shared_ptr? :) Он хрестоматийно реализуется в любом современном языке. В C# аналогом плюсового деструктора является метод Dispose() (а не финализатор, как думают некоторые), в нём надо декрементировать счётчик, а при его обнулении — освобождать неуправляемый ресурс. Если идиома RAII реализована последовательно, то 1) освобождение неуправляемых ресурсов будет строго детерменированным (а не по велению сборщика), 2) сборка самого экземпляра твоего ResourceWrapper'а будет дешёвой — просто освобождение памяти, в очерердь на финализацию он не попадёт (если логика по освобождению ресурса уже была выполнена, с последующим вызовом GC.SuppressFinalize()).
Глаза у меня добрые, но рубашка — смирительная!
Re[26]: За что я не люблю С++
От: criosray  
Дата: 28.05.09 01:00
Оценка: -2
Здравствуйте, NikeByNike, Вы писали:


NBN>Ты смешной Давно не наблюдал такой откровенной страусной тактики. Спасибо!


Поставьте зеркало рядом с монитором. Будете радоваться каждой минуте.
Re[20]: За что я не люблю С++
От: criosray  
Дата: 28.05.09 01:03
Оценка: :)
Здравствуйте, Геннадий Васильев, Вы писали:

C>>В С++ не возможно генерировать и исполнять произвольный код в рантайм.


ГВ>Это на каком заборе так написано? Или опять — в википедии?


Это на каком заборе написано что можно?

C>>В лучшем случае сможете распарсить в структуру словарного типа, но это решение для бедных и не является десериализацией.


ГВ>"Структура словарного типа" — это что такое?


Почитайте в википедии или на том заборе, где Вы вычитали, что в С++ есть возможность генерации машинного кода на лету.
Re[12]: За что я не люблю С++
От: criosray  
Дата: 28.05.09 01:05
Оценка: +1
Здравствуйте, NikeByNike, Вы писали:

C>>>>Начнем с того, что С++ не является универсальным языком. На этом и закончим.


NBN>>>Универсальным не является, но является (со своей сопутствующей поддержкой) наиболее универсальным среди распространённых.


C>>Поделитесь критериями универсальности?


NBN>А головкой подумать?


Если подумать головкой, то С++ по ряду критериев более далек от универсальности чем, например, Java.
Re[3]: За что я не люблю С++
От: Sorantis Швеция  
Дата: 28.05.09 01:38
Оценка:
Здравствуйте, dds777, Вы писали:

D>Здравствуйте, Sorantis, Вы писали:


S>>Сложилось ощущение, что автор долго искал баг, дооолго искал, но не нашел и свалил все на язык.


D>Вы это зря, автор довольно известный и уважаемый. Лично я думаю, что вся проблема в том, что он имеет удовольствие (впрочем как и я) писать под мак на Objective-C, поэтому когда в проекте встречаются эти два языка (такое частенько бывает), сложно себя удержать от ругани C++


А где тут видно что я посягаю на известность или респектабельность автора?
Видно что человек, извините, мудохался довольно долго, а потом не выдержал и написал эту статью.
И по своей(наверно) эмоциональности привел, скажем, не самые убедительные аргументы.

Я с Objective-C дело никогда не имел, а С++ ругал в случаях когда отлавливал баг. А потом ругал себя за свое ламерство.
Берясь за С++ не стоит ожидать сахара и шоколада.
Я на С++ фактически уже не пишу (недавно только пришлось разбирать один метод программирования используя С++сную библиотеку)
Пишу на Шарпах, Джаве, и прочих "не трушных" языках. И что-то не могу припомнить, что я ругал С++ за его недостатки кодя на управляемых языках.
Вот джаву ругал, да, было дело, долго ругал
As long as there is life, there is hope
Re[21]: За что я не люблю С++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 28.05.09 03:03
Оценка:
Здравствуйте, criosray, Вы писали:

C>>>В С++ не возможно генерировать и исполнять произвольный код в рантайм.

ГВ>>Это на каком заборе так написано? Или опять — в википедии?
C>Это на каком заборе написано что можно?

Э-э-э... У тебя что-то не то с логикой. Я спрашивал — где написан тот запрет, о котором ты упомянул? Тут ведь вот какое свинство, C++ подразумевает возможность генерировать и исполнять машинный код в рантайме. Знаешь, это настолько общеизвестная возможность, что некоторые горячие головы C++ за это даже ругают. Да-да!

C>>>В лучшем случае сможете распарсить в структуру словарного типа, но это решение для бедных и не является десериализацией.

ГВ>>"Структура словарного типа" — это что такое?
C>Почитайте в википедии или на том заборе, где Вы вычитали, что в С++ есть возможность генерации машинного кода на лету.

Так что такое "структура словарного типа"? Ты можешь объяснить или нет?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[25]: За что я не люблю С++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 28.05.09 03:17
Оценка:
Здравствуйте, Sinclair, Вы писали:

ГВ>>Не совсем тебя понял — ты имеешь в виду, что на плюсах непременно нужны change tracking, lazy loading и identity map, или что даже самый минимум без этих фич, на плюсах не сделаешь?

S>Второе. Если в новом 0x не сделают expression trees, то всё это будет практически невозможно.

Мне доводилось плотно возиться с полновесным отображением, и все эти фичи вводились сразу — и отслеживание изменений, и ленивая подгрузка, и отображение ключей. Всё это на C++. Единственная характерная черта, в прочем, как это свойственно для C++, так это то, что классы, отображаемые на БД записываются примерно так (ща раскудахчутся, чую):

class Department;

class Personnel : public DBClass {
  MYMACRO_KEY(int, m_Key)
  MYMACRO(string, m_Name)
  MYMACRO(string, m_Family)
  MYMACRO_REFS(Department)
};


Деталей сейчас уже не помню, но идея, думаю, понятна.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[26]: За что я не люблю С++
От: Sinclair Россия https://github.com/evilguest/
Дата: 28.05.09 05:47
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Деталей сейчас уже не помню, но идея, думаю, понятна.

Конечно понятна. Непонятно, каким образом собираются работать простейшие запросы. Само отображение — это натурально прошлый век, конец девяностых.
Я в своё время пытался придумать такую штуку; в итоге кончилось ничем — на макросах такое не залудишь, потому что нужно два разных класса — один для данных, другой для метаданных. Ну, разве что компилять один хидер дважды с разными дефайнами, а это уже плохо дружит со всякими прекомпиляциями и всё такое. И всё равно не получается сделать полноценные запросы.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: За что я не люблю С++
От: Antikrot  
Дата: 28.05.09 06:26
Оценка: +1 -1
Здравствуйте, criosray, Вы писали:

C>>>Тем более, что в автобилд встроен fxcop, энфорсящий вызов Dispose для объектов, реализующих IDisposable.

A>>вот это всем костылям костыль. так с языком чуть ли не что угодно сделать можно, не только проперти в плюсах приделать

C>Какой еще костыль? Вы хоть поняли какую глупость сморозили?

костыль-костыль. как еще назвать дополнительное приложение, встроенное в билд-процесс и исправляющее [потенциальные] ошибки программиста? ведь в стандарте языка-то его нет
получается, что использование препроцессора в QT — это костыль и проблемы C++, а использование постпроцессора в C# — это так и надо?

C>Сходите чтоли почитайте.. http://msdn.microsoft.com/en-us/library/bb429476.aspx

ну, в отличии от некоторых почитателей отдельных ОС/браузеров тут, я таки сначала прочитал
Re[6]: За что я не люблю С++
От: MxKazan Португалия  
Дата: 28.05.09 06:57
Оценка:
Здравствуйте, Antikrot, Вы писали:

A>Здравствуйте, criosray, Вы писали:

C>>>>Тем более, что в автобилд встроен fxcop, энфорсящий вызов Dispose для объектов, реализующих IDisposable.
A>>>вот это всем костылям костыль. так с языком чуть ли не что угодно сделать можно, не только проперти в плюсах приделать

C>>Какой еще костыль? Вы хоть поняли какую глупость сморозили?

A>костыль-костыль. как еще назвать дополнительное приложение, встроенное в билд-процесс и исправляющее [потенциальные] ошибки программиста? ведь в стандарте языка-то его нет
A>получается, что использование препроцессора в QT — это костыль и проблемы C++, а использование постпроцессора в C# — это так и надо?
Собстенно да, вот с этим я полностью согласен. С тем, что данная фича FxCop скорее зло, чем благо, и в пример ее лучше не приводить
Re[21]: Подсчёт ссылок
От: COFF  
Дата: 28.05.09 07:29
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Как сделать на C# что? Подсчёт ссылок а-ля shared_ptr? :) Он хрестоматийно реализуется в любом современном языке. В C# аналогом плюсового деструктора является метод Dispose() (а не финализатор, как думают некоторые), в нём надо декрементировать счётчик, а при его обнулении — освобождать неуправляемый ресурс.


Хм, а где его надо инкрементировать?
Re[22]: За что я не люблю С++
От: Mamut Швеция http://dmitriid.com
Дата: 28.05.09 07:43
Оценка:
ГВ> M>Угу. Вспоминатся Qt, где подобное реализовано для событий. Приходится препроцессор отдельный прогонять. А как только где-то что-то навернется, ни один дебаггер не спасет

ГВ> Угу, только в данном случае под PROPERTY скрывается тривиальное упрощение синтаксиса объявления инстанцированного шаблонного типа и соответствующей переменной-члена.


Если чо, до ошибки все равно не докопаться

ГВ> Никаких вывертов. Я сам противник того, чтобы прятать под макросами какую-нибудь суровую магию. Лучше уж лишние пять строк написать, если что.


Лучше, если эти пять строк уже встроены в язык
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[27]: За что я не люблю С++
От: COFF  
Дата: 28.05.09 07:53
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Я в своё время пытался придумать такую штуку; в итоге кончилось ничем — на макросах такое не залудишь, потому что нужно два разных класса — один для данных, другой для метаданных. Ну, разве что компилять один хидер дважды с разными дефайнами, а это уже плохо дружит со всякими прекомпиляциями и всё такое. И всё равно не получается сделать полноценные запросы.


Ну, зато нам не надо фреймворк за собой тащить :) Вообще, если серьезно, то я бы сделал что-то типа IDL, но для описания не интерфейсов, а метаданных, потом это дело компилится в C++ код, создаются базовые классы с данными, от которых нужно наследоваться, плюс классы с метаданными. С другой стороны, если такие штуки действительно нужны в программе на C++, то тут уже можно подумать о яве или .нет, правда не везде они есть или работают удовлетворительно.
Re[22]: За что я не люблю С++
От: criosray  
Дата: 28.05.09 08:33
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

C>>>>В С++ не возможно генерировать и исполнять произвольный код в рантайм.

ГВ>>>Это на каком заборе так написано? Или опять — в википедии?
C>>Это на каком заборе написано что можно?

ГВ>Э-э-э... У тебя что-то не то с логикой. Я спрашивал — где написан тот запрет, о котором ты упомянул? Тут ведь вот какое свинство, C++ подразумевает возможность генерировать и исполнять машинный код в рантайме. Знаешь, это настолько общеизвестная возможность, что некоторые горячие головы C++ за это даже ругают. Да-да!


Ну поделитесь с нами грешными примером кода, где программа на С++ на лету во время исполнения генерирует полностью новый класс с методами и полями по переданной ей из текстового файла спецификации.

C>>>>В лучшем случае сможете распарсить в структуру словарного типа, но это решение для бедных и не является десериализацией.

ГВ>>>"Структура словарного типа" — это что такое?
C>>Почитайте в википедии или на том заборе, где Вы вычитали, что в С++ есть возможность генерации машинного кода на лету.

ГВ>Так что такое "структура словарного типа"? Ты можешь объяснить или нет?


Понятно. Дожились. Нынче программисты даже таких базовых вещей не знают. Тьфу.
Re[6]: За что я не люблю С++
От: criosray  
Дата: 28.05.09 08:46
Оценка:
Здравствуйте, Antikrot, Вы писали:

A>Здравствуйте, criosray, Вы писали:


C>>>>Тем более, что в автобилд встроен fxcop, энфорсящий вызов Dispose для объектов, реализующих IDisposable.

A>>>вот это всем костылям костыль. так с языком чуть ли не что угодно сделать можно, не только проперти в плюсах приделать

C>>Какой еще костыль? Вы хоть поняли какую глупость сморозили?

A>костыль-костыль. как еще назвать дополнительное приложение, встроенное в билд-процесс и исправляющее [потенциальные] ошибки программиста?
fxcop к Вашему сведенью ничего не исправляет. fxcop проверяет сборку на соответствие определенному набору правил и выдает предупреждения в тех местах, где таковые были нарушены. Для С++ ничего и близко подобного нету.

A>ведь в стандарте языка-то его нет

Чего нет в стандарте языка?

A>получается, что использование препроцессора в QT — это костыль и проблемы C++, а использование постпроцессора в C# — это так и надо?

Понятно. Ссылку Вы так и не прочитали. fxcop не является постпроцессором. Садитесь два.

C>>Сходите чтоли почитайте.. http://msdn.microsoft.com/en-us/library/bb429476.aspx

A>ну, в отличии от некоторых почитателей отдельных ОС/браузеров тут, я таки сначала прочитал
Заметно как Вы прочитали.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.