За что я не люблю С++
От: dmitry_npi Россия  
Дата: 26.05.09 10:21
Оценка: 1 (1) -4 :))
Да нет, я-то сам его люблю. Случайно наткнулся на статью здесь.
Он не просто его, не любит, он его ненавидит. И других заразить пытается.
Вот, думаю, тролль Отличная приманка для священной войны.
Атмосферная музыка — www.aventuel.net
Re: За что я не люблю С++
От: vladpol Украина http://vlad-mislitel.livejournal.com/
Дата: 26.05.09 10:36
Оценка: +1
Здравствуйте, dmitry_npi, Вы писали:

_>Да нет, я-то сам его люблю. Случайно наткнулся на статью здесь.

_>Он не просто его, не любит, он его ненавидит. И других заразить пытается.
_>Вот, думаю, тролль Отличная приманка для священной войны.


Хм, пишу на C#, но к С++ всегда относился с "уважением". По-моему данная статья — это явное перекручивание фактов, с жутко предвзятой точки зрения
С уважением, Владислав Полищук
Re: За что я не люблю С++
От: LaptevVV Россия  
Дата: 26.05.09 11:00
Оценка: 3 (3) +4 -7 :))) :)
Здравствуйте, dmitry_npi, Вы писали:

_>Да нет, я-то сам его люблю. Случайно наткнулся на статью здесь.

_>Он не просто его, не любит, он его ненавидит. И других заразить пытается.
_>Вот, думаю, тролль Отличная приманка для священной войны.
Кстати, хорошая статья...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: За что я не люблю С++
От: 0x7be СССР  
Дата: 26.05.09 11:17
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>Кстати, хорошая статья...

Слишком эмоциональная.
Re: За что я не люблю С++
От: CreatorCray  
Дата: 26.05.09 11:24
Оценка: +4
Здравствуйте, dmitry_npi, Вы писали:

_>Да нет, я-то сам его люблю. Случайно наткнулся на статью здесь.

_>Он не просто его, не любит, он его ненавидит. И других заразить пытается.
Да придирается по-детски как то.
В сравнении с тутошними срачами "C++ vs *" — статья детский лепет и обидки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: За что я не люблю С++
От: dmitry_npi Россия  
Дата: 26.05.09 11:36
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Да придирается по-детски как то.

CC>В сравнении с тутошними срачами "C++ vs *" — статья детский лепет и обидки.

Это вы правы. Ну а вдруг, сторонники найдутся?
Атмосферная музыка — www.aventuel.net
Re: За что я не люблю С++
От: -MyXa- Россия  
Дата: 26.05.09 12:19
Оценка: 5 (2) +3 -3 :))
Здравствуйте, dmitry_npi, Вы писали:

_>Да нет, я-то сам его люблю. Случайно наткнулся на статью здесь.

_>Он не просто его, не любит, он его ненавидит. И других заразить пытается.
_>Вот, думаю, тролль Отличная приманка для священной войны.

[:]|||||[:]
Автор:
Дата: 30.03.07


Только в статье — всё не правда. А единственное, чем плох С++, так это тем, что с ним можно 1 раз 15 лет, а можно (как в случае с автором) 15 раз по 1-му году.

За 15 лет автор так и не осилил простые вещи:

1) Понятие метаинформации не то, что отсутствует, но в избытке (сомневаюсь, что он читал Александреску — скорее, он его под ножку стола подкладывал)
2) "Много ли Вы знаете простых и удобных persistence-библиотек". Ды, уж знаем, несколько. Можем и с сами написать — вон, на кывт-е есть статья про сериализацию в хмл, ещё другая есть, про которую все знают. "А вот ... в Python'е таких библиотек полно". Питон — программа на С, библиотека С-шная, а мужики-то не знают.
3) "А как дела у С++ с интеграцией со скриптовыми языками...". Boost.Python, CliPP, (шёпотом: COM) и др.
5) Про "addVector, subVector" я не понял. Про АТД я не понял тоже, Википедия говорит, что примеры АТД — это разные контейнеры, а отчего абстрагироваться в случае с Vector3D, я ума не приложу.
6) "Но все его чудеса относятся почему-то исключительно ко времени компиляции". Рассмешил до икоты. Если-б все эти чудеса никак не отражались на рантайме, то зачем-они тогда нужны?
7) "на каких компиляторах он весь код свой проверял, скорее всего вы ни одного из них просто не знаете". Ну, автор, может и не знает — я знаю. И чего? Короче, бла-бла.
8) "А как же исключения (exceptions), а как же RTII ?. За них то я всегда плачу всегда !!!". Караул! Заявляю — RTII в С++ никогда не было, и не предвидится следующие лет 10 точно. Мы тут, давеча, с коллегами драйвер писали, ядерный, для Виндовс — исключениями мы не смогли воспользоваться (не то, чтоб совсем не хотелось, но нужна ведь поддержка со стороны рантайма). STL и IOstreams чувствуют себя и без исключений хорошо.
9) "будет изменена лишь копия объекта, которая сразу же после этого будет разрушена. Здорово, а ?". А некоторые языки, например, не позвляют выразить тот факт, что переданный в метод объект не будет изменён методом, которые принимает этот объект в качестве параметра.
10) "А для всех остальных — это скорее игра случая". Ну, для тех, кто профайлер за 15 лет ни разу в руки не брал, да. Кстати, мне не встречались такие профессионалы (которым не нужен был бы профайлер), могущие на глаз найти _все_ проблемы с быстродействием.
11) "Откройте почти любую серьезную книгу (а не С++ за 24 часа) по С++ — о чем там написано ? Как НЕ НАДО делать". Откройте "Java(TM) Puzzlers: Traps, Pitfalls, and Corner Cases".
12) "Сравните объем описания языка С и С++ — разница в объеме во много раз". Ну, давайте сравним native для Явы (любители Явы — не бейте ногами, что использовал, про то и говорю) на JNI и аналог на С++ для Питона на Boost.Python.
13) "средств получить информацию о типе-параметре в языке просто нет" . Язык С++ на столько крут, что "в языке" это и не нужно — можно написать библиотеку. boost::is_abstract, is_arithmetic, is_array, is_base_and_derived, is_base_of, is_class, is_complex, is_compound, is_const...

После слов "Это конечно здорово, но вот как узнать является ли этот тип каким-либо из элементарных типов, указателем или ссылкой ? Является ли он const или нет ?" этого профана сил осиливать его поток у меня не осталось.
Если не поможет, будем действовать током... 600 Вольт (C)
Re[2]: За что я не люблю С++
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.09 12:27
Оценка:
MX> 1) Понятие метаинформации не то, что отсутствует, но в избытке (сомневаюсь, что он читал Александреску — скорее, он его под ножку стола подкладывал)
MX> 2) "Много ли Вы знаете простых и удобных persistence-библиотек". Ды, уж знаем, несколько. Можем и с сами написать — вон, на кывт-е есть статья про сериализацию в хмл, ещё другая есть, про которую все знают.


И что, прямо-таки можно легко сериализовать объект любой сложности?
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[3]: За что я не люблю С++
От: -MyXa- Россия  
Дата: 26.05.09 12:49
Оценка:
Здравствуйте, Mamut, Вы писали:

MX>> 1) Понятие метаинформации не то, что отсутствует, но в избытке (сомневаюсь, что он читал Александреску — скорее, он его под ножку стола подкладывал)

MX>> 2) "Много ли Вы знаете простых и удобных persistence-библиотек". Ды, уж знаем, несколько. Можем и с сами написать — вон, на кывт-е есть статья про сериализацию в хмл, ещё другая есть, про которую все знают.

M>И что, прямо-таки можно легко сериализовать объект любой сложности?


Например?
Если не поможет, будем действовать током... 600 Вольт (C)
Re[3]: За что я не люблю С++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 26.05.09 13:02
Оценка: +1 :)
Здравствуйте, Mamut, Вы писали:

M>И что, прямо-таки можно легко сериализовать объект любой сложности?


Сериализация почти всегда нужна в контексте решения задач наподобие построения протокола обмена данными и тут уже трудозатраты на дублирование названий членов структур уезжают в такой микроскопический масштаб, что о них и рассуждать не стоит.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[2]: За что я не люблю С++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 26.05.09 13:05
Оценка: +3 :))) :))) :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Кстати, хорошая статья...


Да, действует как "Ласковый май" на металлиста.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: За что я не люблю С++
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.09 13:17
Оценка: +2
Здравствуйте, -MyXa-, Вы писали:

MX> MX>> 1) Понятие метаинформации не то, что отсутствует, но в избытке (сомневаюсь, что он читал Александреску — скорее, он его под ножку стола подкладывал)

MX> MX>> 2) "Много ли Вы знаете простых и удобных persistence-библиотек". Ды, уж знаем, несколько. Можем и с сами написать — вон, на кывт-е есть статья про сериализацию в хмл, ещё другая есть, про которую все знают.

MX> M>И что, прямо-таки можно легко сериализовать объект любой сложности?


MX> Например?


Объект с циклическими ссылками и членами — указателями на другие объекты. Плюс является наследником другого объекта так, чтобы не надо было явно указывать:
ar & boost::serialization::base_object<bus_stop>(*this) & name;


Ведь в С++ тонны метаинформации! © Он что, не может сам узнать, что там сериализовывать из родительского класса?
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[4]: За что я не люблю С++
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.09 13:17
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ> M>И что, прямо-таки можно легко сериализовать объект любой сложности?


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


Ну, мы же говорим о ""Много ли Вы знаете простых и удобных persistence-библиотек". Ды, уж знаем, несколько"
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[3]: За что я не люблю С++
От: LaptevVV Россия  
Дата: 26.05.09 13:19
Оценка:
Здравствуйте, 0x7be, Вы писали:

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


LVV>>Кстати, хорошая статья...

0>Слишком эмоциональная.
Дык, видимо достало чела...
Вроде это тот Боресков, который книжки по графике в ДиалогМИФИ печатает. Чел вполне квалифицированный...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: За что я не люблю С++
От: criosray  
Дата: 26.05.09 13:25
Оценка: +1 -1
Здравствуйте, -MyXa-, Вы писали:

_>>Да нет, я-то сам его люблю. Случайно наткнулся на статью здесь.

_>>Он не просто его, не любит, он его ненавидит. И других заразить пытается.
_>>Вот, думаю, тролль Отличная приманка для священной войны.

MX>[:]|||||[:]
Автор:
Дата: 30.03.07


MX>Только в статье — всё не правда. А единственное, чем плох С++, так это тем, что с ним можно 1 раз 15 лет, а можно (как в случае с автором) 15 раз по 1-му году.


В статье почти все правда. Просто преподнесена она так, чтоб сильно задеть программистов С++ и местами немного искажена.

MX>За 15 лет автор так и не осилил простые вещи:


MX>1) Понятие метаинформации не то, что отсутствует, но в избытке (сомневаюсь, что он читал Александреску — скорее, он его под ножку стола подкладывал)

Отлично. Напишите универсальный сериализатор в XML/Json.

RTTI очень слабое подобие метаинформации в управляемых языках.

MX>2) "Много ли Вы знаете простых и удобных persistence-библиотек". Ды, уж знаем, несколько.


Простых? Удобных?
"Огласите весь список пжалуста!"

MX>Можем и с сами написать — вон, на кывт-е есть статья про сериализацию в хмл, ещё другая есть, про которую все

К Вашему сведенью под persistance библиотеками подразумевается O/RM в первую очередь.

MX>знают. "А вот ... в Python'е таких библиотек полно". Питон — программа на С, библиотека С-шная, а мужики-то не знают.

Вообще-то интерпретатор можно на любом языке написать. Тот же IronPython, IronRuby и т.д. вовсе не на С написаны. Ну и кроме того С++ != С.

MX>3) "А как дела у С++ с интеграцией со скриптовыми языками...". Boost.Python, CliPP, (шёпотом: COM) и др.

Да плохо с интеграцией. Работать с COM в .NET на много проще.

MX>8) "А как же исключения (exceptions), а как же RTII ?. За них то я всегда плачу всегда !!!". Караул! Заявляю — RTII в С++ никогда не было,

RTTI, а не RTII в С++ было, есть и будет.
MX>и не предвидится следующие лет 10 точно.
Какой кошмар...
MX>9) "будет изменена лишь копия объекта, которая сразу же после этого будет разрушена. Здорово, а ?". А некоторые языки, например, не позвляют выразить тот факт, что переданный в метод объект не будет изменён методом, которые принимает этот объект в качестве параметра.
А некоторые языки (а именно С++) не имеют таких базовых понятий как: свойства, атрибуты, события, делегаты, лямбда-выражения, замыкания, duck typing, интерфейсы, covariance и contravariance, и много другого.

