Re[8]: За что я не люблю С++
От: LaptevVV Россия  
Дата: 27.05.09 04:47
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Блин, Валерий Викторыч, Intel C++ 11.0. И ещё сейчас MS выложила бету VS2010.

А, ну да... Я пока на 2008 сижу...
LVV>>Видимо, множественное наследование ликвидировали из-за наличия озвученных проблем. И сочли за благо ввести отдельную конструкцию.
ГВ>Каких проблем?
По этому поводу вспомнилось из его статьи: любая книжка по С++ описывает, как не надо делать при множественном наследовании. Я сам писал — тут он прав...
ГВ>>>Дык — не надо ж. Он там в качестве контраргумента всё время рассуждает о непонятности внутреннего устройства буста.
LVV>>Для него — действительно жуть... Меня тоже только крайняя нужда заставит буст использовать...
ГВ>ИМХО, это зря.
Ну, кое-что подсматриваю и использую. Но небольшие вещи. Типа интеллектуальных указателей.
LVV>>Но вообще статья, конечно, оставляет впечатление, что писал достаточно опытный программер, которому ПРИШЛОСЬ перейти на С++ по необходимости.
LVV>>А это — действительно УЖОСССССС!!!!!
ГВ>Не знаю, у меня ощущение, что программер-то, может быть, и опытный, но очень сильно путает субъективное и объективное.
Объективно я осенью напишу. Вот сравню БлэкБокс с С++ на одних и тех же задачах — и напишу...
А от субъективного восприятия никуда не деться.
Особенно программистам-непрофессионалам, которые используют программирование по необходимости только для решения своих задач. Им даже адекватный инструмент для решения подобрать сложно. Ведь не хочется изучать лишний инструменть, чтобы один-два раза решить задачу.
Вот раньше был фортран — на нем все и писали...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: За что я не люблю С++
От: neFormal Россия  
Дата: 27.05.09 05:15
Оценка:
Здравствуйте, dmitry_npi, Вы писали:

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

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

фигня.. в книжках по разным языкам до сих пор встречаются главы "Как интегрироваться с C++"..
не ява, не шарп, не смалталк.. вот она — популярность
...coding for chaos...
Re[12]: За что я не люблю С++
От: Mamut Швеция http://dmitriid.com
Дата: 27.05.09 06:47
Оценка: 1 (1) :)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ> M>Дело не в том, что считается базовой вещбю, а что — нет. Дело в том, что с теми же properties можно сразу использовать их из коробки, рыть гугл в поисках их замены, или писать boilerplate code каждый раз, сли их нет. Препочту первое. И так — со многим


ГВ> Да и на здоровье. Но ты же не несёшь по белу свету пургу наподобие статьи в топикстарте.


При желании могу

Вообще-то, все аргументы против С++ уже давно собраны в C++ FQA, имхо
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[5]: За что я не люблю С++
От: CreatorCray  
Дата: 27.05.09 06:49
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Дык ПИСАТЬ НАДО... А в других языках писать НЕ НАДО...

Дык разница тогда тока в том, что для других ЯП написали библиотеку и положили рядом.
А тут написанные библиотеки в комплект не входят.

LVV>А челу требуется задачу решать, а не писать библиотеку...

Хай возьмет готовую.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: За что я не люблю С++
От: criosray  
Дата: 27.05.09 07:03
Оценка:
Здравствуйте, doarn, Вы писали:

C>>C++ подвергался "демонизации" добрых 10 лет тому назад. Его жестко критиковали даже такие личности, как небезызвестный Линус Торвальдс.

D>10 лет назад, С++ несколько другой был, как и сознание о способах использования. + альтернативы ему в мейнстриме — не существовало в принципе, так что в 1999м наезды на С++ были разговорами в пользу бедных. Когда там Java 1.5 вышла, где-то в районе 2003-2004го? А второй шарп?
Да не был С++ другим. Точно тот же самый уродец.

