The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск глобальной децентрализованной файловой системы IPFS 0..."
Отправлено Ordu, 01-Мрт-21 01:33 
>> Это теория которая оторвана от практики. Это абстракция, полезность которой ограничена.
>> Для работы с проблемами mm её недостаточно, тебе нужна другая абстракция.
> Вот именно, что не нужна никакая абстракция, есть процесс отладки, который даст
> эти оценки.

Процесс отладки -- это неформализованный метод. Кустарный. Если бы он был действительно методом, была бы методика применения отладчика, которая гарантирует, что следование ей избавляет программу от багов. В смысле вот я прошёлся по этой методике, получил программу, и теперь готов продавать программу внося в EULA пункт о моей материальной ответственности за каждый найденный баг в моей программе.

>> А как же инкапсуляция?
> Это абстракция которая в головах.

Это не ответ на мой вопрос. Если ты начинаешь сравнивать значения указателей из разных мест, то с большой вероятностью тебе придётся забить на инкапсуляцию.

>> Это проблема CS. CS обслуживает IT. IT -- это технология. Основное отличие
>> технологии от кустарщины -- это способность гарантированно получать воспроизводимый результат.
> Чтобы получать "воспроизводимый результат" необходимы стандарты. И нет никаких стандартов
> по вашей проблеме.

Вообще-то есть. Если ты возьмёшь любой плюс-минус серьёзный проект, и попытаешься туда заслать PR, то выяснится, что у них есть требования к оформлению кода, что у них есть запреты на использование каких-то синтаксических конструкций, есть принципы документирования кода, именования переменных, бла-бла-бла... Другое дело, что эти стандарты не распространяются на всю отрасль, а очень локальны.

>> Да. Это проблемы CS. Задача CS дать программисту надёжный способ работы с
>> памятью. Если можно этот надёжный способ выстроить поверх C'шной адресной арифметики,
>> то пускай он будет выстроен поверх C'шной адресной арифметики. Если он
>> не может быть выстроен поверх C'шной адресной арифметики, значит надо выстроить
>> его поверх чего-то ещё.
> А не легче, чтобы "программист" вообще забыл про понятие памяти? Ну вон
> всякие GC понасоздавали, а теперь скажите за что их хейтят?

Это было бы легче, но это не работает. GC ведь тоже не решает проблем. При этом он создаёт дополнительные проблемы, которые при этом местами не только привносят неудобств, они вообще недопустимы. В real-time приложениях рандомные задержки от GC сильно портят всё, потому что в real-time приложениях время отклика должно быть меньше заданной в ТЗ величины, и выполнение этого пункта ТЗ, должно быть доказано, а не просто заявлено программистом, что он сделал всё ок.

>> Технологии не могут полагаться на людей, потому как люди непредсказуемы,
>> а технологиям нужен предсказуемый результат.
> А технологии придумывают "непредсказуемые" люди, а "непредсказуемый" человек придумает
> именно технологию с "непредсказуемым" результатом, увы порочный круг.

Нет. То что ты излагаешь здесь -- это мудрость принятая на опеннете, но любая мудрость -- это от тупости. Можно поверх на недетерминированной системы выстроить детерминированную. Мне в качестве примера нравится термодинамика: законы термодинамики выводятся из модели выстроенной на микропараметрах, которые описываются распределениями вероятностей, и таким образом модель стохастическая. Но из стохастической модели выводится детерминированная модель с макропараметрами, и уже на этой теоретической модели строится вполне детерминированный паровоз.

В качестве другого примера, я могу привести тебе экономические теории принятия решений, которые созданы для того, чтобы иррациональный по природе своей человек, мог бы следовать этим теориям и принимать рациональные решения. Результат не 100%: от иррациональности сложно избавиться, но существенно лучше, чем без теорий.

>>> Какая проблема?????????
>> Проблема утечек памяти.
> Это проблема "программиста", не CS и даже не языка.

Если ты сто раз повторишь это утверждение, оно перестанет быть ложным и станет истинным.

>> Отладка -- это уровня "мамойклянус тестировал". Отладка -- это на тот случай,
>> когда у тебя мозгов не хватает доказать корректность своей программы, и
>> поэтому ты проводишь исследование типа "что же я там такого понаписал".
> Вот тут допущена грубейшая ошибка. Отладка (или обычно говорят профайлинг) и есть
> доказательство, а не "мамойклянусь" моя программа не больше N MB отжирает.
> Нынешние "программисты" на том же Ц++ забыли, что такое отладка.

Когда ты отлаживаешь, ты рассматриваешь все теоретические возможные состояния процесса? Нет же, ты рассматриваешь очень небольшое количество этих состояний. На основании своих наблюдений ты пытаешься рассуждениями доказать, что во всех нерассмотренных состояниях будет не хуже. Но -- хыхы -- тут ты упираешься опять в свою способность доказывать утверждения о коде. И по-хорошему, отладка -- это костыль на те случаи, когда твоей способности недостаточно, чтобы решить проблему без отладки.

>> Кстати, я в расте не использую дебуггер. Я могу рассуждать о
>> коде достаточно свободно, так чтобы выяснять где проблема силой мысли, а
>> не как-то там ещё.
> А зачем вам в расте дебаггер если он предназначен избавить вас от
> него и решить вашу проблему управления памятью, в ближайшем будущем "программисты"
> забудут и понятие память. Силой мысли еще заставьте компилятор оптимизировать ваш
> код и найти "баги" :)

Да, я о том и говорю. Я примерно так и делаю. По инерции после C я использовал отладчик в расте поначалу, а потом забил. Он нафиг не нужен.

>> Угу. А ты носитель сакрального знания, и именно поэтому ты не отвечаешь
>> на вопросы "как ты избавляешь программу от багов": это же сакральное
>> знание, которым нельзя делиться с непосвящёнными, так?
> Сакральное знание в том, как устроена память и каким правилам необходимо следовать
> чтобы с ней "безбажно" работать. И эти знания доступны всем.

Где можно почитать про эти правила, которым нужно следовать? Ты продолжаешь делать в разных вариациях делать это необоснованное утверждение, что можно писать без багов.

>> То же самое будет и с программированием. Бизнесу не нужны непредсказуемые ремесленники,
>> он работает с ними только от безысходности. Бизнесу нужны предсказуемые технологии.
>> И CS активно работает над тем, чтобы сделать IT предсказуемым и
>> воспроизводимым.
> Бизнесу пофиг, главное деньги.

Вот сейчас, ты второй раз произносишь псевдомудрость, чтобы дать себе повод выключить мозг. Да, бизнесу главное деньги. Бизнесмен вкинул свои деньги в проект, и если проект не взлетит, то он потеряет эти деньги. Вот программисту он платит оклад, и если проект не взлетит программист не останется внакладе. У него не отнимут заработанные за два года деньги. А вот бизнесмен просто потеряет деньги, выплаченные програмисту. Бизнесмену нужны гарантии.

Ты когда-нибудь нёс материальную ответственность за баги в своём коде, которые просочились в продакшн? Готов в обмен на +10% к зарплате взять на себя обязательство выплачивать неустойки клиентам из своего кармана за каждый найденный баг твоего авторства? Если нет, то ты не умеешь писать безбажный код.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру