Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Вот я и говорю, что знакомый аргумент. На форуме чуть ли не каждый первый рассказывает про прекрасный С++, но в дикой природе почему то попадается исключительно треш и содомия. Из свежих наблюдений — Архикад, который течет как не знаю что.
Ты ничего не понимаешь. Он течёт, потому что в самом соку
Здравствуйте, kaa.python, Вы писали:
KP>Предположим у тебя есть структура данных и указатель на неё. KP>Ты всегда можешь передать этот указатель куда-то еще (другой поток, асинхронно возникающее событие и т.п.)
Как const.
KP> и одновременно изменить данные из разных мест.
Не сможешь, ибо const
Если паблик морозов будет напрямую из разных потоков напрямую фигачить в одну и ту же память то будет каша, да.
И это будет исключительно по причине рукожопия говнокодера.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, kaa.python, Вы писали:
M>>Кто мешает написать прокси-объект, который разруливает атомарность доступа?
KP>Это не средство решение проблемы, это способ поставить табличку "не входи — убьет" и надеется что её прочитают.
Дюд, это ты не про С++ а про С вещаешь.
В С++ делаешь набор классов, которые рулят доступом к данным, и возможности лазить в данные на запись напрямую банально нет и на этом всё.
Придётся ходить через API, который будет уже разруливать.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, landerhigh, Вы писали:
L>Я подобное видел лет 15 назад на одном проекте. Получив в паре мест по сегфолту, все, вообще все завернули в shared_ptr, лишь бы не надорваться над продумыванием стратегии владения данными.
"Продумывание стратегии" довольно плохо вяжется с современными методологиями программирования
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, T4r4sB, Вы писали:
L>>Я подобное видел лет 15 назад на одном проекте. Получив в паре мест по сегфолту, все, вообще все завернули в shared_ptr, лишь бы не надорваться над продумыванием стратегии владения данными. TB>"Продумывание стратегии" довольно плохо вяжется с современными методологиями программирования
Ну это к ЯП вообше не относится.
Вон, тут Боинг учудил недавно.
была довольно много случаев когда была неочевидная зависимость данных друг от друга (тип тут "callback" менят то-то, тут вызывается эта функция и в итоге меняется то-то)
И я признаю что на C++ так сделать можно и народ делает. Так же я говорю о том что в функциональных языках так сделать (обычно) нельзя.
CC>В С++ делаешь набор классов, которые рулят доступом к данным, и возможности лазить в данные на запись напрямую банально нет и на этом всё. CC>Придётся ходить через API, который будет уже разруливать.
Да, если по-уму то так и делаешь, но язык тебе оставляет сделать возможность через жопу. А как видишь выше из цитаты люди такой возможностью активно пользуются, когда по не знаю, когда случайно, всё бывает. Да блин, будто у тебя никогда такой хтони не выходило за годы работы
Здравствуйте, T4r4sB, Вы писали:
TB>И с ассёртами (то есть абортами в дебаге и игнором в релизе) в куче операторов. TB>То есть в Расте достаточно ввести режим игнора паник, я верно понял?
Коды возврата нужны вместо вообще всех паник и исключений, в этом плане Раст выглядит соблазнительно со своими Result.
Здравствуйте, T4r4sB, Вы писали:
TB>"Продумывание стратегии" довольно плохо вяжется с современными методологиями программирования
А почему плохо? Что с современными методиками? Помню как во времена водопадов мы пытались затянуть в проекты RUP что бы хоть как-то сократить цикл выпуска продуктов и получить предсказуемость. Текущий вариант с короткими спринтами это как раз дает, главное не забывать включать дизайн и архитектуру перед началом работы. И что хорошо, по современным методикам тратить время на дизайн и архитектуру или нет отдается на откуп командам.
Здравствуйте, kaa.python, Вы писали:
KP>Коды возврата нужны вместо вообще всех паник и исключений
Даже такой нелюбитель исключений как я таки признаёт что есть случаи когда они бывают весьма полезны. Например если есть глубокий стек, который крайне редко "ошибается" а по основному пути должен работать максимально быстро то исключения (в табличной их реализации) оказываются весьма удобным инструментом.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Форум таки древовидный, и на какое сообщение отвечать непосредственно влияет на то, как тебя поймут.
Кроме того при ответе ты цитируешь на что отвечаешь, что задаёт контекст беседы.
И если ты процитировал одно но имел в виду не процитированное а что то своё — твой ответ будет понят совсем не так как ты себе ожидаешь.
KP> Да, если по-уму то так и делаешь, но язык тебе оставляет сделать возможность через жопу.
Потому этот язык и не для маппетов.
KP> Да блин, будто у тебя никогда такой хтони не выходило за годы работы
Вот чтоб такой — не выходило, ибо всех, кто пытался применять паттерн public morozoff без затей вышибали на мороз до того как они успевали пустить корни.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, kaa.python, Вы писали:
KP>Паники отключаются? Критический код не может содержать исключений (паник и всего на них похожего) и динамического выделения памяти.
Прикольно, я пару лет назад как раз работал над критическим кодом на C++ и мы отказались от исключений только из-за не предсказуемой задержки. И угадай, что ввели вместо них? Сюрприз, сюрприз! Паники
Здравствуйте, vaa, Вы писали:
vaa>Rust вроде бы системный? даже протолкнули в ядро линукса.
Еще нет, но какие-то извращенцы постоянно его туда проталкивают. Пока только для того, чтобы писать на нем драйвера. Недавно в рассылке что-то было на эту тему. Лично я против этого, не потому что не люблю Раст, я его люблю. Я против того, чтобы разводить зоопарк.
vaa>как раз непонятно, зачем писать прикладное по на нем, если ди или даже сишапр с ее ВМ уже достаточно шустры для этого? vaa>смысл?
А ты смотрел на Раст? Он вполне местами более высокоуровневый чем C#, скорее всего имеется ввиду его близость к железу, zero-cost абстракции и все в таком духе. Но это никак не мешает писать прикладное ПО.
Здравствуйте, kaa.python, Вы писали:
M>>Подводя итоги: не зря Mozilla сократила команду, работавшую над Rust. [/q]
KP>Язык программирования в котором разработчик выполняет работу компилятора по доказанию клрректности времени жизни объектов — это нонсенс.
В этом языке вопрос о корректности программы решается, как в суде, путем состязательного процесса. В качестве прокурора и судьи выступает компилятор.
Здравствуйте, blacktea, Вы писали:
B>Прикольно, я пару лет назад как раз работал над критическим кодом на C++ и мы отказались от исключений только из-за не предсказуемой задержки. И угадай, что ввели вместо них? Сюрприз, сюрприз! Паники
И на соответствие каким стандартам безопасности и какого уровня вы его собрались сертифицировать? Сюрприз, сюрприз! Никаким?
Здравствуйте, blacktea, Вы писали:
vaa>>смысл?
B>А ты смотрел на Раст? Он вполне местами более высокоуровневый чем C#, скорее всего имеется ввиду его близость к железу, zero-cost абстракции и все в таком духе. Но это никак не мешает писать прикладное ПО.
Смотрел, в целом он конечно в разы проще плюсов(глянул вчера гайд корэ страуса и мне поплохело)
и он даже иногда прикольный.
но объективно становлюсь на сторону Александреску https://habr.com/ru/post/460989/
После чтения некоторого количества кода на Rust возникают анекдоты типа
«Чувак пропускал дни кача ног», иллюстрируемых комиксами с людьми с
перекачанным торсом но ногами-спичками (прим.перев. По-русски, «Колосс на
глиняных ногах», но неточно) Rust ставит на первое место точное и
безопасное управление памятью и представляет это центром мира. Внезапно,
это редко является проблемной областью, что приводит к тому, что большая
доля планирования и кодирования уделяется, по сути, канцелярской работе
(которую языки с GC автоматизируют не глядя). Безопасное, предопределенное
переиспользование памяти — серьезная задача, но не единственная, или как
минимум не самая важная в программе. В итоге Rust тратит непропорциональное
количество ресурсов языкового дизайна только на это. Было бы интересно
посмотреть, насколько Rust разбухнет ради других аспектов языка;
единственный вариант это расширение языка, но вопрос в том, насколько
абстракции смогут помочь с неприятной необходимостью контролировать ресурсы
на всех уровнях.
Здравствуйте, CreatorCray, Вы писали:
CC>Даже такой нелюбитель исключений как я таки признаёт что есть случаи когда они бывают весьма полезны. Например если есть глубокий стек, который крайне редко "ошибается" а по основному пути должен работать максимально быстро то исключения (в табличной их реализации) оказываются весьма удобным инструментом.
Я люблю исключения и считаю их лучшим способом информировать об ошибках нежели коды возврата. Просто иногда ты никак не можешь использовать по независящим от тебя причинам.
Здравствуйте, kaa.python, Вы писали:
KP>И на соответствие каким стандартам безопасности и какого уровня вы его собрались сертифицировать? Сюрприз, сюрприз! Никаким?
Да, пока никаким, потому что если с самого начала такого research heavy проекта заморачиваться бюрократией, то можно десятилетиями на месте топтаться.
Здравствуйте, blacktea, Вы писали:
B>Да, пока никаким, потому что если с самого начала такого research heavy проекта заморачиваться бюрократией, то можно десятилетиями на месте топтаться.
Ну вот как сертифиуируете по какому-то серьёзному процессу, так и расскажешь про паники в критичном коде.