The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Обновление варианта GNU Coreutils, переписанного на языке Rust, opennews (??), 31-Янв-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


49. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +8 +/
Сообщение от Аноним (19), 31-Янв-22, 11:11 
Уже есть такой C++ называется!
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

61. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –6 +/
Сообщение от Аноним (2), 31-Янв-22, 11:26 
C++. Никакого контроля от компилятора за ошибочным кодом. Дожили
Ответить | Правка | Наверх | Cообщить модератору

66. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +1 +/
Сообщение от Урри (ok), 31-Янв-22, 11:36 
Кофемолка - мелет кофе.
Пылесос - собирает пыль.
Стиральная машина - стирает.
Компилятор - компилирует.

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

Ответить | Правка | Наверх | Cообщить модератору

69. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –1 +/
Сообщение от Аноним (2), 31-Янв-22, 11:39 
Сейчас недостаточно компилировать код, нужно следить за ошибками. Взгляни, как строги компиляторы в функциональных языках программирования, таких как Haskell или Idris. Rust - это попытка сделать более низкоуровневый язык с таким же сильным компилятором. Почему этому идёт такое яростное сопротивление - не понятно, идея-то классная
Ответить | Правка | Наверх | Cообщить модератору

86. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +3 +/
Сообщение от Аноним (16), 31-Янв-22, 12:01 
Чем сложнее компилятор, тем тупее ошибки делают растаманы. Как там в FF было: при проверке индекса массива растаманы перепутали сравнения больше-меньше.
Ответить | Правка | Наверх | Cообщить модератору

88. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +2 +/
Сообщение от Аноним (2), 31-Янв-22, 12:03 
Растаманы, растаманы, а сишники или джависты не делают ошибок в логике?
Ответить | Правка | Наверх | Cообщить модератору

135. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –1 +/
Сообщение от Урри (ok), 31-Янв-22, 12:37 
> нужно следить за ошибками

Для этого разработаны другие специализированные инструменты и полноценные процессы. Гуглить по ключевым словам "CI", "QA".

> Взгляни, как строги компиляторы в функциональных языках программирования, таких как Haskell

Хаскель не занимается отлавливанием ошибок. Хаскель - компилятор. Хаскель - компилирует. И все. О чем и речь.

> Rust - это попытка сделать более низкоуровневый язык с таким же сильным компилятором

Вы, растоманы, даже значения айтишных слов не знаете. А туда же, рассказывать как правильно.

Компиляция - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке. Все.

> Почему этому идёт такое яростное сопротивление - не понятно, идея-то классная

Идея (про строгую математику владения объектами) - классная. Зато вот реализация (вся, не только этой математики) - через жoпу.

А сопротивление почему я вам объясню:

Представьте себе ситуацию. Работает некий отдел проектирования, который разрабатывает мосты. Они уже лет 50 это делают, их мосты построены по всему миру и каждый день по ним проезжает несметное количество транспорта. Понемногу даже они развиваются и если раньше строили мосты каменные, то сейчас давно возводят железобетонные.

И тут забегает к ним в отдел некая обезьяна, только вчера слезшая с пальмы, и начинает вопить "вы все идиоты", "вы неправильно все делаете", "вот я знаю как надо", "достаточно взять гoвнo, пару палок, слепить все в кучу и будет самый лучший в мире мост!".

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

Даром что эта обезьяна не отличает компилятор от анализатора^W^W^W виадук от моста, даром что концепция ее палок меняется каждых полгода - вопли не прекращаются.

Вот поэтому вас и не любят.

Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

147. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +2 +/
Сообщение от Аноним (2), 31-Янв-22, 12:49 
> Гуглить по ключевым словам "CI", "QA".

Тестирование - это, конечно, хорошо, но хочется предотвращения и доказательства корректности.

> Хаскель не занимается отлавливанием ошибок. Хаскель - компилятор. Хаскель - компилирует. И все. О чем и речь

А кто соответствие типов проверяет? Ошибки типов как раз компилятор и отлавливает.

> Зато вот реализация (вся, не только этой математики) - через жoпу.

Что конкретно плохо? Компилятор компилирует, программы работают. Конкретно в новости программы не проходят всех тестов потому, что кореютилс имеют столько флагов и режимов, что все их реализовать не так-то просто и не так-то быстро (при том, что не факт что они шибко популярные, ну да ладно, есть и есть)

> И тут забегает к ним в отдел некая обезьяна, только вчера слезшая с пальмы, и начинает вопить "вы все идиоты", "вы неправильно все делаете", "вот я знаю как надо", "достаточно взять гoвнo, пару палок, слепить все в кучу и будет самый лучший в мире мост!".

Ну никто же не пришел к чувакам из coreutils с такими криками. Наоборот, люди сами строят мост.

С другой же стороны, на opennet'е набрасываются на любую разработку на Раст, что она будет априори говно. Чем это лучше?

Ответить | Правка | Наверх | Cообщить модератору

209. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –2 +/
Сообщение от Урри (ok), 31-Янв-22, 14:28 
> Тестирование - это, конечно, хорошо, но хочется предотвращения и доказательства корректности.

Хочется, не спорю.

> А кто соответствие типов проверяет? Ошибки типов как раз компилятор и отлавливает.

/устало/ компилятор - компилирует.

Он не отлавливает никакие ошибки типов - он работает в соответствии с правилами языка. Если язык декларирует неявное приведения числа к строке, то компилятор компилирует приведение числа к строке в соответствующий код. А если не декларирует, то компилятор не компилирует и выдает сигнал о несоответствии текста программы правилам языка (в просторечии - ошибка компилирования).

Всевозможные ошибки (в корректно написанной по правилам языка программе) отлавливают всяческие анализаторы. Например, не к ночи будь помянутая, pvs-studio.

> Что конкретно плохо?

Уже сотню раз писал, влом долго перечислять.
Коротко:
1) отсутствие продуманного дизайна языка,
2) перегруженный бессмысленными символами синтаксис (привет, регэкспы),
3) каша из компилятор/менеджер-пакетов/статический-анализатор/кофеварка-с-пылесосом,
4) невероятно глупое коммьюнити (глупее даже джаваскриптеров, хотя казалось бы такое невозможно)
5) постоянные заплатки, заплатки, заплатки...

И как итог - громадный и все время растущий технический долг.

> Ну никто же не пришел к чувакам из coreutils с такими криками. Наоборот, люди сами строят мост.

Ну я как бы выше и выразил приветствие именно этому проекту.

> С другой же стороны, на opennet'е набрасываются на любую разработку на Раст, что она будет априори говно. Чем это лучше?

"Репутация-с" (с)
Заслужили - теперь расхлебывайте. Не вижу противоречия.

Ответить | Правка | Наверх | Cообщить модератору

227. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Аноним (2), 31-Янв-22, 14:49 
> Он не отлавливает никакие ошибки типов - он работает в соответствии с правилами языка. Если язык декларирует неявное приведения числа к строке, то компилятор компилирует приведение числа к строке в соответствующий код. А если не декларирует, то компилятор не компилирует и выдает сигнал о несоответствии текста программы правилам языка (в просторечии - ошибка компилирования).

Ну вот - ошибку типов ловит же, раз не компилирует. Но вот как раз суть - в этом и есть, чтобы некорректные программы были запрещены самими правилами языка. Чтобы их срубал ещё компилятор как несоответствующие. Естественно, в соответствии с теорией полностью забанить все неверные программы нельзя, мы неизбежно будем или допускать какие-то невалидные, или запрещать какие-то валидные (а в общем-то и то, и то будем). Но можно пойти по пути усиления ограничений, и по этому пути пошёл Раст, вслед за другими функциональными языками.

> 1) отсутствие продуманного дизайна языка,
> 2) перегруженный бессмысленными символами синтаксис (привет, регэкспы),

С символами - ну черт его знает. Кому-то бессмысленными, кому-то осмысленными. Но в С++ перегруз тоже ужасный. В целом, да, Раст можно ругать, но есть альтернативы? Кто-нибудь ещё брался за эту же идею так же основательно, как Раст?

> 3) каша из компилятор/менеджер-пакетов/статический-анализатор/кофеварка-с-пылесосом

Карго да, мне не очень нравится, но вот компилятор, я считаю, должен сращиваться со статическим анализатором. Если код не пропускает анализатор - банить такой код (см. тезис выше)

> 5) постоянные заплатки, заплатки, заплатки...

А где их нет?

> 4) невероятно глупое коммьюнити (глупее даже джаваскриптеров, хотя казалось бы такое невозможно)

Субъективщина. Всякие бывают, конечно, но все эти наборы на коммьюнити языков - тот ещё аргумент

Ответить | Правка | Наверх | Cообщить модератору

275. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –1 +/
Сообщение от самокатофил (?), 31-Янв-22, 16:32 
> Карго да, мне не очень нравится, но вот компилятор, я считаю, должен
> сращиваться со статическим анализатором. Если код не пропускает анализатор - банить
> такой код (см. тезис выше)

Удачи потом в реализации компилятора. Даже если соберётесь с другом васяном в гараже. Даже маленькой компашкой. Даже организацией, без финансирования. Даже организацией с финансированием. Потратьте сколько, 10 лет на создание компилятора?)))

Ответить | Правка | Наверх | Cообщить модератору

286. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Аноним (286), 31-Янв-22, 17:14 
Ну взгляните на функциональные языки, тот же Haskell как нафарширован. В Idris можно вообще доказывать завершаемость функций. Доказуемое подмножество, правда, не Тюринг-полно, но вот в том-то и прикол, что Тюринг-полнота в части вопросов скорее вредит, чем помогает
Ответить | Правка | Наверх | Cообщить модератору

314. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –1 +/
Сообщение от самокатофил (?), 31-Янв-22, 19:03 
> Ну взгляните на функциональные языки, тот же Haskell как нафарширован. В Idris
> можно вообще доказывать завершаемость функций. Доказуемое подмножество, правда, не Тюринг-полно,
> но вот в том-то и прикол, что Тюринг-полнота в части вопросов
> скорее вредит, чем помогает

маргинальщина, имеет право ;)

Ответить | Правка | Наверх | Cообщить модератору

307. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –3 +/
Сообщение от Урри (ok), 31-Янв-22, 18:22 
> ошибку типов ловит же, раз не компилирует.

Не ошибку типов, а несоответствие текста программы языку. Это прямая и единственная работа компилятора.

> чтобы некорректные программы были запрещены самими правилами языка

Хотел бы я посмотреть на такие правила...
Правило компилятора 1: некорректные программы запрещены!
Правила компилятора 2: не смей дискриминировать слово-на-н, пока программируешь!
и т.д.

> Чтобы их срубал ещё компилятор как несоответствующие.

Это не забота компилятора, это забота анализатора.

> Но можно пойти по пути усиления ограничений, и по этому пути пошёл Раст, вслед за другими функциональными языками.

На самом деле раст попытался пойти по правильной дорожке. Сама идея то отличная.
Но рукожопы и безмозглые идиоты превратили его в гнилые макароны.

> Но в С++ перегруз тоже ужасный.

На С++ можно писать очень сложные, большие и синтаксически простые программы. На расте - нельзя.

> но есть альтернативы?

Миллион. Точнее пара десятков - все те языки, на которых сейчас успешно создается ПО.

> вслед за другими функциональными языками

Вот этот пассаж не понял. К чему тут функциональная парадигма с их чистыми функциями, рекурсией и продолжениями?

> компилятор, я считаю, должен сращиваться со статическим анализатором

Один единственный плюс: обезьяну вместо трех движений учить двум.
Зато минусов огромная куча: невозможность раздельной разработки и сопровождения, невозможность смены анализатора на другой, сложность сопровождения срощенного куска вместо модулей...

> А где их нет?

В расте их как-то слишком много. Отсылаю к чейнджлогам понаслаждаться.

>> невероятно глупое коммьюнити
> Субъективщина.

Не-а. Посмотрите на создаваемый код (на патчи к свеженькому cve, недавно обсуждали). Посмотрите на вопросы на форумах. А, главное, посмотрите на рассуждения апологетов раста. Я, если честно, не устаю удивляться насколько можно быть глупым.
Даже мой сын, который совсем недавно осилил паскаль и которого пока что никто ничему не учил - и то в программировании больше понимает.

Ну то есть умные люди есть, конечно. Кто-то же разрабатывает, пишет. Но само коммьюнити феноменально глупое.

Ответить | Правка | К родителю #227 | Наверх | Cообщить модератору

454. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Прохожий (??), 01-Фев-22, 16:17 
> Для этого разработаны другие специализированные инструменты и полноценные процессы. Гуглить по ключевым словам "CI", "QA".

Ну расскажи-ка, член якобы неглупого коммьюнити общества воинов АнтиРастового Сопротивления, почему баги по 15 лет висят в одной из самых-самых популярных си-шных либ?

> А сопротивление почему я вам объясню

Вот тебе куда лучшее объяснение. Твоё хреновое. Сидят такие старперы, привыкшие по старинке на глазок прикидывать да пальцем в небо тыкать в надежде найти очередной баг в своей на ладан дышащей конструкции очередного моста, который чудо, если уцелеет от какого-либо более-менее нештатного поведения окружающей среды. А тут приходит инженер с компьютером, с лазерной рулеткой, с новой более совершенной и быстрой технологией проектирования мостов, и говорит: "А задолбали ваши говномосты, уважаемые старперы. Вот вам новая технология. С её помощью вы получите новый мост в более сжатые сроки и более лучшего качества, чем то говно, которое вы привыкли проектировать не один десяток лет". Но мозги у старперов уже не те, что раньше (да и раньше особо не блистали по большей части), когнитивные способности тю-тю, что-то новое освоить уже не могут. Как выйти из положения, не лишаться же работы. "А попробуем-ка мы ором взять", - решают старперы и начинают делать то, что лучше всего умеют делать сейчас - пердеть на каждом форуме, в каждой теме о том, какие плохие новые технологии, на них, оказывается, можно тоже логические ошибки делать (как будто на их старых эти ошибки были в принципе невозможны).

> Хочется, не спорю.

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

> 1) отсутствие продуманного дизайна языка,

Субъективщина.

> 2) перегруженный бессмысленными символами синтаксис (привет, регэкспы),

Субъективщина.

> 3) каша из компилятор/менеджер-пакетов/статический-анализатор/кофеварка-с-пылесосом,

Есть сборщик, есть компилятор, есть менеджер пакетов. Каша - в твоей голове. Но Раст здесь точно ни при чём.

> 4) невероятно глупое коммьюнити (глупее даже джаваскриптеров, хотя казалось бы такое невозможно)

Ты это понял по паре-другой постов на данном форуме? Очень репрезентативная выборка. Ты или недотролль, если так действительно думаешь, либо яркий представитель того самого коммьюнити глупцов.

> 5) постоянные заплатки, заплатки, заплатки...

В каком языке, который сопоставим по сложности и функциональности с Rust, это не так?

> И как итог - громадный и все время растущий технический долг.

В каких КОНКРЕТНЫХ ФАКТАХ это выражается? Потому что твои фантазии буйные на эту тему могут интересовать только твоего психоаналитика, если у тебя таковой есть.

> Но рукожопы и безмозглые идиоты превратили его в гнилые макароны.

А всё финансируют тоже идиоты из Amazon, Google, Microsoft, Huawei, Meta и ещё пары десятков контор с мировым именем. Забыли у великого Урри спросить, куда и на что им деньги потратить.

> На С++ можно писать очень сложные, большие и синтаксически простые программы. На расте - нельзя.

Трындец. А Редокс, Серво и прочие крупные хоть и пока малочисленные проекты - это что по-твоему?


"Шарик! Бросай ружьё да всплывай поскорей!", ты как-то глубоко погряз в своих фантазиях, которые далеки от реальности.
Процитирую тебя же напоследок. "Я, если честно, не устаю удивляться насколько можно быть глупым".

Ответить | Правка | Наверх | Cообщить модератору

459. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Пькькь (?), 01-Фев-22, 16:52 
> Не ошибку типов, а несоответствие текста программы языку. Это прямая и единственная работа компилятора

Вы придираетесь к словам, чтобы увести от сути.

>> Чтобы их срубал ещё компилятор как несоответствующие.
>Это не забота компилятора, это забота анализатора

А надо добавить анализ как можно раньше, чтобы было больше у анализатора возможностей. По сути - срастить с компилятором

>На самом деле раст попытался пойти по правильной дорожке. Сама идея то отличная

О, по этому пункту мы согласны, отлично

> На С++ можно писать очень сложные, большие и синтаксически простые программы. На расте - нельзя.

Простые...


> Вот этот пассаж не понял. К чему тут функциональная парадигма с их чистыми функциями, рекурсией и продолжениями?

Поощрение неизменяемых данных, более строгая семантика языка в целом, упор на систему типов

Ответить | Правка | К родителю #307 | Наверх | Cообщить модератору

465. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +1 +/
Сообщение от Аноним (-), 01-Фев-22, 17:44 

>>Это не забота компилятора, это забота анализатора
> А надо добавить анализ как можно раньше, чтобы было больше у анализатора
> возможностей. По сути - срастить с компилятором

