Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Интегрируя набежавшее в разных темах, призываю - сжечь еретиков! Если ты пишешь на ассемблере - ты видишь прямой результат твоего кода, Если ты пишешь на Си, С-- ты представляешь в уме прямой результат твоего кода. Если ты пишешь на С с классами, Obj Pascal, Oberon - ты представляешь в уме прямой результат твоего кода с поправкой на косвенные вызовы. Если ты используешь STL, boost итп - ты уже вторичен, - ты можешь только гадать, что получится в итоге. // Навеяно Майерсом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2016, 01:19 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Siemargl// Навеяно Майерсом. Не могу всерьез воспринимать советы по программированию от человека с прической солиста диско-группы 70-х ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2016, 02:01 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Советы надо рассматривать критически. Одним из ярких примеров сокрытия сложности является "легкость" алгоритма сортировки на функциональном языке. Где накладные расходы превышали выгоду алгоритма ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2016, 02:14 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
ФП не очень пригодны для написания утилитарных вещей. А я сортировку считаю больше утилитой чем алгоритмом. Согласно классификации Душкина само ФП предназначено для синтаксических трансляторов, эквивалентных преобразований программ, различного рода DSL и описателей, и для доказательств существования какого-то свойства программы. Тоесть сортировка в ФП - (как впрочем и расчет факториала и "Ханойские башни") это просто неудачный наглядный пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2016, 11:52 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglЕсли ты используешь STL, boost итп - ты уже вторичен, - ты можешь только гадать, что получится в итоге.Ну, как бы, что-то получаем взамен чего-то. Пользуясь пультом дистанционного управления, мы можем только гадать, что там происходит в итоге внутри телевизора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 06:05 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglЕсли ты используешь STL, boost итп - ты уже вторичен, - ты можешь только гадать, что получится в итоге.так не используйте! мне это кажестя глупым. ведь именно в этом суть абстракции - черный ящик. тут нужно выбрать - либо ты пишешь на машинных кодах и знаешь все, либо ты используешь абстракцию и намеренно скрываешь от себя какие-то знания, чтоб сосредоточится на чем-нибудь другом. намеренно - если ты хочешь скрыть от себя детали, нужна абстракция, если хочешь углубится в детали - абстракция не нужна, лезь в детали. она так работает. кстати, шаблоны тоже давольно предсказуемы в том, что получится на выходе. они больше вроде синтаксического сахара для компилятора, что бы можно было себя проверять. в реале отличие будет в основном в адресах функций. больше отличий может быть при специализации шаблона, но в этом случаи нужно просто знать эти специализации. например: type_traits в результируем файле нет, он просто определяет когда какую специализацию использовать. а вот std::basic_string будет там, код будет одинаков, только за разницей используемого типа, вот и все. у вас так часто возникает ситуация когда нужно лезть в ассемблер чтобы понять что не так? или просто интересно знать что сделал компилятор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 10:40 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
CEMbSiemarglЕсли ты используешь STL, boost итп - ты уже вторичен, - ты можешь только гадать, что получится в итоге.Ну, как бы, что-то получаем взамен чего-то. Пользуясь пультом дистанционного управления, мы можем только гадать, что там происходит в итоге внутри телевизора. Вот я воспользовался другими методами и выяснил, что у меня в телевизоре - Андроид. И стало понятно, чего он так тормозит на определенных операциях. Я недоволен результатом такого "абстрагирования" производителя. alexy_blackSiemarglЕсли ты используешь STL, boost итп - ты уже вторичен, - ты можешь только гадать, что получится в итоге.так не используйте! мне это кажестя глупым. ведь именно в этом суть абстракции - черный ящик. тут нужно выбрать - либо ты пишешь на машинных кодах и знаешь все, либо ты используешь абстракцию и намеренно скрываешь от себя какие-то знания, чтоб сосредоточится на чем-нибудь другом. намеренно - если ты хочешь скрыть от себя детали, нужна абстракция, если хочешь углубится в детали - абстракция не нужна, лезь в детали. она так работает. кстати, шаблоны тоже давольно предсказуемы в том, что получится на выходе. они больше вроде синтаксического сахара для компилятора, что бы можно было себя проверять. в реале отличие будет в основном в адресах функций. больше отличий может быть при специализации шаблона, но в этом случаи нужно просто знать эти специализации. например: type_traits в результируем файле нет, он просто определяет когда какую специализацию использовать. а вот std::basic_string будет там, код будет одинаков, только за разницей используемого типа, вот и все. у вас так часто возникает ситуация когда нужно лезть в ассемблер чтобы понять что не так? или просто интересно знать что сделал компилятор? У шаблонов С++ другая проблема - это такой уровень абстракции, что ты как собака Павлова, должен запомнить команды - типы которые нужны передавать в библиотеки. Офигенное абстрагирование =) Производительность шаблоны сами по себе практически не портят (так, 2% всего), но вот реализации с их помощью - запросто. Для STL это и принуждение к счетчикам ссылок, и постоянное копирование туда-сюда и неявное преобразование типов (конструктора копирования итп). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 11:45 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglCEMbпропущено... Ну, как бы, что-то получаем взамен чего-то. Пользуясь пультом дистанционного управления, мы можем только гадать, что там происходит в итоге внутри телевизора. Вот я воспользовался другими методами и выяснил, что у меня в телевизоре - Андроид. И стало понятно, чего он так тормозит на определенных операциях. Я недоволен результатом такого "абстрагирования" производителя. подразумевалось, что, например, при переключении программ, не надо вручную менять частоту принимаемого сигнала, и вообще ничего про частоту и внутренности знать не надо. На выходе нам важно получить изображение текущего канала и знать какие кнопки нажимать. Всё, чистый ООП.SiemarglУ шаблонов С++ другая проблема - это такой уровень абстракции, что ты как собака Павлова, должен запомнить команды - типы которые нужны передавать в библиотеки. Офигенное абстрагирование =)typedef?SiemarglПроизводительность шаблоны сами по себе практически не портят (так, 2% всего), но вот реализации с их помощью - запросто. Для STL это и принуждение к счетчикам ссылок, и постоянное копирование туда-сюда и неявное преобразование типов (конструктора копирования итп).1. не использовать смартпоинтеры 2. move 3. explicit, delete(оператора и конструктора) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 11:58 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
CEMbSiemarglпропущено... Вот я воспользовался другими методами и выяснил, что у меня в телевизоре - Андроид. И стало понятно, чего он так тормозит на определенных операциях. Я недоволен результатом такого "абстрагирования" производителя. подразумевалось, что, например, при переключении программ, не надо вручную менять частоту принимаемого сигнала, и вообще ничего про частоту и внутренности знать не надо. На выходе нам важно получить изображение текущего канала и знать какие кнопки нажимать. Всё, чистый ООП.SiemarglУ шаблонов С++ другая проблема - это такой уровень абстракции, что ты как собака Павлова, должен запомнить команды - типы которые нужны передавать в библиотеки. Офигенное абстрагирование =)typedef?SiemarglПроизводительность шаблоны сами по себе практически не портят (так, 2% всего), но вот реализации с их помощью - запросто. Для STL это и принуждение к счетчикам ссылок, и постоянное копирование туда-сюда и неявное преобразование типов (конструктора копирования итп).1. не использовать смартпоинтеры 2. move 3. explicit, delete(оператора и конструктора) ? Не так просто. Телевизор у меня еще ютуб и торренты умеет. typedef'у нужно выучить написать те же самые требуемые типы. Смартпойнтеры приходится использовать из-за неконтролируемого процесса копирования внутрях. Без них будет копироваться по значению - еще "лучше". Вместе с move() это как раз костыли, подпирающие абстракцию, просто не чугунные а алюминиевые. Ок, давай попробуем засунуть более-менее сложный класс с запрещенными конструктором и деструктором куда нибудь, например в set и пробежаться меняющим алгоритмом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 12:12 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglВот я воспользовался другими методами и выяснил, что у меня в телевизоре - Андроид. И стало понятно, чего он так тормозит на определенных операциях. Я недоволен результатом такого "абстрагирования" производителя. Я подозреваю что у тебя современная плазма типа Smart-TV. Если ты подключен на цифру - то тормоз при переключении каналов никак не связан с Андроидом. Это лаг передающего оборудования. Я могу предположить что оно в 1 момент времени транслирует тебе всего 1 канал и чтобы переключить на другой его надо скоммутировать на другой источник и в соотв с "их" протоколами подождать "наполнения буфера". 0.5 - 2 сек в зависимости от качеста ИМХО. Я подчеркну что я на самом деле не знаю как работают современные провайдеры цифрового ТВ. И это есть моё предположение. Но если-бы ты требовал гарантий быстрого переключения между Fox и Sport к примеру (ну пока идёт реклама на матче - ты быринько смотришь новую серию "Наруто") то в таком случае ТВ-провайдер должен транслировать тебе СРАЗУ 2 сетевых потока. Думаю это технически реализуемо но ИХ сетевое слегка ОФИГЕЕТ и просядет от такой услуги. Ну да бох с ним. А если ты счастливый обладатель старого доброго аналогового ТВ (антена на балконе) то фактически все OVER 100 каналов принимаешь одновременно и лаг между переключениями связан просто с "гашением экрана" в современных ТВ тюнерах я думаю это для предотрващения неприятного эффекта "дёргания" кадровой развертки и вообще для кошерности и красивости. Данный артефакт почти незаметен. Ну я по крайней мере его вообще не замечаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 12:12 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Для проверки насколько Андроид вреден - можно ради прикола найти еще более старый цифровик где всместо андроида "фирменная прошивка" от производителя - жлобский интерфейс который показывает "вырвиглазную табличку" и список каналов и попробовать попереключать. Я думаю лаг будет точно такой-же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 12:16 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
mayton, полминуты на запуск апплета "yuotube" и еще секунд 15 до этого на загрузку панельки апплетов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 12:23 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Siemarglmayton, полминуты на запуск апплета "yuotube" и еще секунд 15 до этого на загрузку панельки апплетов Это хреново чел. А кликни версию Андроида. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 12:29 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Siemargltypedef'у нужно выучить написать те же самые требуемые типы. непонимание. Там ты один раз тип определяешь как шаблон, потом ты забываешь про тип, который в шаблоне использовал. Хотя я что-то не догоняю точно, у меня не было проблем с "запоминанием" типа шаблона, так как он получается из головы по контексту. о__о Смартпойнтеры приходится использовать из-за неконтролируемого процесса копирования внутрях. Без них будет копироваться по значению - еще "лучше". Вместе с move() это как раз костыли, подпирающие абстракцию, просто не чугунные а алюминиевые. можно же определить конструктор копирования и оператор присваивания. Ок, давай попробуем засунуть более-менее сложный класс с запрещенными конструктором и деструктором куда нибудь, например в set и пробежаться меняющим алгоритмом.ну если не присваивать прям экземпляры класса, то всё ок должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 12:32 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
авторЕсли ты используешь STL, boost итп - ты уже вторичен, - ты можешь только гадать, что получится в итоге. STL не проблема, да и boost наверное тоже (он слишком большой чтобы я говорил за него весь) Но в целом, тенденция развития языка мне совершенно не нравится. Слишком редко применяемые фичи добавляются. Но это не boost и STL, это абстранирование большее. Вот например недавно на хабре статья про DI: https://habrahabr.ru/company/infopulse/blog/248879/. Там, в частности, приводится код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. и тут же говорится что это аналог Код: plaintext 1. Но ведь можно же просто написать return 42; ! Шаблоны как явление вовсе не плохи, сами по себе, плохо (имхо) когда они нагромождаются один на другой, и чтобы понять где падает (или просто не то значение в отладчике видно), надо изучить огромную массу кода, чтобы понять, что править. Пока не поймешь не знаешь, надо где-то в цепочке шаблонов другой флаг поставить, или алгоритм переделывать. Причем код этот часто неочевидный, не простой, и изучить его быстро практически нереально. При нехватке времени начинается импровизация и костылирование. Все эти навороты вроде бы и оправданы чем-то, но поднимают требования к способностям головы, а она не молодеет, да и тупо затрудняют визуальное восприятие. Мысль читается легко, когда она краткая. А это ничего не кратко. Хотел написать об этом раньше, но подумал, что может быть это мало кому проблема. Мне все-таки уже 40, нередко говорят, что возраст для профессии непригоден. Думаю, что преодолевать нагромождения на пустом месте да, уже не интересно, нет былого задора. Я не представляю себе увеличения объема исходного кода вдвое, причем кода логики, не вижу оправданий. Впрочем, может быть это опять же мое личное, еще в студенчестве отказался изучать Паскаль после Си сразу после знакомства с begin и end - зачем язык, который тратит 8 символов на то, что можно сделать в 2. Мой первый код на С++ был на Borland 3.1. В начале 2000х столкнулся с ATL и лично наткнулся на то, что быстро исправить код на ней не могу, мне надо понимать все, что скрыто за шаблонами, а это долго. То что предлагается сейчас, это еще больший масштаб раздувания кода. И на этой статье, впервые за 20 лет, я ощутил, что С++ становится настолько не моим, что это уже не интересно разгрызать. Все эти годы я был уверен, что С++ это круто, и я бы знакомил с ним детей как с передовым. А после этой статьи возникло ощущение, что я не хочу этим грузить сына. Потому что не хочу грузить его фигней. Потому что сплошное шаблонизирование это уже над-С++-ный язык, обладающий совсем иными свойствами. Это не то, что я брался изучать 20 лет назад и с чем работал и работаю. Мне кажется, возможности шаблонов используются идеологически не для того что было задумано изначально. И что это нехорошо не только для меня, но и для языка в целом. Неправильный это путь. Огромная мощь была в небольшом количестве фич, каждую из которых можно было многократно повторить и программно решить любую задачу, оставаясь с логически краткой и понятной программой и высокой производительностью. А сейчас создается много фичек, каждая из которых служит весьма узкой цели, но значительно раздувают и язык и исходный код. И было бы идеологически неправильно массово применять такие фичи в разработке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 17:19 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
teo609Но в целом, тенденция развития языка мне совершенно не нравится. Слишком редко применяемые фичи добавляются. Но это не boost и STL, это абстранирование большее. Вот например недавно на хабре статья про DI: https://habrahabr.ru/company/infopulse/blog/248879/. Причем здесь левая статья на хабре к развитию языка в целом? teo609Мой первый код на С++ был на Borland 3.1. В начале 2000х столкнулся с ATL и лично наткнулся на то, что быстро исправить код на ней не могу, мне надо понимать все, что скрыто за шаблонами, а это долго. Если человека в молодости били и насиловали, то у него тоже будет некоторое мнение об окружающих, но несколько скажем так далекое от действительности. teo609И на этой статье, впервые за 20 лет, я ощутил, что С++ становится настолько не моим, что это уже не интересно разгрызать. А мне, к 40 годам наоборот, все больше нравится. Вывод: дело не в возрасте, а в том что наверно не тем занимаетесь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 17:57 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Мне с самого начала не нравится что плавает сам предмет спора. Оба полюса мнений касаются С++ и С++. Хотя по сути спор идёт в разрезе С++ и Процессор шаблонов в С++. По сути все нарекания касаются не самого С++ а его ПРОЦЕССОРА ШАБЛОНОВ и ЮЗКЕЙСОВ которые были созданы на его базе за всю историю существования языка. Хочется спросить. Ну если не процессор шаблонов то ЧТО ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 18:08 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
maytonМне с самого начала не нравится что плавает сам предмет спора. Оба полюса мнений касаются С++ и С++. Хотя по сути спор идёт в разрезе С++ и Процессор шаблонов в С++. По сути все нарекания касаются не самого С++ а его ПРОЦЕССОРА ШАБЛОНОВ и ЮЗКЕЙСОВ которые были созданы на его базе за всю историю существования языка. Хочется спросить. Ну если не процессор шаблонов то ЧТО ? А мне кажется что коллеги Siemargl и Anatoly Moskovsky и тд по топику берут формулы вычисления площади абстрактной дыры абстракции из разных справочников и доказывают друг другу чья формула круче... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 18:57 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
д0k, Все в рамках темы )) Но вообще конечно реальных альтернатив С++ не существует. Иначе бы при таком количестве ворчунов все они на эти альтернативы уже бы перешли. Но вместо этого они ходят по С++ форумам и плачутся, как им трудно с С++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 19:30 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
teo609То что предлагается сейчас, это еще больший масштаб раздувания кода. И на этой статье, впервые за 20 лет, я ощутил, что С++ становится настолько не моим, что это уже не интересно разгрызать. Все эти годы я был уверен, что С++ это круто, и я бы знакомил с ним детей как с передовым. А после этой статьи возникло ощущение, что я не хочу этим грузить сына. Потому что не хочу грузить его фигней. Не хочешь - не грузи. Загрузи чем считаешь нужным, с остальным сам разберется. Лично я недавно узнал что то что я называл С++ оказывается называется С с классами, а С++ целиком мне просто не надо. Вместо плюсов есть куча других высокоуровневых ЯП, куда можно сделать вставки на голом С, если надо производительность или низкий уровень (WinAPI и т.д.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 19:37 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Siemarglполминуты на запуск апплета "yuotube" и еще секунд 15 до этого на загрузку панельки апплетов Андроид тут не причем. У тебя просто слабая аппаратная начинка для используемого апплета YouTube. У меня на телефоне когда-то давно YT запускался почти мгновенно. А теперь запускается секунд 10, а потом еще минуту видео идет с лагами. Телефон один и тот же, просто сам YouTube обновился и для комфортной работы требует более мощное железо. Так что проблема с долгим запуском YouTube решается (на пару лет) заменой телевизора на современный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 20:19 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
У меня где-то валяется Minix Android Box. Это внешняя smart-tv приставка. Похожа на эту. Щас не помню точно модель но вроде X7. MINIX NEO X7 Процессор: Rockchip RK3188, ARM Cortex-A9 Quad core, 1.6-1.8GHZ; GPU: Quad Core Mali 400 (Open GL ES2.0/1.1, Open VG1.1, Flash 11.1) Операционная система: Google Android 4.2.2 Оперативная память (ОЗУ): 2 GB, DDR3 Встроенная память: 16 GB Я к чему это. Во первых давайте сравним ARM Cortex-A9 с вашими бортовыми Intel. Я не спец по процессорам но КМК архитектура и тактовая частота будет существенно отставать. Видео H264 воспроизводится? Ну дай бох. А что вам еще надо от эконом-проца? Или вы хотите толкать Intel в каждый утюг? И вообще разумны ли обвинения которые Зямя предъявляет в адрес Андроид? Я не знаю. По мне так это обычный себе Линукс. А видео-кодеки все равно пишут на сях и портируют с изменниями в 1% в части разрядности там или вызовов OS API. Что мы ругаем? Что ругаем-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 20:52 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
maytonА видео-кодеки все равно пишут на сях и портируют с изменниями в 1% в части разрядности там или вызовов OS API. Если не путаю: видеокодеки вообще воплощают в железе. Я к тому что это не то пример чтобы сравнивать ОСы и ЯП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 21:29 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Dima Tвидеокодеки вообще воплощают в железе. а топологию и микропрограммы - дух святой приносит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 22:05 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonА видео-кодеки все равно пишут на сях и портируют с изменниями в 1% в части разрядности там или вызовов OS API. Если не путаю: видеокодеки вообще воплощают в железе. Я к тому что это не то пример чтобы сравнивать ОСы и ЯП. Ну а если завтра будет устаканен H266 то нам придется выкинуть на свалку наши Смарт-Телевизоры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 22:20 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
maytonDima Tпропущено... Если не путаю: видеокодеки вообще воплощают в железе. Я к тому что это не то пример чтобы сравнивать ОСы и ЯП. Ну а если завтра будет устаканен H266 то нам придется выкинуть на свалку наши Смарт-Телевизоры. И выкинем. Сомневаешься? У отца в саду приставка для приема цифрового ТВ. Буквально сегодня разбирался почему не показывает, олимпиада на носу, смотреть надо, отказалось стандарт DVB-T умер, DVB-T2 прошивками не лечится, надо железо менять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 22:42 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Ну дай бох. Главное чтоб мы не спутали в одну кучу дедлайн техподдержки и техническую возможность обновить firmware. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2016, 22:47 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
д0kmaytonМне с самого начала не нравится что плавает сам предмет спора. Оба полюса мнений касаются С++ и С++. Хотя по сути спор идёт в разрезе С++ и Процессор шаблонов в С++. По сути все нарекания касаются не самого С++ а его ПРОЦЕССОРА ШАБЛОНОВ и ЮЗКЕЙСОВ которые были созданы на его базе за всю историю существования языка. Хочется спросить. Ну если не процессор шаблонов то ЧТО ? А мне кажется что коллеги Siemargl и Anatoly Moskovsky и тд по топику берут формулы вычисления площади абстрактной дыры абстракции из разных справочников и доказывают друг другу чья формула круче... Скорее вопрос в другом - чем каждый из нас готов пожертвовать во имя абстракции. С Джоелем я согласен. Anatoly Moskovskyд0k, Все в рамках темы )) Но вообще конечно реальных альтернатив С++ не существует. Иначе бы при таком количестве ворчунов все они на эти альтернативы уже бы перешли. Но вместо этого они ходят по С++ форумам и плачутся, как им трудно с С++ А они и перешли. Объемы софта выросли, требуется более высокий уровень абстракции. Сервер-сайд теперь Ява, клиент - дНет (или Ява или Веб), вебсервисы на всяком скриптовом говне. Но в определенной области С++ можно заменить только на С++ без STL, или просто С или на С--. Alibek B.Siemarglполминуты на запуск апплета "yuotube" и еще секунд 15 до этого на загрузку панельки апплетов Андроид тут не причем. У тебя просто слабая аппаратная начинка для используемого апплета YouTube. У меня на телефоне когда-то давно YT запускался почти мгновенно. А теперь запускается секунд 10, а потом еще минуту видео идет с лагами. Телефон один и тот же, просто сам YouTube обновился и для комфортной работы требует более мощное железо. Так что проблема с долгим запуском YouTube решается (на пару лет) заменой телевизора на современный. Просто я не куплю себе ни телевизор этого же производителя ни андроид-телефон (еще и с огромной дырой в безопасности). Не собираюсь платить за некачественный (тормозной) код. Андроид у меня в ТВ скорее всего 4.х, т.к модель 2014г ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 00:16 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Dima Tотказалось стандарт DVB-T умер а мужики то и не знают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 01:24 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglА они и перешли. Объемы софта выросли, требуется более высокий уровень абстракции. Сервер-сайд теперь Ява, клиент - дНет (или Ява или Веб), вебсервисы на всяком скриптовом говне. Это все изначально на этом ширпотребе было )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 01:41 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
CEMbSiemargltypedef'у нужно выучить написать те же самые требуемые типы. непонимание. Там ты один раз тип определяешь как шаблон, потом ты забываешь про тип, который в шаблоне использовал. Хотя я что-то не догоняю точно, у меня не было проблем с "запоминанием" типа шаблона, так как он получается из головы по контексту. о__о Смартпойнтеры приходится использовать из-за неконтролируемого процесса копирования внутрях. Без них будет копироваться по значению - еще "лучше". Вместе с move() это как раз костыли, подпирающие абстракцию, просто не чугунные а алюминиевые. можно же определить конструктор копирования и оператор присваивания. Ок, давай попробуем засунуть более-менее сложный класс с запрещенными конструктором и деструктором куда нибудь, например в set и пробежаться меняющим алгоритмом.ну если не присваивать прям экземпляры класса, то всё ок должно быть? Собрал простенький примерчик, да - move помогает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. вывод Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 02:29 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
пока из недовольных новыми фичами, а так понимаю, только те, кто не до конца разобрался в них. std::move не костыль, а нормальное решение. я так понимаю, если точно знаешь, что есть такой конструктор, то можно написать вместо std::move(some) static_cast<some_type&&>(some). с помощью этой фукции ты обозначаешь место ,в котором ты хочешь переместить объект, что дальне ты его не будешь использовать, только уничтожишь. без этого по умолнчанию ты копируешь (и это логично). то есть это место все равно как-то нужно обозначить. конечно, компилятор может и сам догадаться иногда, но лучше если ты имеешь способ явно это обозначить. можно пример когда применение шаблона замедляет рантайм. на счет примера с return 42, то всегда, и без шаблонов, можно нагородить кучу кода, чтобы сделать что-нибудь простое. это как бы... шаблоны тут не причем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 09:38 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
ого, пока писал перевалило на следующюю страницу:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 10:08 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
alexy_blackпока из недовольных новыми фичами, а так понимаю, только те, кто не до конца разобрался в них. std::move не костыль, а нормальное решение. я так понимаю, если точно знаешь, что есть такой конструктор, то можно написать вместо std::move(some) static_cast<some_type&&>(some). с помощью этой фукции ты обозначаешь место , в котором ты хочешь переместить объект , Зачем ? alexy_blackчто дальне ты его не будешь использовать, только уничтожишь. без этого по умолнчанию ты копируешь (и это логично). Тем более зачем кудато перемещать обьект перед удалением? alexy_black то есть это место все равно как-то нужно обозначить. конечно, компилятор может и сам догадаться иногда, но лучше если ты имеешь способ явно это обозначить. Я вобще не понимаю, вы говорите о менеджере витуальной памяти и перетягиваете на себя одеяло у расработчиков ОС, или о жонглировании сылками и указателями... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 10:21 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
д0kЗачем ? Тем более зачем кудато перемещать обьект перед удалением? Затем, что если ты не хочешь копировать, а переместить объект. И не удалять его после копирования переноса. Т.о. не перед удалением, а вместо удаления. Но можешь этого и не делать, а копировать, как и раньше, никто не запрещает. Просто если хочется сделать move, теперь это возможно. д0kЯ вобще не понимаю, вы говорите о менеджере витуальной памяти и перетягиваете на себя одеяло у расработчиков ОС, или о жонглировании сылками и указателями... Мы говорим о более широких возможностях работы с объектами, виртуальная память тут ни при чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 14:22 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
CEMbд0kЗачем ? Тем более зачем кудато перемещать обьект перед удалением? Затем, что если ты не хочешь копировать, а переместить объект. И не удалять его после копирования переноса. Т.о. не перед удалением, а вместо удаления. Но можешь этого и не делать, а копировать, как и раньше, никто не запрещает. Просто если хочется сделать move, теперь это возможно. д0kЯ вобще не понимаю, вы говорите о менеджере витуальной памяти и перетягиваете на себя одеяло у расработчиков ОС, или о жонглировании сылками и указателями... Мы говорим о более широких возможностях работы с объектами, виртуальная память тут ни при чём. Я не понимаю вашей парадигмы написания кода на С++. В моей парадигме мувить обьекты значит дефрагментировать память, это системная операция по оптимизации использваония ресурсов. вот что в моей парадигме значит мувить..... Парадигма std::move еще больше повышает планку на старт вхождения в ЯП, что снижает количество его носителей и ареал комерческого применения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 14:59 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
д0kВ моей парадигме мувить обьекты значит дефрагментировать память, это системная операция по оптимизации использваония ресурсов. Я также понял как CEMb: CEMbЗатем, что если ты не хочешь копировать, а переместить объект. И не удалять его после копирования переноса. Т.о. не перед удалением, а вместо удаления. Суть в том чтобы оптимизировать код когда создается объект, тут же копируется (например при помещении его в STL контейнер) и оригинал более не используется, т.е. объект сразу создается в контейнере и мы избавляемся от этого лишнего копирования. Я тут прочитал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 15:33 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Dima Tд0kВ моей парадигме мувить обьекты значит дефрагментировать память, это системная операция по оптимизации использваония ресурсов. Я также понял как CEMb: CEMbЗатем, что если ты не хочешь копировать, а переместить объект. И не удалять его после копирования переноса. Т.о. не перед удалением, а вместо удаления. Суть в том чтобы оптимизировать код когда создается объект, тут же копируется (например при помещении его в STL контейнер) и оригинал более не используется, т.е. объект сразу создается в контейнере и мы избавляемся от этого лишнего копирования. Я тут прочитал Вариантов то всего 2.100500 1. передача через стек в алокатор контейнера . (Описанный вами случай) 2. Хранение в контейнере сслыки обьекта находящегося на куче. 2.100500. Велосипеды с меморимапед файлами и разделяемой памятью. Какой % случаев гарантированно покрывает std::move ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 15:44 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
19396698 Джоэл СполскиВсе нетривиальные абстракции дырявы поведения std::move нельзя назвать тривильаным... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 15:51 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
д0kКакой % случаев гарантированно покрывает std::move ? "перемещение" не очень удачный термин, вводит в заблуждение, память ведь не ящики на складе, где можно ящик на другую полку переместить. http://www.ozon.ru/context/detail/id/34747131/ 5.1. Азы std::move и std::forward Полезно подойти к std::move и std::forward с точки зрения того, чего они не делают. std::move ничего не перемещает. std::forward ничего не передает. Во время выполнения они не делают вообще ничего. Они не генерируют выполнимый код - ни одного байта. std::move и std::forward являются всего лишь функциями (на самом деле - шаблонами функций), которые выполняют приведения. std::move выполняет безусловное приведение своего аргумента к rvalue, в то время как std::forward выполняет приведение только при соблюдении определенных условий. Это все. Пояснения приводят к новому множеству вопросов, но, по сути, история на этом завершена. ... Т.е. суть в том что по возможности объект сразу создается там где будет жить, по невозможности - создание на стэке и копирование. Почитай книжку, хорошо написано, я не настолько силен в плюсах чтобы связно повторить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 15:54 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
д0kКакой % случаев гарантированно покрывает std::move ? std::move разрешает компилятору считать явно объявленную переменную временной (чье значение программисту не интересно больше). Это компайл-тайм директива, позволяющая компилятору проводить более глубокую оптимизацию, за счет замены копирования на перемещение, там где это копирование было бы без этой директивы, потому что компилятор не всегда может отследить что переменная больше не используется в коде. Что тут не понятно-то? Причем тут эти ваши аллокаторы и прочая виртуальная память? Если такие элементарные вещи по-вашему поднимают порог вхождения в С++, то может не мучаться и заняться чем-то другим, ну там на бейсике что-ли писать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 16:14 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Dima T, всё Димыч. Пора нам с тобой на пенсию. Или в дев-опсы. А? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 16:34 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyд0kКакой % случаев гарантированно покрывает std::move ? std::move разрешает компилятору считать явно объявленную переменную временной (чье значение программисту не интересно больше). Это компайл-тайм директива, позволяющая компилятору проводить более глубокую оптимизацию, за счет замены копирования на перемещение, там где это копирование было бы без этой директивы, потому что компилятор не всегда может отследить что переменная больше не используется в коде. Что тут не понятно-то? Причем тут эти ваши аллокаторы и прочая виртуальная память? Если такие элементарные вещи по-вашему поднимают порог вхождения в С++, то может не мучаться и заняться чем-то другим, ну там на бейсике что-ли писать? Для меня элементарными вещами есть чистоплотность работы и областями видимости. Основопологающий принципы языка С++ обьявление - есть инициализация, выход из области видимости - деинициализация. При соблюдиии этого фундаментального правила я не вижу надобности std::move и прочих абстрактных фильтраторах мусора. Чисто не там где убирают , а там где не сорят. Сваливание в кучу всего с перекладыванием отвественности на компилятор , типа пусть от области видимости отслеживает ничем хорошим для проекта на С++ не закончится , инфа сотка... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 17:19 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
д0kПри соблюдиии этого фундаментального правила я не вижу надобности std::move и прочих Если нет надобности в оптимизациях, то зачем вам вообще С++? д0kЧисто не там где убирают , а там где не сорят. Нет. Чисто там где убирают. Но к std::move мусор не имеет отношения. Когда вы вводите переменную - это не бросание мусора, а наоборот повышение читаемости кода. В хорошем коде очень часто промежуточные значения записываются в переменные, вместо того чтобы нагромождать все в одно гигантское выражение. А часто алгоритм явно предусматривает цепочку действий над переменной, тогда отказаться от переменной нельзя без усложнения алгоритма. Для тех кто не хочет жертвовать производительностью ради читаемости и простоты алгоритма, и предназначен std::move. Но вы судя по всему пока так и не поняли что он делает, так что думаю обсуждать нужен ли он пока нет смысла )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 17:48 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНо вы судя по всему пока так и не поняли что он делает, так что думаю обсуждать нужен ли он пока нет смысла )) Я не понял или пропустил , когда в С++ было введено использованное Вами выше понятие временной переменной... Это шо за термин такой, кто определяет время ее жизни ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 18:16 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
д0kЯ не понял или пропустил , когда в С++ было введено использованное Вами выше понятие временной переменной... Это шо за термин такой, кто определяет время ее жизни ? Этот термин я использовал чтобы не повышать порог вхождения в этот топик ))) Впрочем сам термин "temporary object" естественно описан в стандарте С++ с незапамятных времен. См. п.12.2 стандарта С++ (любого). А вы если действительно хотите разобраться, то читайте про rvalue (с практической точки зрения это почти аналог temporary) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 18:29 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
maytonDima T, всё Димыч. Пора нам с тобой на пенсию. Не, мне не пора. Хотя денег больше чем достаточно и был жизненный план в 40 уйти на пенсию, уже почти 40, но пока морально не готов. Дети вырастут (это еще 10-15 лет) и тогда брошу все нах и займусь садоводством где-нибудь в южной части страны (КавМинВоды очень нравятся). Жена уже занялась садоводством, не успеваем съедать урожаи гороха Так что пока изучаю всякую хрень неизученную ранее от C# до генерации primes такая вот развлекуха ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 21:00 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyд0kКакой % случаев гарантированно покрывает std::move ? std::move разрешает компилятору считать явно объявленную переменную временной (чье значение программисту не интересно больше). Это компайл-тайм директива, позволяющая компилятору проводить более глубокую оптимизацию, за счет замены копирования на перемещение, там где это копирование было бы без этой директивы, потому что компилятор не всегда может отследить что переменная больше не используется в коде. Что тут не понятно-то? ...Ну не совсем так просто. Заглянем в душу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Результат Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. Что показывает, что конструктор копирования и конструктор перемещения не особо то отличаются. И в целом, шаблонная математика suxx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 22:53 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Не желая пугать неокрепшие умы, я не буду выкладывать оптимизированный код. Поверьте мне на слово, на чистом С этот пример в десяток раз будет короче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 22:56 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Dima TТак что пока изучаю всякую хрень неизученную ранее от C# до генерации primes такая вот развлекуха Давай курить архитектуры HighLoad MMORPG игрух в вебе. Там есть весь спектр задач. Мне вот щас нужен мультиплексированный I/O. Без него сервер невзлетит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 23:06 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglЧто показывает, что конструктор копирования и конструктор перемещения не особо то отличаются. И в целом, шаблонная математика suxx Это скомпилировано надеюсь с -O3 ? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 23:31 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglПоверьте мне на слово, на чистом С этот пример в десяток раз будет короче. Особенно хочу посмотреть, как будет короче работа с динамическими строками в С, и надежнее еще наверно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2016, 23:32 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglЧто показывает, что конструктор копирования и конструктор перемещения не особо то отличаются. И в целом, шаблонная математика suxx Это скомпилировано надеюсь с -O3 ? ))) Особенно хочу посмотреть, как будет короче работа с динамическими строками в С, и надежнее еще наверно Нет, это плейн компиляция. С -О3 gcc все еще не умеет компилировать (уже лет 8 как). Короче будет, надежней не будет. Хочешь повозмущаться - делай конрпримеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 01:21 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglХочешь повозмущаться - делай конрпримеры. Не вижу ни единой причины тратить время на обсуждение машинного кода сгенеренного без оптимизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 02:20 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
maytonПора нам с тобой на пенсию. Человек, написавший over 30000 постов, должен был уже успеть сходить на пенсию 3-4 раза "вот и старость прошла" (с) SiemarglПоверьте мне на слово, на чистом С этот пример в десяток раз будет короче. Не хочу верить на слово, хочу посмотреть код. Ведь было время я писал, программы в машинных кодах на сях, сехх тогда ещё не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 06:06 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglХочешь повозмущаться - делай конрпримеры. Не вижу ни единой причины тратить время на обсуждение машинного кода сгенеренного без оптимизации.Изначальный пойнт топика был в том, что неочевиден результат кода. Оптимизатор это только костыль, и после него вообще хрен пойми что получается Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 17:07 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglИзначальный пойнт топика был в том, что неочевиден результат кода. Оптимизатор это только костыль, и после него вообще хрен пойми что получается А нечего лезть в машинный код, не проведя профилирование. Считаете себя умнее компилятора? Ну может в таком тривиально примере как вы выше привели вы и сможете на пару процентов более быстрый код написать, но в реально сложных задачах, где имеет смысл применять С++ - никогда. Кроме того большинство проблем производительности вызваны не качеством генерации кода, а медленным алгоритмом. Поэтому нечего на С++ кивать коли руки кривые ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 17:53 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglИзначальный пойнт топика был в том, что неочевиден результат кода. Оптимизатор это только костыль, и после него вообще хрен пойми что получается .... Кроме того большинство проблем производительности вызваны не качеством генерации кода, а медленным алгоритмом. ... Еще есть и третий фактор - скрытые накладные расходы библиотек, в т.ч. шаблонных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 23:50 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyд0k, Все в рамках темы )) Но вообще конечно реальных альтернатив С++ не существует. Иначе бы при таком количестве ворчунов все они на эти альтернативы уже бы перешли. Но вместо этого они ходят по С++ форумам и плачутся, как им трудно с С++ в смысле не существует? во всех областях всегда есть куча очень реальных альтернатив. даже в области кодирования аппаратного обеспечения - есть куда более надежные и предсказуемые Erlang, ADA, да тот-же ANSI C, урезанный через MISRA. зато есть куча областей, где C++ в принципе неадекватен - начиная от веб сайтов, заканчивая геймдевом в части написания скриптов поведения персонажей (там где "нормальная" практика линковки по 15 минут в принципе не приемлема для процесса разработки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 13:32 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyИначе бы при таком количестве ворчунов все они на эти альтернативы уже бы перешли. Но вместо этого они ходят по С++ форумам и плачутся, как им трудно с С++ есть люди, которые плачутся, что в мире JavaScript есть jQuery, который, внезапно, для современных браузеров вообще-то уже и не нужен - можно делать динамические сайты и без него. т.е. определенная категория людей, критически мыслящих, понимает, что принятая в отрасли хрень, которая наслаивалась годами - она вообще говоря неадекватная для решаемых задач заказчика, и зачем вообще именно ее использовать при наличии более простых путей - это вопрос. хотя тут-же понабегут тысячи чуваков, которые вложили многие годы в изучение вот этих самых хреней (stl, boost, jquery, список можно продолжить), и которых сама мысль о том, что их знания неактуальны и их нужно выбросить на помойку - повергает в неосознанный панический ужас, потому они будут дежаться за свои заучивамые годами, но тормозные в рантайме и максимально отдаленные от реальных задач бизнеса нагромождения до последнего, пока "the vast majority" не сделает их маргиналами (возможно не при этой жизни). что, впрочем, не отменяет монструозность и неадекватность этих самых хреней. просто ты их выучил, и они у тебя не вызвали вопрос "а нафига так сложно?". ну так это просто ограничения твоего сознания, на самом деле - ты просто не можешь ответить на вопрос "а как можно сделать еще проще?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 14:03 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
nojavaпросто ты их выучил, и они у тебя не вызвали вопрос "а нафига так сложно? Говоря про отсутствие альтернатив я как раз это и имел в виду. Нет ничего проще. Все что предлагается - либо сложнее либо не все умеет. Вот например С как альтернатива С++ меня вообще не устраивает, т.к. там нет деструкторов, методов, исключений (не только это конечно), и все попытки фанатиков С объяснить мне что я должен обходиться без этого вызывают у меня лишь желание вызвать им санитаров )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 15:25 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskynojavaпросто ты их выучил, и они у тебя не вызвали вопрос "а нафига так сложно? Говоря про отсутствие альтернатив я как раз это и имел в виду. Нет ничего проще. Все что предлагается - либо сложнее либо не все умеет. Что именно подразумевается под всё? Всё что есть в природе и всё, что тебе нужно - это разные вещи. Конкретика где? Anatoly MoskovskyВот например С как альтернатива С++ меня вообще не устраивает, т.к. там нет деструкторов, методов, исключений (не только это конечно), Опять юношеский максимализм. Иногда таки стоит детям почитать MISRA и подобное, чтоб осознать, что а) динамическое управление памятью не нужно (а вот так - существуют только или вечноживущие объекты, или короткоживущие на стеке) б) деструкторы не нужны в виду а) в) исключения тоже не нужны, ибо это очердная форма goto, а так в мире есть process monitor и let it die модели, ничего лучше для надежности не придумано г) ну и отсутствие методов порадовало, да. неимоверно скажешь, может быть, чем a->my_method() отличается от my_method(a)? Anatoly Moskovskyи все попытки фанатиков С объяснить мне что я должен обходиться без этого вызывают у меня лишь желание вызвать им санитаров )) отлично, ты когда перейдешь в лигу mission critical fail tolerant code, ты обязательно санитаров заранее пригласи, когда тебя начнут колеги из проекта выносить, после попытки запихать туда boost или stl :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 15:36 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
nojavaдинамическое управление памятью не нужно Да, есть такой класс задач, где динамическая память не нужна. Их примерно 0.0001% от рынка софта. И мне абсолютно наплевать на эту часть рынка. Дальше не читал, ибо проекция вашего небольшого мирка на весь софт никому не интересна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 17:35 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskynojavaдинамическое управление памятью не нужно Да, есть такой класс задач, где динамическая память не нужна. Их примерно 0.0001% от рынка софта. В web приложении не нужна динамическая память (оопс, да да - там нужен лишь аппендируемый контекст mmap()-еd ara, сделанный как стек). В любом парсере не нужна динамическая память. В библиотеке nosql баз данных - оопс, тоже не нужны malloc()/free() забавно, да? Anatoly MoskovskyИ мне абсолютно наплевать на эту часть рынка. Ты серьезно думаешь, что кому-то не наплевать на то, на что там тебе плевать в силу ограниченности твоего мышления? Anatoly MoskovskyДальше не читал, ибо проекция вашего небольшого мирка на весь софт никому не интересна. У тебя кванторное размножение личности? Ну да, про санитаров же ты не зря упомянул... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 17:50 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
nojavaТы серьезно думаешь, что кому-то не наплевать на то, на что там тебе плевать в силу ограниченности твоего мышления? Разница в том, что это не я, а вы указываете другим на чем им писать программы )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 17:52 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskynojavaТы серьезно думаешь, что кому-то не наплевать на то, на что там тебе плевать в силу ограниченности твоего мышления? Разница в том, что это не я, а вы указываете другим на чем им писать программы )) я? вообще-то это ты задвигал, что дескать если тебе 40 лет и тебе трудно на C++, то ты занимаешься чем-то не тем. 19396461 бугага. продолжай в том-же духе, твое рефлективное мнение очень ценно для самодиагностики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 17:59 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
nojavaя? вообще-то это ты задвигал, что дескать если тебе 40 лет и тебе трудно на C++, то ты занимаешься чем-то не тем. 19396461 И где здесь я говорю кому-то чем заниматься? Я там объясняю что причина трудностей с С++ не связана со старостью. Но глядя на ваш случай, допускаю что был неправ )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 18:08 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskynojavaя? вообще-то это ты задвигал, что дескать если тебе 40 лет и тебе трудно на C++, то ты занимаешься чем-то не тем. 19396461 И где здесь я говорю кому-то чем заниматься? Я там объясняю что причина трудностей с С++ не связана со старостью. Но глядя на ваш случай, допускаю что был неправ )) ты там пытаешься объяснить человеку, чем ему не надо заниматься, этого вполне достаточно. а человек же тебе пытался сказать, что не смотря на свой опыт в IT (40 лет) - он в упор не понимает, зачем в C++ нагородили вот это все барахло в таких мегаколичествах, и которое ему теперь нужно несколько лет осваивать, просто чтоб получить возможность решать свои непосредственный прикладные задачи без риска разрушить мир. даже в Oracle такого нет - там можно стать продуктивным за примерно пару недель с нуля (прочитав листов 200), без риска разрушить цивилизацию, поставив не там запятую. и это - не смотря на 40 томов приложенной базовой документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 18:14 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Bjarne Stroustrup C++11 feels like a new language ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 18:18 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Модератор: Прекращайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2016, 19:18 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskynojavaдинамическое управление памятью не нужно Да, есть такой класс задач, где динамическая память не нужна..... Она очень удобна, и многие вещи без нее просто не сделать. Но неконтролируемое использование динамической памяти в STL - достаточно дорогое удовольствие. Особенно если сравнивать со стеком. Это немногим лучше того же GC. Еще для меня было большим сюрпризом, что MSVC рантайм по умолчанию на _каждый_ malloc дергает системный вызов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2016, 15:35 |
|
||
|
Пятничный бунт
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovskyпропущено... Да, есть такой класс задач, где динамическая память не нужна..... Она очень удобна, и многие вещи без нее просто не сделать. Спорное утверждение, апологеты функционального программирования и вовсе сейчас очень широко улыбаются. SiemarglНо неконтролируемое использование динамической памяти в STL - достаточно дорогое удовольствие. А еще дорогим удовольствием являются exceptions, и .so/.dll с этими C++ ными mangling именами порой 1000 байт длиной, которые нужно связывать при старте. SiemarglОсобенно если сравнивать со стеком. Это немногим лучше того же GC. в том-то и дело, что STL при ее архитектурных ограничениях не предполагает альтернативы. если у тебя требование запрета на использование exceptions и dynamic heap (realtime системы, OpenCL, контроллеры и прочее) - то все это "богатство" просто летит в шредер, и "современный C++" превращается в C with objects, вся польза которого - это лишь namespace isolation.... который опять-же сделан предельно криво в случае .so/.dll - проблема строковых констант по 1000 байт длиной. SiemarglЕще для меня было большим сюрпризом, что MSVC рантайм по умолчанию на _каждый_ malloc дергает системный вызов. это известный баян, детей пугать разве. любой чуть более, чем на три файла проект довольно быстро приходит к замене не только стандартного malloc/free, но и new/delete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2016, 13:37 |
|
||
|
|

start [/forum/search_topic.php?author=Oleg_Oleg&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
1ms |
| others: | 419ms |
| total: | 651ms |

| 0 / 0 |