D>>>PS: наш сериализатор дает 1.2 гигабайта/секунду потоковую производительность (собственно упираемся в скорость

C>>чтения/записи памяти) на данных умеренно-сложной структуры (поддерживая при этом возможность частичной десериализации
C>>Эта цифра абсолютно ни о чем не говорит. Да и сериализация-то у Вас поди бинарная?
D>Эта цифра например позволяет в терминах сериализации описывать внутренний ABI, не плодя сущностей для перевода сервиса в distributed состояние с сублинейной масшатабируемостью.
Чертовски за вас рад. Но повторюсь: цифра абсолютно ни о чем не говорит.

D>Цифра для бинарного варианта, в XML понятное дело помедленнее будет, да и используется только что бы веб-морде данные выплевывать. ORM на наших задачах использовать не только бессмысленно, но и вредно.

O/RM тут при чем?

D>>>PPS: а вот на шарпе аккуратное освобождение ресурсов приходится эмулировать жуткими костылями, дискасс

C>>Ну уж точно менее жуткими, чем С++ с зоопарками shared_ptr<> auto_ptr<> и прочих костылей.
D>Стандартизованный костыль перестает быть костылем.
Костыль, даже стандартизованный, остается костылем. Не фантазируйте.

C>>Да и что такого жуткого в операторе using?

D>Ничего, только вот сам по себе, кроме как в примитивных случаях — задачу не решает.
Да ну? Серьезно? И в каких же случаях сей оператор "не решает задачу"? Назовите парочку.

C>>Вы можете предложить лучшее решение?

D>Последовательное применение концепции владения и времени жизни + инструментальные средства реализации. Второе зависит от языка/платформы, первое — дело сугубо дизайна и дает одинаковый результат будучи реализованных хоть на С++, хоть на Java, хоть другими средствами.
Много пустых слов. Вы не ответили на поставленный вопрос: вы можете предложить лучшее решение по освобождению ресурсов (не памяти — она-то в отличие от.. освобождается автоматически) в управляемых средах?
Re[3]: За что я не люблю С++
От: CreatorCray  
Дата: 27.05.09 07:08
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

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

НС>Да тутошние срачи тоже так себе в плане профессионализма, особенно свеженькие.
Это да.
Зато накал идиотизма и объем какашек, выливаемый друг на друга впечатляют.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[16]: За что я не люблю С++
От: criosray  
Дата: 27.05.09 07:12
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>>>Я уж не знаю, почему так складывается, но как только кто-то выступает с резкой критикой C++, так такую пургу нести начинает — уши вянут.

C>>Такой, как эта?
ГВ>[...]

ГВ>Да нет, такой как в топикстарте.

Эта — которую Вы вырезали (стыдно уже стало, да?) — дает хорошую фору тому, что в топик старте.

ГВ>>>Любая. В твоем мире — если сериализация не встроена в платформу, то её нет, я уже понял. В моём — если какой-то фишки нет, то это означает, что она может быть любой.

C>>Я еще раз прошу показать универсальный С++ сериализатор XML или Json для любого графа объектов. Двунаправленный. Дженерик (шаблонный).

ГВ>Сериализовать можно всё, что угодно, только не всякий раз это становится показателем здравого ума и трезвой памяти.


Значит показать не можете? "Слив засчитан" (уж простите мой жаргон, которому я набрался в этом форуме).

C>>Покажете или будете продолжать разводить демагогию и фанатичную чушь без единого факта по теме?


ГВ>Ты мне сначала покажи такую систему, где нужна сериализация любого графа любых объектов и где эта самая сериализация предварительно не спланирована. А потом — тебе сколько фактов ни дай, тебе всё индифферентно.


"Слив засчитан".
Re[6]: За что я не люблю С++
От: criosray  
Дата: 27.05.09 07:16
Оценка: :)
Здравствуйте, doarn, Вы писали:

C>>>>Да и что такого жуткого в операторе using?

D>>>Ничего, только вот сам по себе, кроме как в примитивных случаях — задачу не решает.
D>>А можно парочку примеров непримитивных случаев ?
D>Когда ресурс (скажем read лок объекта) сохраняется в процессах неизвестного в точке вызова количества с непрогнозируемым временем жизни.
D>А если время жизни самого ресурса ограниченно?
D>А если ресурс нужно версионировать? =)

Вы вообще знаете что такое using?