Да забей уже.
Когда в соседней новости сему "Знатоку" указали, что сематнический анализ - вполне считается частью компилятора, тупо приведя цитату из "Книги дракона", он с гордым и независимым видом свернул дискуссию "Это отсылка к авторитетам, а не аргумент! Это слив!".  
В общем, обыкновенный опеннетный "непризнанный гений".

Ответить | Правка | Наверх | Cообщить модератору

529. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Пькькь (?), 02-Фев-22, 00:40 
И то верно!
Ответить | Правка | Наверх | Cообщить модератору

513. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Урри (ok), 01-Фев-22, 22:17 
> Вы придираетесь к словам, чтобы увести от сути.

Нет, я точно называю вещи своими именами. Чтобы не возникало "я вам про Фому, а вы мне про Ерему".
Это у дебилов нет разницы между "трансляция", "компиляция" и "синтаксический анализ". Мы ведь не такие, правда?

> А надо добавить анализ как можно раньше, чтобы было больше у анализатора возможностей. По сути - срастить с компилятором

Я уже писал почему это идиотская идея. Повторяться лень.

>> Сама идея то отличная
> О, по этому пункту мы согласны, отлично

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

А раст - это один единственный плюс, и миллион минусов. Начиная с потрясающей лоскутности и заканчивая идиотской макаронностью из языка, анализатора, пакетного менеджера и препроцессора.

Пусть кто-то создаст другой язык на тех же принципах, возможно он действительно взлетит. Но прежде чем его создавать - надо хорошенько подумать. Не так, как принято сейчас среди смузихлебства "нечего думать, кодить надо!", а действительно продумать что и к чему.

Ответить | Правка | К родителю #459 | Наверх | Cообщить модератору

522. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Прохожий (??), 01-Фев-22, 23:44 
> Начиная с потрясающей лоскутности и заканчивая идиотской макаронностью из языка, анализатора, пакетного менеджера и препроцессора.

И ты можешь конечно обосновать свою позицию. Да? Потому что в очередной раз вываливать лозунги вместо аргументов - так только идиоты поступают.

Ответить | Правка | Наверх | Cообщить модератору

175. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +1 +/
Сообщение от Аноним (210), 31-Янв-22, 13:46 
>Rust - это попытка сделать более низкоуровневый язык с таким же сильным компилятором. Почему этому идёт такое яростное сопротивление - не понятно, идея-то классная

Но воплощение этой идеи - дерьмо.

Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

190. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +1 +/
Сообщение от Аноним (59), 31-Янв-22, 14:06 
Есть варианты лучше?
Ответить | Правка | Наверх | Cообщить модератору

211. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –1 +/
Сообщение от Урри (ok), 31-Янв-22, 14:30 
> Есть варианты лучше?

Есть. Умные указатели.

Ответить | Правка | Наверх | Cообщить модератору

230. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Аноним (2), 31-Янв-22, 14:50 
Это заплатка поверх имеющегося языка, не ограничивающая использование старых небезопасных указателей. А нужно брать ограничить использование старого. Плюс в С++ даже некоторые операции с умными указателями дают UB. А UB вообще должно быть запрещено и вызывать ошибку компиляции
Ответить | Правка | Наверх | Cообщить модератору

265. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Урри (ok), 31-Янв-22, 15:56 
> А нужно брать ограничить использование старого.

Не нужно. Я хочу иметь возможность рискнуть, но достичь выдающихся результатов. Яркий пример - написать код функции на встроенном ассемблере. С одной стороны - это самое опасное, что можно сделать. С другой стороны ускорение узкого места в 50-100 раз того однозначно стоит.

> UB вообще должно быть запрещено и вызывать ошибку компиляции

Если бы C++ поддерживал те же полторы платформы, что и раст - то да.

А так как и С и С++ поддерживают все (почти) существующие аппаратные платформы, которые зачастую могут очень сильно друг от друга отличаться (начиная с битности, математики переполнений, литл-/биг- эндиан, разным результатом деления 0 на 0 и т.д., и т.п.), то в принципе невозможно обойтись без "undefined behavior".

Ответить | Правка | Наверх | Cообщить модератору

281. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Аноним (286), 31-Янв-22, 17:01 
> Я хочу иметь возможность рискнуть, но достичь выдающихся результатов. Яркий пример - написать код функции на встроенном ассемблере. С одной стороны - это самое опасное, что можно сделать. С другой стороны ускорение узкого места в 50-100 раз того однозначно стоит.

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

