LINUX.ORG.RU
ФорумTalks

Слабые нынче программисты пошли психически

 ,


2

5

Автор написанного на языке Rust web-фреймворка actix-web удалил репозиторий после того, как на него обрушилась критика за «неправильное использование» языка Rust. Фреймворк actix-web, пакет с которым был загружен более 800 тысяч раз, позволяет встраивать в приложения на языке Rust функциональность http-сервера и клиента, при разработке ориентирован на достижение максимальной производительности и лидирует во многих тестах web-фреймворков.

Незадолго до инцидента в issues на GitHub было сообщено о выявлении неопределённого поведения (Undefined Behaviour) в коде сервера actix-web, возникающего в блоке, выполняемом в режиме unsafe (допускает выполнение небезопасных действий с указателями). Автор actix-web не стал убирать блок unsafe, но переделал вызов этого блока, чтобы неопределённое поведение не возникало. Предложения убрать unsafe автор отклонил, ссылаясь на возможную потерю производительности и заявив, что он не использует unsafe без необходимости и уверен в безопасности работающих в данном режиме блоков.

Участник команды RustSec, который выявил неопределённое поведение, не согласился и предположил, что применение многих unsafe-блоков в actix-web неоправданно. После этого он опубликовал статью о недопустимости использования unsafe, в которой, среди прочего было упомянуто, что применяемый в actix-web приём работы с указателями (несколько изменяемых указателей на одни и те же данные) потенциально может стать причиной возникновения уязвимостей use-after-free и не соответствует парадигме разработки на Rust.

После обсуждения статьи на Reddit, в issues на GitHub набежали тролли и автор actix-web был подвергнут шквалу критики и оскорблений за неправильное использование Rust. Автор не выдержал психологического давления, удалил репозиторий и написал, что завязал с Open Source.

http://www.opennet.ru/opennews/art.shtml?num=52208

вот ещё текст на ангельском если кому интересно: https://github.com/actix/actix-web

Log удаленной issue из-за которой всё началось: https://gist.github.com/pcr910303/d7722a26499d0e9d2f9034a06f2433b4

Обсуждение на английском:

  1. https://news.ycombinator.com/item?id=22073908
  2. https://news.ycombinator.com/item?id=22075076

Статья: https://words.steveklabnik.com/a-sad-day-for-rust

★★★★★

Последнее исправление: fsb4000 (всего исправлений: 4)

Ответ на: комментарий от alpha

О какой моей личной персональной дурости ты говоришь?

Deleted
()
Ответ на: комментарий от andalevor

Мы всё ещё обсуждаем сабж или вы уже делитесь своей болью?

Даже не представляю, почему ты мог решить, что мы не обсуждаем сабж.

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

Если изначальным автором был этот парень, и больше 50% кодовой базы принадлежало ему, то как бы сорян, но львиную долю работы сделал он.

соавтор

Автор написанного на языке Rust web-фреймворка actix-web

kirk_johnson ★☆
()
Ответ на: комментарий от kirk_johnson

Если изначальным автором был этот парень, и больше 50% кодовой базы принадлежало ему, то как бы сорян

Детский сад, развод и раздел имущества ))

Deleted
()
Ответ на: комментарий от kirk_johnson

Отдавай мои игрушки и не писай в мой горшок!

Ну и что что совместно нажитое, кредит выплачивал я, а ты только дома сидела и ничего не делала!

Нахер с такой подноготной было соваться в опенсорц

Deleted
()
Последнее исправление: Deleted (всего исправлений: 3)
Ответ на: комментарий от alpha

А вот травля форумной толпой - это проблема. И реакция по типу «сам виноват» - тоже.

Травля это неправильно, как и «сам виноват». Но автору всё же не мешало бы прокачать социальные навыки.

andalevor ★★
()
Ответ на: комментарий от Deleted

Нахер с такой подноготной было соваться в опенсорц

Ну то есть ты не хочешь хороших свободных проектов? Я не вижу actix-web, написанный тобой.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Даже не представляю, почему ты мог решить, что мы не обсуждаем сабж.

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

Автор написанного на языке Rust web-фреймворка actix-web

Ну, я так неловко пытался подчеркнуть, что он не один трудился над проектом, люди, которые коммитили ведь тоже являются авторами написанного ими кода.

andalevor ★★
()
Ответ на: комментарий от andalevor

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

Ну и что? Код его, репозиторий тоже, правами на аккаунт тоже владеет он. Если кто-то из контрибуторов видит себя в качестве мейнтейнера, он волен из своего Git репозитория собрать новый проект и мейнтейнить его самостоятельно. Как бы написать патч != поддерживать проект фуллтайм.

