Здравствуйте, Геннадий Васильев, Вы писали:
VD>>У тебя проблемы с терминологией. std::auto_ptr — это помощник упрощающий ручное управление памятью. В языках с автоматическим управлением памятью они ненужны. Меж тем сделать их не сложно.
ГВ>GC научился удалять строго указанные объекты (освобождать занятую память) в строго указанный момент времени? Он же, вроде, с точностью до поколения может работать?
GC бывают разные, но их объединяет одно — при наличии GC не надо управлять жизнью объектов вручную.
ГВ>>>В новой версии стандарта — поддерживает.
VD>>1. Где эта версия? Стандарт уже зарелизили? А то мне про него последние 10 лет рассказывают, рассказывают...
ГВ>Ну... Комитет (tm).
Ага. Комитет — это жизненная форма, наделённая шестью или более ногами, и лишенная мозга.
(с) Роберт Хайнлайн. Потому и развитие С++ такое бурное.
VD>>2. Без GC толку от этого будет не много.
ГВ>ИМХО, ты ошибаешься.
Да? Объясни тогда оду простую вещь. Для эффективного использования замыканий сами замыкания и все на что они замкнуты (т.е. имеют ссылки) должно жить столько сколько живет само замыкание. А замыкание может быть передано в ФВП которая так же может передать его в другие ФВП. Как не имея системы автоматического управления памятью реализовать безопасные (не приводящие к UB ошибкам времени выполения) замыкания?
VD>>Ошибаешься! Такие как ollv по незнанию или из фанатических побуждений применяют С++ там где ему совсем не место и в условиях где он противопоказан.
ГВ>Это слишком сильное утверждение, насчёт незнания и фанатизма. Так что, тут я согласиться не могу.
Что в нем сильного? Оно не противоречит утверждению, что есть люди использующие С++ осознанно и для задач где он является конкурентно-способным.
ГВ>Не надо переворачивать с ног на голову. Сайты бывают разные, и требования — тоже разные.
Ага. Не надо. Не надо разглагольствовать о разных задах сайтов. С++ там по любому не место. Если только в виде какого-то там драйвера или мелкого компонента вроде ISAPI-фильтра.
ГВ>MS и IBM (как и все остальные) вольны поступать так, как им заблагорассудится.
Ага. И выбирают для сайтов Яву и дотнет.
ГВ> И кроме всего прочего, слишком мало критериев для отсечения C++: "в кратчайшие строки получить надежное решение, когда денег на разработку нехватает". Он запросто может оказаться наилучшим выбором с учётом других факторов.
Ага. Но другим фактором может быть только крайняя нужда в достижении высокой вычислительной производительности путем ручной оптимизации.
ГВ> Тут проблема в другом: почему-то те, кто ругают C++ приписывают ему какую-то имманентную глюкавость, запредельную трудоёмкость и т.п. чуть ли не по всем аспектам, тогда как на самом деле это а) не так и б) зачастую обусловлено тем же контекстом, т.е. постановкой задачи, анализом требований и т.п.
Глюкавость приписывают не языку, а коду на нем написанном. И не почему-то, а исходя из общирного опыта и объективных логических рассуждений. Язык не типобезопасен, возлагает на программиста массу ответственности.
Есть такое умное высказывание (не помню чье) — человек не должен делать работу которую может сделать машина. А С++ заставляет человека делать работу которую можно возложить на машину. Все остальное последсвия. Ну, и С++ как раз очень сильно сковывает программиста в выборе абстракции. По сути, большинство С++-программистов, начинают решать все задачи с помощью шаблонов. Причем очень распростронено мнение, что производительность важнее качества.
Многие защитники С++ приводят в качестве примера 3D-игры. Мол, "почему их пишут на С++?". А стоило бы посмотреть на другой аспект. Почти все эти игры безбожно глючат. Играть в некоторые до выхода патчей просто невозможно. Большая часть ошибок в этих играх могла бы быть попросту не допущена, будь программа написана на более качественном языке.
ГВ>>>А так — да, бесспорно. На Lisp можно написать очень много всего интересного. Если бы ещё не потеря производительности по сравнению с "убогим" C/C++ — всё было бы совсем хорошо.
VD>>Когда-то давно производительность Лиспа была огромной проблемой. Но сейчас есть высокопроизводительные компиляторы.
ГВ>AFAIK, на данный момент Lisp примерно на 5-20% проигрывает C++, пробегало где-то на www.franz.com.
Твой AFAIK. Высосан из пальцев. В прочем я не Лиспер и дать тебе точных данных не могу. Но я проверял их данные и скорее соглашусь с ними, а не с тобой. Кстати, проигрышь в 20% это вообще смешно. Отдельные компиляторы С++ проигрывают друг-другу в разны на разных задачах.
В прочем можно посмотреть
здесь.
ГВ>Про SBCL я знаю, но сильно с ним не возился.
Я его пробовал. Очень быстрый, но глюкавый и не очень стандартный. Главная проблема в том, что для Винды его делают в последнюю очередь. Верся для Винды значительно отстает. Но для пенисометрии идеален. На многих тестах рвет С++-ные компиляторы как тузик грелку.
ГВ>Тоже неплохо.
Еще как не плохо. И это технологии про которые уже забыл. А ведь им 50 лет!
ГВ>Да нет, она эмоциональная по сугубо формальным признакам.
find_if и Co вполне решают свои задачи в рамках STL/C++. Понятно, что это не filter/fold, но тем не менее.
Офтоп — Люблю русский "да нет".