> в принципе невозможно обойтись без "undefined behavior

Оно должно быть явно включаемым. Как unsafe. Чтобы было ясно, где UB может быть, а где нет.

Ну а так вообще - для большинства прикладного софта лучше уж согласиться на просадку производительности, и то - чисто гипотетическую! Не факт что реальную - чем на опасный код.

Ну или писать как в NASA, у них там был гайд "10 правил" для Си. Суровая штука, надо сказать

Ответить | Правка | Наверх | Cообщить модератору

303. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –1 +/
Сообщение от Урри (ok), 31-Янв-22, 18:09 
> В наши времена компайлеры могут ускорять лучше людей.

Странно, заказчики деньги платили мне, а не компилятору. Вот дураки, правда?

> Оно должно быть явно включаемым. Как unsafe. Чтобы было ясно, где UB может быть, а где нет.

Это записано в стандарте. Но, впрочем, возможно и нужно - для неосиляторов-вайтишников, которые не способны научиться элементарным вещам.

> Ну а так вообще - для большинства прикладного софта лучше уж согласиться на просадку производительности, и то - чисто гипотетическую! Не факт что реальную - чем на опасный код.

Философский вопрос: что лучше, падение программы раз в неделю, или постоянно отожранные 16 гиг в свопе и круглосуточные 80 градусов на камне...

> Ну или писать как в NASA, у них там был гайд "10 правил" для Си. Суровая штука, надо сказать

В любом, действительно профессиональном сообществе, есть свои "10 правил". Причем писаных. Причем явно добавленных файлом к репозиторию.

Ответить | Правка | Наверх | Cообщить модератору

455. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Пькькь (?), 01-Фев-22, 16:23 
> Философский вопрос: что лучше, падение программы раз в неделю, или постоянно отожранные 16 гиг в свопе и круглосуточные 80 градусов на камне

Ну да, ну да, ничего между этими двумя пугалами нет.

> Это записано в стандарте. Но, впрочем, возможно и нужно - для неосиляторов-вайтишников, которые не способны научиться элементарным вещам

Ну и в мусорку такие стандарты, разрешающие такую порнографию

Ответить | Правка | Наверх | Cообщить модератору

462. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Прохожий (??), 01-Фев-22, 17:05 
> Я хочу иметь возможность рискнуть, но достичь выдающихся результатов. Яркий пример - написать код функции на встроенном ассемблере.

Так и делай это ЯВНЫМ ОБРАЗОМ. Понимаешь разницу, между плохим поведением ПО УМОЛЧАНИЮ и хорошим?

> Если бы C++ поддерживал те же полторы платформы, что и раст - то да.

Rust поддерживает больше полутора платформ. Среди них, в частности, есть и с разными форматами того же эндиан. Такой "гений" и таких простых вещей не знать. Ай-яй-яй.

> А так как и С и С++ поддерживают все (почти) существующие аппаратные платформы, которые зачастую могут очень сильно друг от друга отличаться (начиная с битности, математики переполнений, литл-/биг- эндиан, разным результатом деления 0 на 0 и т.д., и т.п.), то в принципе невозможно обойтись без "undefined behavior".

То есть ты утверждаешь, что ВЫСОКОУРОВНЕВЫЙ ЯП C++ (к Си не буду цепляться, это, считай, высокоуровневый ассемблер) писали под эту всю кучу железнячего говна? Разъяснить тебе, горе-специалисту, что такое высокоуровневый язык программирования, и чем он отличается от низкоуровневых или сам справишься? А ещё про элементарную терминологию тут трындел. Рука-лицо, в общем. Если весь лагерь воинов АнтиРастового Сопротивления такой, то у меня для вас печальная новость - ваши дни как профессионалов сочтены.

> Это записано в стандарте. Но, впрочем, возможно и нужно - для неосиляторов-вайтишников, которые не способны научиться элементарным вещам.

Готов поставить тысячу долларов, что ты в их числе. Потому что запомнить наизусть спецификацию Плюсов объёмом в полторы тысячи страниц в миру никому не под силу (тебе так точно).

> Философский вопрос: что лучше, падение программы раз в неделю, или постоянно отожранные 16 гиг в свопе и круглосуточные 80 градусов на камне...

Тоже мне, мамкин философ. Если это твой нахрен никому не нужный, кроме твоего ЧСВ, домашний серверок, то всем насpать, что там и как часто падает. А если это приложение с десятками тысяч запросов в секунду и с миллиардными оборотами в день, то любое падение такого софта - это огромные убытки.