Ну, я так неловко пытался подчеркнуть, что он не один трудился над проектом, люди, которые коммитили ведь тоже являются авторами написанного ими кода.

И он у них остался в их личных Git репозиториях, никуда не делся.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)

Срочно отпишите про данного «программиста-а...ка»(С)(TM)+(C)(R) Веронике Степановой.

Bioreactor ★★★★★
()
Ответ на: комментарий от kirk_johnson

Мы ходим в обсуждении по кругу. Изначально вы стригерились на слово «должен». Я имел в виду, что автору надо было правильно изначально позиционировать свой проект правильным образом. Если бы люди изначально знали бы, что всё это его личная песочница, никакой драмы не было бы. Потому что изначально все пошли бы пилить в другой репе. А раз он решил стать лидером серьёзного проекта, то надо было продумывать пути решения спорных ситуаций, а не отписываться в стиле «скучный патч».

andalevor ★★
()
Ответ на: комментарий от andalevor

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

Ну если ты читал переписку, то там видно, что он вполне себе обосновал, что он имеет в виду. Он просит пофиксить код, вызывающи UB, а все контрибуторы просто сносили к хренам unsafe блок. В итоге кто-то код ему прислал, он вроде отписался, что спасибо, пофикшено, а потом набежали полоумные:

boring, because nobody actually wants to fix existing code, everyone just want to remove unsafe.

it is fixed, Actix-service 1.0.5 is released.

kirk_johnson ★☆
()
Ответ на: комментарий от kirk_johnson

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

andalevor ★★
()
Ответ на: комментарий от andalevor

вот unsafe блок: https://github.com/fafhrd91/actix-net/blob/7c5fa25b23a802b27e8066caf4e01e3c2cedeb35/actix-service/src/cell.rs#L34-L36

Пример UB которое можно совершить с такой функцией:

let mycell = Cell::new(vec![1,2,3]);
let ref1 = mysell.get_mut();
let ref2 = mysell.get_mut(); // obtained a second mutable reference; UB starts here

UB действительно был в проекте, потому что нашедший просто предложил заменить .as_ref() на .get_mut().unwrap() и посмотреть упадет ли всё в панику

Вот тот патч который автор назвал boring: https://gist.github.com/Nemo157/b495b84b5b2f3134d19ad71ba5002066

fsb4000 ★★★★★
() автор топика
Ответ на: комментарий от andalevor

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

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

kirk_johnson ★☆
()
Ответ на: комментарий от andalevor

кто-то уже готов запилить новую репу

Очередь желающих уже сопоставима с очередью желающих переписать portage на C?

grem ★★★★★
()
Ответ на: комментарий от grem

portage

ЕМНИП, гентушники громче всех кричали что systemd какаха. Посему имеют заслуженную популярность в 2% среди дистрибутивов. Автор actix такая же уникальная снежинка со своим особым видением, и ему тоже есть альтернативы

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от xwicked

автор психанул, и перенес репозиторий к себе в аккаунт с пометкой «Планирую скрыть репозиторий».

С хабра. Он его закроет, сделает ребрендинг и пустит в продакшн за $ и все утруться…

прохладная история, бро.

yurikoles ★★★
()
Ответ на: комментарий от Dark_SavanT

Был бы ЛОРом закалён, вообще бы даже писать ничего не стал.

turtle_bazon ★★★★★
()
Ответ на: комментарий от Deleted

2% среди дистрибутивов.

По данным …

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

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от Harald

А вы когда-нибудь слышали подобное про программистов на Си? Вот и делайте выводы

Да. Один затролленный программист на Си вычислил тролля по указателю и сделал ему free-after-use. Unsafe, разумеется.

mv ★★★★★
()
Ответ на: комментарий от Deleted

Нужно было использовать stack protector. Наверняка ему мама говорила.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)

А где там была травля? Кто-то нашел его детские фотки? Кто-то начал рисовать фотожабы и рассылать его родне и друзьям? Кто-то взломал его пейсбук и обматерил начальника? Кто-то обмазал его говном IRL, снял на камеру и выложил в сеть? Набежали растошкольники с двача реддита - это травля? А если бы туда зашел Царь, то что было бы? Изнасилование?
Программист должен уметь отстаивать своё мнение. За этим мы и холиварим на ЛОРе.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от Deleted

Даже guard page не смог остановить этого.

mv ★★★★★
()
Ответ на: комментарий от grem

пихать unsafe везде

Как-будто это что-то плохое

