А кто говорит про NRVO? Я написал "// Компилятор не может использовать RVO". Не NRVO, а RVO. "Плохой код" — это образное выражение относительно RVO, разумеется в нем нет ничего плохого.
Что именно неправда? Что NRVO не всегда может быть задействована? Или что не у всех классов есть конструктор перемещения? Что в примере не может быть задействовано RVO? Так и по ссылке тоже самое:
std::vector<Noisy> f()
{
std::vector<Noisy> v = std::vector<Noisy>(3); // copy elision from temporary to v
return v; // NRVO from v to the returned nameless temporary
} // or the move constructor is called if optimizations are disabled
Не думаю, что в программировании применимы джентльменские соглашения. Если указатель может указывать на null, рано или поздно он будет туда указывать. Если деструктор может сгенерировать исключение, рано или поздно это произойдет. Если обработчик сигнала не AS-Safe, рано или поздно это приведет к dead-lock. Поэтому указатели используют там, где нужен именно указатель. И обкладывают проверками.
Так ведь статья о применении подхода работы с большими данными :-)
В реальной жизни для обработки действительно большого графа (например web-графа) вам потребовалось бы реализовывать например pregel (http://web.stanford.edu/class/cs347/reading/pregel.pdf). На spark такое считать совсем не рентабельно. Однако для небольших графов, которые не являются big-data и помещаются на одной машине он не эффективен.
Пробовал считать граф, в котором было примерно 20 млрд вершин и 1,5 трлн ребер на кластере меньше 100 машин. Подход MapReduce для графов совершенно не подходит. Spark интересный и перспективный инструмент, но и он не подходит для работы с графами. Есть GraphX, который будет оптимальней. Правда до тех пор, пока данные помещаются в оперативной памяти.
С очень большими графами на момент, когда я его смотрел, он работать не мог :-(
2 Гб, пусть и в сжатом виде, это уже большие данные? Странно. Я то считал большими данными то, что не помещается на одном сервере.
И не понятно, чем занимался кластер из 100 машин, если на каждую приходилось по 20 Мб сжатых данных. Подозреваю, что это был hadoop кластер и обработка графа выполнялась с помощью MapReduce?
Наверное СУБД — это все же инструмент. И в зависимости от задачи мы берем тот или иной инструмент (это кстати и к голосованию относится). Универсальных СУБД не существует.
Стоит отметить, что успехи в области создания российской операционной системы уже есть. Можно вспомнить ОС МСВС, применяющуюся в Министерстве обороны с 2002 года.
Замена надписей на кнопках с «ОК» и «Отмена» на «Есть» и «Оставить» вы называете успехом? Возможно с тех пор там многое изменилось, но все же это никак нельзя назвать российской операционной системой. Т.к. чуть ли не полностью состоит из компонентов, сделанных программистами всего мира.
Да чему там переучиваться то? Вы же не на макось переезжаете. Новый интерфейс вполне за вечер осиливался, как с переездом 98->XP, так и с XP->7->8. Вот со сменой идеологии 3.х->98+ было чуть сложнее, да.
Я и виду счет с DOS -> 3.х -> 95/98 -> XP -> 7. Каждый такой переезд просто неприятен перестановкой и переделкой. Разумеется это не значит, что сама система хуже. Просто все новое непривычно. Осиливается быстро, если это ваша настольная система и используется ежедневно. Если же сталкиваться с ней приходится время от времени, раз в неделю или месяц, то привыкать и ругаться нужно дольше.
> … Помните свои первые ощущения от Windows XP? Я свои помню — «наконец-то они сделали нормальную Винду!»
Конечно: блин, опять переучиваться. Я имею в вижу всякие мелочи вроде свойств сетевого адаптера, настройки принтеров и т.д. Они переезжают в разные места и требуется все больше кликов, чтобы до них добраться. Ну ладно, к XP я в конце концов привык. Сейчас не могу к Windows 7 привыкнуть (мое первое восклицание: а где telnet?), но она уже устарела и привыкать надо к Windows 8. Хотя, купил жене планшет на Android, может и не придется :-)
> Интересно, что XP — самая долгоживущая система от Microsoft:
А не MS-DOS ли? Клоны этой системы до сих пор живут и здравствуют. Да и сама Microsoft эту систему почти 20 лет развивала.
Потому, что так сложилось. Давайте мы не будем обсуждать мою бибилотеку, она не имеет к статье никакого отношения. Вот когда я напишу статью о ней, к этому вопросу можно будет вернутся :-)
Или про "совет почти потерял актуальность"?
Вы уж поконкретней, пожалуйста :-)
Есть move semantics, но пока не у всех классов есть конструктор перемещения, чтобы компилятор мог это задействовать.
В реальной жизни для обработки действительно большого графа (например web-графа) вам потребовалось бы реализовывать например pregel (http://web.stanford.edu/class/cs347/reading/pregel.pdf). На spark такое считать совсем не рентабельно. Однако для небольших графов, которые не являются big-data и помещаются на одной машине он не эффективен.
Как будет работать ваше решение? Ведь граф придется делать распределенным, на одной машине он не поместится даже на жесткий диск.
С очень большими графами на момент, когда я его смотрел, он работать не мог :-(
И не понятно, чем занимался кластер из 100 машин, если на каждую приходилось по 20 Мб сжатых данных. Подозреваю, что это был hadoop кластер и обработка графа выполнялась с помощью MapReduce?
Замена надписей на кнопках с «ОК» и «Отмена» на «Есть» и «Оставить» вы называете успехом? Возможно с тех пор там многое изменилось, но все же это никак нельзя назвать российской операционной системой. Т.к. чуть ли не полностью состоит из компонентов, сделанных программистами всего мира.
Я и виду счет с DOS -> 3.х -> 95/98 -> XP -> 7. Каждый такой переезд просто неприятен перестановкой и переделкой. Разумеется это не значит, что сама система хуже. Просто все новое непривычно. Осиливается быстро, если это ваша настольная система и используется ежедневно. Если же сталкиваться с ней приходится время от времени, раз в неделю или месяц, то привыкать и ругаться нужно дольше.
Конечно: блин, опять переучиваться. Я имею в вижу всякие мелочи вроде свойств сетевого адаптера, настройки принтеров и т.д. Они переезжают в разные места и требуется все больше кликов, чтобы до них добраться. Ну ладно, к XP я в конце концов привык. Сейчас не могу к Windows 7 привыкнуть (мое первое восклицание: а где telnet?), но она уже устарела и привыкать надо к Windows 8. Хотя, купил жене планшет на Android, может и не придется :-)
> Интересно, что XP — самая долгоживущая система от Microsoft:
А не MS-DOS ли? Клоны этой системы до сих пор живут и здравствуют. Да и сама Microsoft эту систему почти 20 лет развивала.