MX>13) "средств получить информацию о типе-параметре в языке просто нет" . Язык С++ на столько крут, что "в языке" это и не нужно — можно написать библиотеку. boost::is_abstract, is_arithmetic, is_array, is_base_and_derived, is_base_of, is_class, is_complex, is_compound, is_const...

О, ужас.

MX>После слов "Это конечно здорово, но вот как узнать является ли этот тип каким-либо из элементарных типов, указателем или ссылкой ? Является ли он const или нет ?" этого профана сил осиливать его поток у меня не осталось.

Он правду сказал, а Вы классически "съехали на оскорбления", не могучи аргументированно ответить.
Re[4]: За что я не люблю С++
От: criosray  
Дата: 26.05.09 13:28
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

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

С мира по нитке..
Re[5]: За что я не люблю С++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 26.05.09 13:29
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Ну, мы же говорим о ""Много ли Вы знаете простых и удобных persistence-библиотек". Ды, уж знаем, несколько"


А... А я думал, что о "сериализации объектов любой сложности".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[5]: За что я не люблю С++
От: March_rabbit  
Дата: 26.05.09 13:35
Оценка: :))) :)
Здравствуйте, Mamut, Вы писали:

M>Объект с циклическими ссылками и членами — указателями на другие объекты. Плюс является наследником другого объекта так, чтобы не надо было явно указывать:

M>
M>ar & boost::serialization::base_object<bus_stop>(*this) & name;
M>


M>Ведь в С++ тонны метаинформации! © Он что, не может сам узнать, что там сериализовывать из родительского класса?

а что, какой-нибудь мегаумный мегаязык способен провести сериализацию объекта с циклическими ссылками?
здорово, если так.
Re[5]: За что я не люблю С++
От: -MyXa- Россия  
Дата: 26.05.09 13:37
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Объект с циклическими ссылками и членами — указателями на другие объекты.


libs\serialization\test\test_cyclic_ptrs.cpp

M>Плюс является наследником другого объекта так, чтобы не надо было явно указывать:

M>
M>ar & boost::serialization::base_object<bus_stop>(*this) & name;
M>


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

M>Ведь в С++ тонны метаинформации! © Он что, не может сам узнать, что там сериализовывать из родительского класса?
Если не поможет, будем действовать током... 600 Вольт (C)
Re[3]: За что я не люблю С++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 26.05.09 13:59
Оценка:
Здравствуйте, criosray, Вы писали:

C>Здравствуйте, -MyXa-, Вы писали:


C>В статье почти все правда. Просто преподнесена она так, чтоб сильно задеть программистов С++ и местами немного искажена.


Угу, искажена вплоть до своей противоположности.

C>А некоторые языки (а именно С++) не имеют таких базовых понятий как: свойства, атрибуты, события, делегаты, лямбда-выражения, замыкания, duck typing, интерфейсы, covariance и contravariance, и много другого.


свойства — синтезируется;
атрибуты (в смысле сопоставляемых метаданных) — синтезируется;
события — синтезируется;
делегаты — синтезируется;
лямбда-выражения — есть в C++0x;
замыкания — есть в C++0x;
duck typing — статический (и это очень хорошо);
интерфейсы — полностью выражается средствами pure virtual;
covariance/contravariance — где именно их нет (ковариантные возвращаемые значения есть)?

MX>>13) "средств получить информацию о типе-параметре в языке просто нет" . Язык С++ на столько крут, что "в языке" это и не нужно — можно написать библиотеку. boost::is_abstract, is_arithmetic, is_array, is_base_and_derived, is_base_of, is_class, is_complex, is_compound, is_const...

C>О, ужас.

А что не так?

MX>>После слов "Это конечно здорово, но вот как узнать является ли этот тип каким-либо из элементарных типов, указателем или ссылкой ? Является ли он const или нет ?" этого профана сил осиливать его поток у меня не осталось.

C>Он правду сказал, а Вы классически "съехали на оскорбления", не могучи аргументированно ответить.

Глупость он сказал. Элементарных типов очень мало, указатели и ссылочные типы определяются на раз. И таких натяжек полна статья.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.