Теоретически да, плохое. Ибо компилятор не только переводит буквы в биты. Он ещё доказывает, что программист не слишком грубо ошибся. Доказательство основывается на наборе «аксиом». unsafe добавляет новые – а с «правильным» набором можно доказать false. Т.ч. да, лишние unsafe внезапно небезопасны – они не дают компилятору искать ошибки, а человеки их точно будут делать.

DonkeyHot ★★★★★
()
Ответ на: пихать unsafe везде от DonkeyHot

лишние unsafe

Автор проекта посчитал, что они не лишние. Всегда кто-то будет этим недоволен.

ведь при этом

корректность кода внутри блока лежит на плечах автора

что актуально и без использования unsafe: мест где можно накосячить с алгоритмом реализации гораздо больше, что чаще всего и происходит.

grem ★★★★★
()
Ответ на: комментарий от grem

Очередь желающих уже сопоставима с очередью желающих переписать portage на C?

Это был намёк на то, что actix-web никому не нужен? Возможно так и есть, я не связан с вебом.

andalevor ★★
()
Ответ на: комментарий от grem

Автор проекта посчитал, что они не лишние.

Я не нашёл никаких объяснений от него зачем там нужен unsafe. Более того, по одной из ссылок выше человек, написавший некоторое количество кода на расте и связанный с вебом писал, что когда он захотел использовать actix (вскоре после появления), открыл код, увидел весь этот unsafe и пошёл мимо этого проекта. Также он написал, что вообще не видит причин по которым такой библиотеке вообще понадобился бы unsafe.

andalevor ★★
()
Последнее исправление: andalevor (всего исправлений: 1)

@fsb4000, вот ещё небольшой текст о том, что произошло и почему. Может кому будет интересно, можно тоже добавить в шапку.

andalevor ★★
()
Ответ на: комментарий от grem

Всегда кто-то будет этим недоволен

Да, код авторов, не разрешающих компилятору проверять свой код, вызывает. Ладно это были бы питоны.

DonkeyHot ★★★★★
()
Ответ на: комментарий от andalevor

Это был непрозрачный намёк, что собирающихся что-то сделать исключительно на словах всегда хватает.

grem ★★★★★
()
Ответ на: комментарий от andalevor

увидел весь этот unsafe

не видит причин по которым такой библиотеке вообще понадобился бы unsafe

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

grem ★★★★★
()
Ответ на: комментарий от DonkeyHot

не разрешающих компилятору проверять свой код

Вызывает наличие конструкций в языке, которые оказывается нельзя использовать, а то некоторых от их наличия порвёт.

grem ★★★★★
()
Ответ на: комментарий от grem

А зачем кто-то пишет в виме на динамических ЯП? Демонстрация уверенного владения бензопилой без помощи рук. Цирковой номер на потеху толпе

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Понятия не имею возможности и о виме, ни о проекте. Автору проекта виднее как у него всё между собой связано и что зачем нужно.

grem ★★★★★
()
Ответ на: комментарий от grem

Я немного почитал обсуждений по приведённым ссылкам и в других местах. И пришёл к выводу, что многие были в курсе особенностей автора, ведь текущий срач уже 4й для actix(и вроде как автор уже «уходил»), потому кто хотел пилить что-то вменяемое – делал это в рамках других проектов. Оказывается веб фреймворков для раста сильно больше одного.

andalevor ★★
()
Ответ на: комментарий от grem

Я немного почитал обсуждений по приведённым ссылкам и в других местах. И пришёл к выводу, что многие были в курсе особенностей автора, ведь текущий срач уже 4й для actix(и вроде как автор уже «уходил»), потому кто хотел пилить что-то вменяемое – делал это в рамках других проектов. Оказывается веб фреймворков для раста сильно больше одного.

andalevor ★★
()
Ответ на: комментарий от DonkeyHot

Вызывались подозрения «о чём они думали, когда добавляли конструкции, которые ‘нельзя’ использовать»?

grem ★★★★★
()
Ответ на: комментарий от BattleCoder

Берегите программистов.

:-D это что-то новенькое. берегите женщин было, берегите мужчин тоже проходили, берегитесь и тех и других тоже. созрел рекламный слоган: «UNIX. 50 лет вместе» :-D

Не все такие стойкие психически, закалённые лором.

лор тут не при чём. ни что так не закаляет, как глубинные личностные переживания. после этого 2,5 ярда за русгитхаб выглядят сущей суетовиной. :-D лор в этих вопросах помощник слабый, хотя первое время создаётся иллюзия что лор лечит от всего.

Deleted
()
Ответ на: комментарий от ptarh

он ещё неопытный в таких делах. нужно покурить психологическое айкидо.

Deleted
()
Ответ на: комментарий от DonkeyHot

авторов, не разрешающих компилятору проверять свой код

А шта, так можно была? :-D

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.