Если понятно, то лучше помалкивать про find_if и компанию. И уж точно не заикаться о "применимости к объектам разного класса" или как там?...
ГВ>>>Забавно, что как раз использование "побочных эффектов" и делает C++ столь привлекательным по критерию производительности программиста при сохранении производительности продукта.
VD>>Забавно, что ты даже не понимаешь о чем идет речь. Речь же идет о побочных эффектах воплощения шаблонов. Эти эффекты позволяют заниматься метапрограммированием во время компиляции. Но как и все, что достигается не предусмотренными для этого средствами, данное решение является очень неудобным и ограниченным.
ГВ>Удивительно, но именно шаблоны я и имел в виду.
Да? Иди прочти еще раз свои слова. Если ты говорил о шаблонах, то они вообще теряют смысл.
ГВ>>>А чистота "метапрограммирования", или "функционального программирования", или ещё какая "чистота" какой-нибудь очередной мутной "парадигмы" вообще не шибко-то кого и беспокоит (в мире C++). Пуризм — это ещё одно ругательство, как и BASIC, если ты не в курсе. Есть только два критерия: "удобно написать удобную фишку X" и "иметь возможности для отступления в случае потерь производительности".
VD>>Это как раз тот случай где отсутствие чистых и грамотных решений толкает на использование кривых.
ГВ>
Скажем так, это квинтэссенция практических мотиваций.
Это э....ыы... жопа, если одним словмо.
VD>>Ты с книгами Александеску хорошо знаком?
ГВ>Наизусть не помню, конечно. А что?
Но знаком? А с метапрограммированием в Лисп или Немерле ты знаком?
Если знаком, то должен понимать, что это как небо и земля. В случае шаблонов С++ трудоемкость офигительная, сложность высокая, результат так себе и при этом все еще совсем плохо по ресурсам потребляемым компилятором. А в результате метапрограмма деже не может выдать сообщение об ошибке или обратиться к внешнему файлу. Ну, куда это годится?
VD>>Да, да, да. Зачем наука в программировании? Ты давно всем доказал, что программирование особая отрасль и мозг в ней не нужен. Главное трясти по сильнее. То ли дело автомобили. Вот там наука важна. Ведь на автомобилях ездеем мы сами, а софт используют какие-то ламеры.
ГВ>Да ну?! Вроде как я обычно доказываю прямо противоположное. Мозг как раз нужен и теоретическая подготовка — тоже. Так что, что-то ты перепутал.
Я перепутал? Ну, не знаю. Я тебя читал.