try 
{
   ...
}
finally
{
   if (obj != null)
       obj.Dispose();
}



Все.

D>А слова только выглядят умными, реально все сводиться к простейшему принципу — "выстраивай иерархию владения и не передавай владение ресурсом, которым владаеешь, вниз по иерархии". Универсально, практически серебрянная пуля


Ну и бред...

Можно поинтересоваться, а Вы Александреску на ночь читаете?
Re[4]: За что я не люблю С++
От: criosray  
Дата: 27.05.09 07:22
Оценка: :))
Здравствуйте, CreatorCray, Вы писали:

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

НС>>Да тутошние срачи тоже так себе в плане профессионализма, особенно свеженькие.
CC>Это да.
CC>Зато накал идиотизма и объем какашек, выливаемый друг на друга впечатляют.

Про идиотизм это Вы хорошо заметили...

Ясное дело, в чём разница. В первом случае "свойство" — это независимый тип, который можно переопределить, обобщённо реализовать, перенести из класса в класс, и вообще накрутить уйму всего, оставив единый синтаксис собственно объявления и использования. А во втором нужно каждый раз бегать и ручками привязывать свойства к типу ("set; get;" как символ настоящего джедая).

(с) ГВ
Re[6]: За что я не люблю С++
От: MxKazan Португалия  
Дата: 27.05.09 07:22
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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


LVV>>Дык ПИСАТЬ НАДО... А в других языках писать НЕ НАДО...

CC>Дык разница тогда тока в том, что для других ЯП написали библиотеку и положили рядом.
CC>А тут написанные библиотеки в комплект не входят.
В случае тех же свойств, не "библиотеку положили рядом", а компилятор научили работать. Всё-таки есть разница.
Re[10]: За что я не люблю С++
От: neFormal Россия  
Дата: 27.05.09 07:42
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

C>>Какого флейма? Они либо есть, либо их нет. В С++ их нет. О чем тут флеймить? Аналогично linq, lambda, events, attributes, properties, implicit typing, duck typing и многое другое.

ГВ>Что-то больно много базовых вещей появляется, не находишь? Уже и linq в качестве базовых замаячил. Интересно, что дальше будет?

например, вывод на консоль.. в питоне(про 3ю версию не уверен) print — это оператор языка, а не функция.. базовая штука ведь
...coding for chaos...
Re[9]: За что я не люблю С++
От: CreatorCray  
Дата: 27.05.09 07:48
Оценка:
Здравствуйте, criosray, Вы писали:

ГВ>>Тебя гугль забанил? Первая ссылка по запросу "C++ property implementation": http://www.codeproject.com/KB/cpp/cpp_property_indexer.aspx

C>Это не свойства. Это костыль, который пытается их эмулировать. В языке С++ нету свойств. тчк
А тебе надо чтоб именно в стандарте было вбито гвоздями?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: За что я не люблю С++
От: criosray  
Дата: 27.05.09 07:53
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

ГВ>>>Тебя гугль забанил? Первая ссылка по запросу "C++ property implementation": http://www.codeproject.com/KB/cpp/cpp_property_indexer.aspx

C>>Это не свойства. Это костыль, который пытается их эмулировать. В языке С++ нету свойств. тчк
CC>А тебе надо чтоб именно в стандарте было вбито гвоздями?

Мне надо, чтоб свойства были в языке — чтоб ради определения одного свойства не требовалось возиться с созданием типов, шаблоноалександрескумагией и прочей мутотенью. Я должен решать задачи проекта, а не возиться с костылями языка.
Re[7]: За что я не люблю С++
От: CreatorCray  
Дата: 27.05.09 07:53
Оценка: +4 -1
Здравствуйте, MxKazan, Вы писали:

CC>>А тут написанные библиотеки в комплект не входят.

MK>В случае тех же свойств, не "библиотеку положили рядом", а компилятор научили работать. Всё-таки есть разница.
По мне так один хрен.
По мне так в компилятор надо впихивать то, что никак нельзя нормально реализовать через библиотеки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: За что я не люблю С++
От: criosray  
Дата: 27.05.09 07:55
Оценка:
Здравствуйте, neFormal, Вы писали:

C>>>Какого флейма? Они либо есть, либо их нет. В С++ их нет. О чем тут флеймить? Аналогично linq, lambda, events, attributes, properties, implicit typing, duck typing и многое другое.

ГВ>>Что-то больно много базовых вещей появляется, не находишь? Уже и linq в качестве базовых замаячил. Интересно, что дальше будет?

F>например, вывод на консоль.. в питоне(про 3ю версию не уверен) print — это оператор языка, а не функция.. базовая штука ведь


Аналогично было в Pascal. Только там это было нужно из-за примитивизма языка, не позволяющего создавать методы с переменным количеством аргументов.
Re[8]: За что я не люблю С++
От: criosray  
Дата: 27.05.09 07:56
Оценка: +1 :)
Здравствуйте, CreatorCray, Вы писали:

CC>>>А тут написанные библиотеки в комплект не входят.

MK>>В случае тех же свойств, не "библиотеку положили рядом", а компилятор научили работать. Всё-таки есть разница.
CC>По мне так один хрен.
CC>По мне так в компилятор надо впихивать то, что никак нельзя нормально реализовать через библиотеки.
Почему же Вы на Lisp`е не пишете? Там вообще кроме скобочек и нескольких арифметических операторов ничего нету.
Re[8]: За что я не люблю С++
От: MxKazan Португалия  
Дата: 27.05.09 08:06
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

CC>>>А тут написанные библиотеки в комплект не входят.

MK>>В случае тех же свойств, не "библиотеку положили рядом", а компилятор научили работать. Всё-таки есть разница.
CC>По мне так один хрен.
CC>По мне так в компилятор надо впихивать то, что никак нельзя нормально реализовать через библиотеки.
В том то и дело, что нормально реализовать свойства через библиотеки нельзя — это будет мега пупер изврат. Страшно представить хотя-бы то, как со всеми этими библиотечными наворотами отлаживаться. Ведь аналога метаданных, понимаемых дебаггером, не будет.
Re[11]: За что я не люблю С++
От: neFormal Россия  
Дата: 27.05.09 08:19
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Есть более-менее стандартные вещи, типа "известить об изменении свойства".

S>Вот, допустим, как-то так:
S>
S>public class Test
S>{
S>  public event Action<Test> OnChanged;
S>    private int _a;
S>    public int A
S>    { 
S>      get {return _a;}
S>        set
S>        {
S>            if (value == a)
S>                return;
S>            _a = a;
S>            if (OnChanged!=null)
S>                OnChanged(this);
S>        }
S>    }
S>}
S>

S>Покажи мне аналог этого кода на C++. И мы поймем разницу невооруженным мозгом.

вот, например.. объясни разницу, пожалуйста..
class Test
{
    int _a;
    boost::function<void (Test*)> OnChanged;

public:
    int A(){return _a;}

    void A(int a){_a = a; if(OnChanged != NULL) OnChanged(this);}
// или
    void operator=(int& a){_a = a; if(OnChanged != NULL)OnChanged(this);}

};

должно компиляться и нормально работать..
...coding for chaos...
Re[12]: За что я не люблю С++
От: neFormal Россия  
Дата: 27.05.09 08:26
Оценка:
Здравствуйте, criosray, Вы писали:

F>>например, вывод на консоль.. в питоне(про 3ю версию не уверен) print — это оператор языка, а не функция.. базовая штука ведь

C>Аналогично было в Pascal. Только там это было нужно из-за примитивизма языка, не позволяющего создавать методы с переменным количеством аргументов.

ты не понял, print — это не базовая фича языка.. вот совсем ни разу..
но его внесли, посчитав это выгодным.. и что теперь, оглядываться на них и повторять то же самое?.
...coding for chaos...
Re[12]: За что я не люблю С++
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.05.09 08:49
Оценка: +1
Здравствуйте, neFormal, Вы писали:
F>должно компиляться и нормально работать..
Нет, не должно. Ну, то есть кроме компиляться.
Во-первых, то, что после "//или" делает не то что нужно.
Во-вторых, покажи мне, как будет выглядеть аналог Test.A+=5?
К примеру, отрезаем последний символ в StringBuilder:
sb.Length--;
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.