Ответить | Правка | Наверх | Cообщить модератору

247. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +1 +/
Сообщение от Аноним (247), 31-Янв-22, 15:10 
В сравнении и растом - да
Сами по себе - нет
:)
Ответить | Правка | К родителю #211 | Наверх | Cообщить модератору

144. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +2 +/
Сообщение от Аноним (144), 31-Янв-22, 12:46 
В C++ для этого есть отличные отдельные утилиты. А в Rust защиту от дурака приходится встраивать в язык. Дожили.
Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

151. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –2 +/
Сообщение от Аноним (2), 31-Янв-22, 12:53 
Ну да, защита от дурака должна быть встроенной. Если бы ее встроили в С++, было бы лучше всем
Ответить | Правка | Наверх | Cообщить модератору

213. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +1 +/
Сообщение от Урри (ok), 31-Янв-22, 14:32 
> Ну да, защита от дурака должна быть встроенной. Если бы ее встроили
> в С++, было бы лучше всем

Нет. Только дуракам.
А так как дураки в IT не нужны, то, следуя формальной логике, никому.

Ответить | Правка | Наверх | Cообщить модератору

250. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Аноним (2), 31-Янв-22, 15:16 
А откуда тогда в коде не дураков уязвимости постоянно? С этим же надо что-то делать. Нельзя быть настолько самонадеянным - думать, что можно писать код без ошибок
Ответить | Правка | Наверх | Cообщить модератору

268. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +1 +/
Сообщение от Урри (ok), 31-Янв-22, 15:59 
> А откуда тогда в коде не дураков уязвимости постоянно?

Все люди ошибаются.

> Нельзя быть настолько самонадеянным - думать, что можно писать код без ошибок

Только дураки думают, что можно писать код без ошибок. Умные пользуются процессами под названием 'Continuous integration' и 'Quality assurance'.

Ответить | Правка | Наверх | Cообщить модератору

297. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Аноним (286), 31-Янв-22, 17:45 
> Умные пользуются процессами под названием 'Continuous integration' и 'Quality assurance'.

Да. Но и добавить раннее отслеживание в компилятор ничуть не вредно

Ответить | Правка | Наверх | Cообщить модератору

300. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Урри (ok), 31-Янв-22, 18:04 
Вредно, ибо это не работа компилятора. Любая ошибка (а она будет) в коде этой проверки превращается в тяжелейшую гирю на поддержке.
Ответить | Правка | Наверх | Cообщить модератору

383. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Прохожий (??), 01-Фев-22, 02:34 
С возможностью отключить проверку - не вредно
Ответить | Правка | Наверх | Cообщить модератору

389. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Самокатофил (?), 01-Фев-22, 03:30 
> С возможностью отключить проверку - не вредно

Вредно, это в любои случае увеличивает кодовую базу, вероятность багов, и как следствие сопровождение. Не говоря уже о таких вещах как архитектура, и что это нарушает примерно сразу все 4 характеристики worse is better.

Ответить | Правка | Наверх | Cообщить модератору

464. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Прохожий (??), 01-Фев-22, 17:31 
Если код правильно организован (привет архитектуре), то по большому счёту пофиг, где он будет находиться - в компиляторе в виде подключаемой библиотеки, или в отдельном бинарнике.
Ответить | Правка | Наверх | Cообщить модератору

468. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Самокатофил (?), 01-Фев-22, 18:10 
В теории да, на практике нет.
Ответить | Правка | К родителю #464 | Наверх | Cообщить модератору

523. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Прохожий (??), 01-Фев-22, 23:48 
Были печальные прецеденты? Хотелось бы подробностей.
Ответить | Правка | К родителю #468 | Наверх | Cообщить модератору

457. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Пькькь (?), 01-Фев-22, 16:26 
> Вредно, ибо это не работа компилятора.

Кто сказал?

> Любая ошибка (а она будет) в коде этой проверки превращается в тяжелейшую гирю на поддержке

Ошибку в компайлере найти на дистанции легче, чем в 9000 приложений.

Ответить | Правка | К родителю #300 | Наверх | Cообщить модератору

463. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –1 +/
Сообщение от Прохожий (??), 01-Фев-22, 17:24 
> Нет. Только дуракам.
> А так как дураки в IT не нужны, то, следуя формальной логике, никому.

О, мы словосочетание, оказывается, такое знаем "формальная логика". Давай-ка вместе поразмыслим вслух.

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

Но я хочу продолжения банкета. Это дураки придумали строгую типизацию в Плюсах (по сравнению с почти полным отсутствием оной в Сях)?

Ответить | Правка | К родителю #213 | Наверх | Cообщить модератору

512. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Урри (ok), 01-Фев-22, 22:09 
> Но при этом утверждаешь, что предохраняться от ошибок не надо. Забавная логика, повеселил.

Нет, я такого нигде не утверждал. Я много раз писал по CI и QA, про статические анализаторы и процессы верификации программ.

Очередной растодебил пытается выбраться из лужи с помощью вранья. Как неожиданно (на самом деле - нет).

Ответить | Правка | Наверх | Cообщить модератору

524. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  –1 +/
Сообщение от Прохожий (??), 02-Фев-22, 00:08 
> Я много раз писал по CI и QA, про статические анализаторы и процессы верификации программ.

Напоминаю, с чего началась ветка. Тебе предложили подумать над тем, что неплохо бы включить в компилятор тех же Плюсов дополнительную проверку от дурака. Ты сказал, что такая защита не нужна, потому что дураки в ИТ не нужны.

А потом очередной сидиот слился на простом вопросе про то, кто же придумал строгую типизацию в Плюсах (которая принципиально, ничто иное, как очередная защита от дурака). И эти люди рассказывают там что-то про формальную логику. А теперь этот сикретин пытается выбраться из лужи, в которую сам себя и загнал. Ой.

Ответить | Правка | Наверх | Cообщить модератору

188. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +1 +/
Сообщение от _kp (ok), 31-Янв-22, 14:04 
Более вероятный вариант, что в очередной стандарт С++ какие то из фич Раста возьмут, чем будут переписывать на другой язык.
Феномен "маленького фатального недостатка" (сделано не нами) - никто не отменял.
Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

225. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Mike Lee (?), 31-Янв-22, 14:48 
ну и как, где там операционные системы написаные на ц++? ну была симбиан когда то и та померла.
Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

561. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Аноним (403), 02-Фев-22, 07:42 
Windows
Ответить | Правка | Наверх | Cообщить модератору

582. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от wyry (?), 02-Фев-22, 12:33 
Windows написана на C. Причём даже реализация ООП на C. Это забавно, учитывая что пользовательские инструменты, вроде Visual Studio заставляют использовать скорее C++, чем C. На C++ в винде только высокоуровневые вещи, но и они вытесняются C#-ом. Упомянутая Visual Studio написана на C++ и C#.
Ответить | Правка | Наверх | Cообщить модератору

593. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Старший Аноним (?), 02-Фев-22, 13:35 
В ОС не должно быть оверхеда, который привносит реализация ООП в компиляторах и ОС должны писать опытные разработчики, а не выпускники Урюпинского техникума, чтобы не стрелять себе и другим в ноги. Поэтому и используется язык С.

Помню в конце 90-х годов была хохма, якобы от лица Страуструпа, где он хвастается, что написал на С++ систему DOS, которая весит 60 MB. Хотя в то время DOS фирмы Microsoft, написанная на C и ассемблере, умещалась на дискету в 512 KB.

Ответить | Правка | Наверх | Cообщить модератору

597. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от wyry (?), 02-Фев-22, 13:49 
Так мне то это можно не объяснять, мне скорее интересно, почему сами Microsoft "стесняются" своих C-истоков)) и в их основной IDE нельзя просто отдельно выбрать проект на C, а надо выбрать ПРОЕКТ НА C++ и в настройках включить компилятор в режим C.
Ответить | Правка | Наверх | Cообщить модератору

634. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от Аноним (634), 03-Фев-22, 10:52 
> в их основной IDE нельзя просто отдельно выбрать проект на C

А в чём смысл? Запретить компиляцию цпп-файлов?

> надо выбрать ПРОЕКТ НА C++ и в настройках включить компилятор в режим C.

Компилятор сам определяет режим по расширению файла.

Ответить | Правка | Наверх | Cообщить модератору

631. "Обновление варианта GNU Coreutils, переписанного на языке Ru..."  +/
Сообщение от lockywolf (ok), 03-Фев-22, 08:11 
> C++. Никакого контроля от компилятора за ошибочным кодом. Дожили

Как это нет? Навороченная система типов в наличии.

Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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