Опубликован выпуск проекта uutils coreutils 0.2.0 (Rust Coreutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=63835
Неужели лицензия пакета GNU Coreutils так сильно мешает?
Мешает скорее не лицензия, а идеология. Гну где-то с начала нулевых решили заниматься активизмом низшего уровня, а не техникой.
Без идеологии никуда, иначе, просто задавят.
Бгг, расскажи как задавили самые популярные опенсорс лицензии в мире - mit, apache, bsd, mpl и тд. Начнёшь придумывать великую идеологию, которая за ними стоит?)
Софт под ГПЛ просто повыкидывают отовсюду со временем и конец и идеологии, и активизму. Достаточно вспомнить историю с гцц под гпл3, когда скомпилированный код был как бы производной работой.
Фантазии воспалённого воображения про код скомпилённый. А то что-то аналогичное было бы, если, к примеру, скомпилить свободный код интеловым компилятором, то выходной бинарник, внезапно, становился бы проприетарным.
> Фантазии воспалённого воображения про код скомпилённый.Фантазии воспалённого воображения? В какой-то мере ты прав, ТАКОЕ в голову могло прийти только наглухо отбитым фанатикам... И тем не менее - вот это что такое?
GCC Runtime Library Exception
gnu.org/licenses/gcc-exception-3.1.htmlВот тут ebb.org/bkuhn/blog/2009/01/27/gcc-exception.html
отлично расписывается почему:
when you compile a program with gcc, parts of GCC itself, called the runtime library (and before that, crt0), are combined directly with your program in the output binary. The binary, therefore, is both a derivative work of your source code and a derivative work of the runtime library. If GCC were pure GPL, every binary compiled with GCC would need to be licensed under the terms of GPL.Т.е ГНУтики просто пытали заразить своим гну-раком код, который просто был скомпилирован GCC! Кто мог представить такую наглость?
Ну... т.е никто такого представить не мог, поэтому и появился Clang/LLVM.
> если, к примеру, скомпилить свободный код интеловым компилятором, то выходной бинарник,
> внезапно, становился бы проприетарным.Но с интеловым компилятором такого внезапно не случилось, потому что там настолько е#####ых нет. А с гнутым - произошло, было зафиксировано для истории и стало триггером развития свободного компилятора. И вы от этого не отмоетесь, как бы вам не хотелось бы.
> Неужели лицензия пакета GNU Coreutils так сильно мешает?Нет, мешала дырявая сишки с уязвимостями [1] и дидовый окаменелый код в перемешку с велосипедами.
Ну а если уже переписываешь с нуля, то зачем брать несвободную лицензию, к тому же с крайне сомнительной репутацией.
Поэтому и выбрали по настоящему свободный МИТ :)
-----
[1] немножно пруфов
Проблемы безопасности в sort, uniq и join из состава GNU coreutils.
opennet.ru/opennews/art.shtml?num=35887Уязвимость в GNU sort, приводящая к выходу за границу буфера
opennet.ru/opennews/art.shtml?num=63320Уязвимость в утилите GNU split, приводящая к переполнению буфера
opennet.ru/opennews/art.shtml?num=60490Опасная уязвимость в GNU grep
opennet.ru/opennews/art.shtml?num=35700
Можно так же переписать на сишке, но без дырений. Диды по причинам того, что писали все это в 80х, когда программировать не умели безопасно, не могли написать годный код, язык просто позволяет подобное.
Сейчас бы подобного можно было бы избежать, даже на си. И код впринципе написать более компактный и элегантный, в этих гнутых корутилзах такие портянки, при примитивности программ.
> Можно так же переписать на сишке, но без дырений.Ого! Ну так покажи!
Войдешь в историю как Настоящий СИшник™> Сейчас бы подобного можно было бы избежать, даже на си.
Путем кастрирования стандарта как в МИСРА?
Или обмазыванием санитайзерами, фазерами, стат.анализаторами... и все равно дыры пролазят.
> [1] немножно пруфовПоказывающих, что программы используются и развиваются, а код исследуют и исправляют.
А про uutils (ууу, с-ка!) что можно сказать с уверенностью? Кому это нужно? Никому не нужно! Кому это надо? Никому не надо!
> Неужели лицензия пакета GNU Coreutils так сильно мешает?Так в общем-то в в этом весь основной смысл всей этой движухи с Ржавым. Заместить лицензии, чтобы потом можно было растащить по своим проприетарным норам безвозмездно. Если бы были реально озабочены "безопасностью" - переписывали бы на С++.
> Заместить лицензии, чтобы потом можно было растащить по своим проприетарным норам безвозмездно.У Сообщества всегда останется тот код, который они писали.
Т.е весь их вклад был и будет под старой лицензией.
Вполне справедливое решение.> Если бы были реально озабочены "безопасностью" - переписывали бы на С++.
Шо то ****, шо это **** (с)
Если бы С++ был безопасным, то его создатели не пытались вылепить Safe C++.
И в комитете не было бы 2 лагеря, как заставить убогое наследие быть хоть чуть-чуть безопаснее.ps в мире самые распространенные проекты это как раз свободные лицензии
и несмотря на регурярные вckykapekи "вот-вот и закроют!!!" они живут и здравствуют.
> У Сообщества всегда останется тот код, который они писали.
> Т.е весь их вклад был и будет под старой лицензией.Да.
> Вполне справедливое решение.
Дело не в справедливости отнюдь. А в том, что каждый должен получать по труду, иначе система разделения труда работает криво или вовсе разваливается. Без системы же разделения труда вымрем и мы: разделение труда - это наш видовой признак уже не один миллион лет.
> Шо то ****, шо это **** (с)
> Если бы С++ был безопасным, то его создатели не пытались вылепить Safe
> C++.
> И в комитете не было бы 2 лагеря, как заставить убогое наследие
> быть хоть чуть-чуть безопаснее.Ну т.е. вы ничего в программировании не понимаете и код на С++ в глаза не видели. Впрочем - всё как всегда. Других сюда комментарии писать и не отряжают.
> ps в мире самые распространенные проекты это как раз свободные лицензии
GPL - тоже свободная, как бы вам не хотелось доказать обратное. Она не запрещает делать с кодом всё, что угодно. Она лишь запрещает воровать код у общества, только и всего.
> и несмотря на регурярные вckykapekи "вот-вот и закроют!!!" они живут и здравствуют.До-о... Особенно показательна история с ОС семейства *BSD.
А в целом естественно, что пермиссивные лицензии популярнее. Потому что это выгодно корпорациям - они могут безвозмездно утаскивать к себе наработки энтузиастов, ничего не давая взамен. И пока у нас капитализм - так и будет продолжаться.
> Дело не в справедливости отнюдь. А в том, что каждый должен получать по труду,Ну так они и получают - всё что ты вложил, вот оно.
> Ну т.е. вы ничего в программировании не понимаете и код на С++ в глаза не видели.
К сожалению видел.
> Впрочем - всё как всегда. Других сюда комментарии писать и не отряжают.
Да-да, раз кто-то с вами не согласен, то он точно купленный и на зарплате.
Идите лечите свою паранойю.> GPL - тоже свободная, как бы вам не хотелось доказать обратное.
Пф, ага, поэтому оно называется запретительной.
Про "воровство" просто бред, даже не буду спорить, ибо мне лень.>> и несмотря на регурярные вckykapekи "вот-вот и закроют!!!" они живут и здравствуют
> И пока у нас капитализм - так и будет продолжаться.Ага, при комммунизме будет не до лицензий, будем стоять в очереди за дефицитом и травить анекдоты.
Надеясь что за них на лесоповал не отравят.
> Ну так они и получают - всё что ты вложил, вот оно.Кто "они", и что "получают"? Впрочем - вопрос риторический)) Спутанность сознания на лицо.
> К сожалению видел.Ну-да, ну-да... Судя по вашим набросам, нацеленным на эмоции, всё так и есть.
> Да-да, раз кто-то с вами не согласен, то он точно купленный и
> на зарплате.
> Идите лечите свою паранойю.Хе-хе, всё как обычно - объявляем оппонента сумасшедшим. Потому что если вдруг дойдёт до обсуждения технических подробностей (а именно это приводят те, кто "не на зарплате"), то станет очевидна техническая "грамотность" пейсателя. Только не начинайте приводить ваши бредовые примеры кода - их все сто раз разобрали уже давно, и мне лень))
> Пф, ага, поэтому оно называется запретительной.
Вспоминается история про Машу, забор, слово из трёх букв и дрова))
> даже не буду спорить
Естественно не будете, потому что опровергать моё утверждение вам нечем.
> Ага, при комммунизме будет не до лицензий, будем стоять в очереди за
> дефицитом и травить анекдоты.
> Надеясь что за них на лесоповал не отравят.
> просто бред, даже не буду спорить, ибо мне лень.
> Кто "они", и что "получают"? Впрочем - вопрос риторический))"Они" это те энтузиасты, кто в проект вкладывались, мне казалось это очевидно.
> Спутанность сознания на лицо.
"Хе-хе, всё как обычно - объявляем оппонента сумасшедшим" (с)
И не стыдно?> Потому что если вдруг дойдёт до обсуждения технических подробностей (а именно это приводят те, кто "не на зарплате"), то станет очевидна техническая "грамотность" пейсателя.
Ну давайте.
Например, что вы думаете о том, что в С++20 представление знаковых будет только в two's complement ?
Сломает ли это старый код и старые хаки? Является ли решение комитета верным?> Только не начинайте приводить ваши бредовые примеры кода - их все сто раз разобрали уже давно, и мне лень))
Вашу так сказать "техническую грамотность" вы уже показали своим кодом.
А "вкус" - дизайном)
> "Они" это те энтузиасты, кто в проект вкладывались, мне казалось это очевидно.Нет, не очевидно. Вы не торопитесь, это не чат в мессенджере))
> "Хе-хе, всё как обычно - объявляем оппонента сумасшедшим" (с)
> И не стыдно?Ни капельки. Потому что я вас сумасшедшим не объявлял)) Спутанность сознания может быть по множеству причин. Например - банальное переутомление. Спать нужно больше, а не бессмысленные комментарии на формумах строчить))
> Ну давайте.
> Например, что вы думаете о том, что в С++20 представление знаковых будет
> только в two's complement ?
> Сломает ли это старый код и старые хаки? Является ли решение комитета
> верным?"Ну вот ты и попался"))) На русском языке это называется "дополнительный код", и в С++ оно всегда было так)) Потому что это уже даже не вопрос ЯП, а вопрос к процессору - умеет ли он в вычитание? С дополнительным кодом же оно не нужно, можно обойтись только операцией сложения и операцией перестановки битов. Дальше можете не продолжать, потому что тем, кто разбирается, уже всё понятно. Если хотите - могу прислать код мной написанной библиотеки для расчёта длинной арифметики на базе std::vector<bool>. Он далёк от совершенства, но работает. А речь про это я завёл, потому что там числа тоже представлены в дополнительном коде. и присутствует код для перевода стандартных числовых типов С++ в формат библиотеки.
> Вашу так сказать "техническую грамотность" вы уже показали своим кодом.
> А "вкус" - дизайном)Наброс не засчитан))
> Спать нужно больше, а не бессмысленные комментарии на формумах строчитьНу так и спите больше, примените, наконец, теоретические знания на практике.
> Наброс не засчитан
Отчего же? Вполне весомый аргумент посмотреть на творчество оппонента и сделать потом соответствующие выводы о его квалификации.
> Он далёк от совершенства, но работает.Не может не радовать, что вы осознаёте разницу между качественным кодом и "как-то работает". Уже какой-то прогресс. Вот так же и с любым другим кодом. Один "как-то работает", а другой "работает хорошо".
>> Например, что вы думаете о том, что в С++20 представление знаковых будет только в two's complement ?
> Потому что это уже даже не вопрос ЯП, а вопрос к процессору - умеет ли он в вычитание?Чел, что ты несешь? Тебе задали конкретный впорос про представление знаковых чисел на уровне стандарта и поломку обратной совместимости, а ты про "вычитание" и "расчёта длинной арифметики на базе std::vector<bool>". Что это за бред?
>> Вашу так сказать "техническую грамотность" вы уже показали своим кодом.
> > А "вкус" - дизайном)
>Наброс не засчитан))Еще как засчитан, дружок.
Поздно пить боржоми, когда почки отвалились. Ваш коллега своим неумелым набросом уже всю контору спалил. А вы поддержали)) Но продолжайте - мне даже ничего делать не нужно, вы ж сами свою "грамотность" демонстрируете, господа. На первом же техническом вопросе так подставиться - это ещё суметь нужно.
> Поздно пить боржоми, когда почки отвалились. Ваш коллега своим неумелым набросом уже
> всю контору спалил. А вы поддержали))Сливаетесь, профессор, позорно сливаетесь.
> Но продолжайте - мне даже ничего делать не нужно, вы ж сами свою "грамотность" демонстрируете, господа.
Ну так покажете свою!
> На первом же техническом вопросе так подставиться - это ещё суметь нужно.
Ага, вам задали простой вопрос "что вы думаете об изменнеии стандарта".
Вы начали нести чушь.
>> Поздно пить боржоми, когда почки отвалились. Ваш коллега своим неумелым набросом уже
>> всю контору спалил. А вы поддержали))
> Сливаетесь, профессор, позорно сливаетесь.
>> Но продолжайте - мне даже ничего делать не нужно, вы ж сами свою "грамотность" демонстрируете, господа.
> Ну так покажете свою!
>> На первом же техническом вопросе так подставиться - это ещё суметь нужно.
> Ага, вам задали простой вопрос "что вы думаете об изменнеии стандарта".
> Вы начали нести чушь.Да-да, продолжайте)) А всем заинтересовавшимся, в чём суть, очень рекомендую прочитать про дополнительный код, и как оно работает.
>Кто "они", и что "получают"? Впрочем - вопрос риторический)) Спутанность сознания на лицоУ вас проблемы с отслеживанием нити дискуссии? Но причём здесь ваш оппонент? Речь шла о злых корпах, которые, якобы, утягивают всё к себе, не давая ничего взамен.
>Судя по вашим набросам, нацеленным на эмоции, всё так и есть.
Это не проблема вашего оппонента, если вы не видели CVE в коде на C++. Это только ваш ограниченный опыт всему виной.
Дальнейший поток сознания неинтересен ибо там никакой аргументации, только пустые слова, "набросы, нацеленным на эмоции".
> каждый должен получать по труду, иначе система разделения труда работает криво или вовсе разваливается.Казалось бы, обсуждаются языки и лицензии, но ты и тут умудрился приплести свои коммунистическо-инфантильные идеи об устройстве мира.
> разделение труда - это наш видовой признак уже не один миллион лет.
А чего не миллиард?
>> Если бы С++ был безопасным, то его создатели не пытались вылепить Safe C++.
>> И в комитете не было бы 2 лагеря
> Ну т.е. вы ничего в программировании не понимаете и код на С++ в глаза не виделиТ.е. в ответ на вполне технический аргумент ты смог лишь жалко перейти на личности? Молодец, держишь марку!
Кстати, а если я "увижу C++", то Safe C++ и прочие потуги комитета исчезнут из реальности, или как?
Наброс не засчитан))
> коммунистическо-инфантильные идеи об устройстве мира.Инфантильная идея - всё, людей, превращать в товар. Торговаться, а не соглашаться. Конкурировать, а не сотрудничать.
> А чего не миллиард?
Очевидно, тогда человек, как вид, как род и т.п., ещё не существовал.
>>> Если бы С++ был безопасным, то его создатели не пытались вылепить Safe C++.
>>> И в комитете не было бы 2 лагеря
>> Ну т.е. вы ничего в программировании не понимаете и код на С++ в глаза не видели
> ты смог лишь жалко перейти на личности? Молодец, держишь марку!Оппонент не на личности перешёл, а вполне справедливо указал на твою некомпетентность, явно следующую из слепой веры в Rust и неадекватных выводов о C++, сделанных по Safe C++.
Не бывает безопастных языков. И Rust - не исключение. Бывает безопасный код.
> Не бывает безопастных языков. И Rust - не исключение.Безопасных при работе с памятью - бывают. Раст - один из них.
> Бывает безопасный код.
Это как?
> разделение труда - это наш видовой признак уже не один миллион летЧего ж не миллиард сразу? Homo sapiens от силы 300 тысяч лет.
>> разделение труда - это наш видовой признак уже не один миллион лет
> Чего ж не миллиард сразу? Homo sapiens от силы 300 тысяч лет.Возможно прохфессор у нас рептилоид или анунак с нибиру.
Живет тысячи лет и помнит как в атлантиде коммунизмЪ строили.
Вот его растаривают здешние несмышленые малыши.Иного объяснения настолько огромному ЧСВ я найти не могу.
> Чего ж не миллиард сразу? Homo sapiens от силы 300 тысяч лет.Вообще-то большая часть антропологов сходится во мнении, что около 50 тысяч лет. Но с натяжкой ваша цифра тоже применима. Только вот Homo sapience - не на ровном месте появился. И ключевое слово тут Homo - человек. Разделение труда в нашу практику вошло, как только мы начали жить группами и стали собственно людьми. Т.е. в принципе речь идёт +/- о австралопитеках. А это - около трёх миллионов лет. Миллион лет назад - так уже вообще никаких вопросов не возникает.
> Если бы были реально озабочены "безопасностью" - переписывали бы на С++.Это шутка, или что? Где C++, а где безопасность. В плюсах порой отстрелить себе ногу еще легче, чем с С - причем даже не сношаясь с указателями и фиксированными буферами.
> Это шутка, или что? Где C++, а где безопасность. В плюсах порой
> отстрелить себе ногу еще легче, чем с С - причем даже
> не сношаясь с указателями и фиксированными буферами.Ну-ну)) Вы покажите - как, а мы посмотрим)) А то набрасывать то каждый может.
>> Это шутка, или что? Где C++, а где безопасность. В плюсах порой
>> отстрелить себе ногу еще легче, чем с С - причем даже
>> не сношаясь с указателями и фиксированными буферами.
> Ну-ну)) Вы покажите - как, а мы посмотрим)) А то набрасывать то каждый может.Набрасываешь пока только ты, дружок. Ты же там писал выше, что уже "видел C++" - так что ты еще хочешь смотреть?
Ну на, смотри:
int a = 1;
int& b = std::max(a, 10);Ну или:
std::vector<int> v{1,2,3};
int& i = v[0];
v.push_back(4);Безопасный C++ как он есть. И нет, разговоры про "вы его неправильно держите" не прокатят, если что.
>[оверквотинг удален]
> "видел C++" - так что ты еще хочешь смотреть?
> Ну на, смотри:
> int a = 1;
> int& b = std::max(a, 10);
> Ну или:
> std::vector<int> v{1,2,3};
> int& i = v[0];
> v.push_back(4);
> Безопасный C++ как он есть. И нет, разговоры про "вы его неправильно
> держите" не прокатят, если что.Ну да, пошёл бред и высосанные из пальца примеры)) Простите, но если вы ТАК используете ссылки, то либо вам нужно ещё многому научиться - если вы студент, либо не место в профессии.
> Простите, но если вы ТАК используете ссылкиЧто помешает даже опытному человеку ошибиться подобным образом в достаточно длинном коде? Или вы полагаете, что опытные люди никогда не ошибаются?
В то же время компилятор Rust не даст откомпилировать вот это никому (ни студенту, ни профнепригодному, ни эксперту):
fn main() {
let mut v = vec![1, 2, 3];
let i = &v[0];
v.push(4);
println!("{}", i);
}
> Или вы полагаете, что опытные люди никогда не ошибаются?А ты что, впервые здесь? Тут местные эксперты только и пишут опусы типа "сношаюсь с malloc/free всю жизнь и никогда проблем не было!".
> А ты что, впервые здесь? Тут местные эксперты только и пишут опусы
> типа "сношаюсь с malloc/free всю жизнь и никогда проблем не было!".В C++ применяют идиому RAII. Ты, сам-то, не из местных экспертов будешь?
> В C++ применяют идиому RAII.Это слабаки твой RAII применяют, а настоящие спецы юзают malloc/free. Ты что, не в состоянии free(), вызвать, или в чем проблема? Диды с 70х годов так пишут - и никогда никаких проблем не было!
>> Простите, но если вы ТАК используете ссылки
> Что помешает даже опытному человеку ошибиться подобным образом в достаточно длинном коде?
> Или вы полагаете, что опытные люди никогда не ошибаются?Ошибаются, но не так. Да и не важно это, всё равно на первом же тесте вы получите обычный сегфолт на таком коде. Если раньше вам статический анализатор не подскажет.
> В то же время компилятор Rust не даст откомпилировать вот это никому
> (ни студенту, ни профнепригодному, ни эксперту):
> fn main() {
> let mut v = vec![1, 2, 3];
> let i = &v[0];
> v.push(4);
> println!("{}", i);
> }И что?)) Подключаете статический анализатор и... будет то же самое.
В общем - всё на этом. Rust отличается от других ЯП (и то - под вопросом) только встроенным в компилятор статическим анализатором кода. Точка. Т.е. - ничем не отличается. Т.е. не нужен по факту. Но если вдруг вам хочется - да хоть на смайликах пишите. Только не надо лезть к другим. На этом всё - это тут обсуждается по кругу под каждой темой про Ржавого, надоело уже.
> И что?)) Подключаете статический анализатор и... будет то же самоеА если не будет? А если забыли (лень) подключать? По-прежнему не понимаете разницы между "обязан сделать" и "можешь не делать"?
> В общем - всё на этом. Rust отличается от других ЯП (и то - под вопросом) только встроенным в компилятор статическим анализатором кода. Т.е. - ничем не отличается.
Приравнять статический анализатор (чьи рекомендации выполнять необязательно) к языку программирования, который не даст сделать подобную ошибку ни при каких условиях (кроме, возмжно, случая с unsafe и сырыми указателями, где программисту предоставляется полная свобода отстрелить себе ногу, если ему так хочется) - это "талант".
> Т.е. не нужен по факту.
Гугл, Майкрсофт, Клаудфлэр, Амазон, Вавей, Дискорд, Дропбокс используются Rust напропалую, Rust им нужен, они считают его более полезным, чем C++. Вот это объективный факт. А ваши потуги выдать желаемое за действительное - это пустопорожняя болтовня плохо выспавшегося человека.
> Но если вдруг вам хочется - да хоть на смайликах пишите. Только не надо лезть к другим.
Кто девушку кормит, тот её и танцует. Ваше мнение никому не интересно в данном случае (ну, кроме, возможно, таких же непроходимых военов супротив Раста, как вы сами).
> А если не будет?А если он в Rust-е всё в unsafe сунет?! А если?! А кабы?!
> Гугл, Майкрсофт, Клаудфлэр, Амазон, Вавей, Дискорд, Дропбокс используются Rust напропалую, Rust им нужен, они считают его более полезным, чем C++.
Начальники, сродни местным экспертам по уму, выбирают о чём в рекламе слышали, а рабы потом страдают в той ПОзе, как велено.
> Начальники, сродни местным экспертам по уму, выбирают о чём в рекламе слышали, а рабы потом страдают в той ПОзе, как веленоДа, жаль что местных умников не берут в начальники тех самых Гуглов, Майкрософтов и т.д. Писали бы и дальше на C++ как нормальные люди.
> Ну да, пошёл бред и высосанные из пальца примеры))Нет, дружок, висячие ссылки/итераторы - это как раз один из самых распространенных граблей в C++. Высосанные из пальца, лол. Оно и понятно, как ты "видел C++".
> Простите, но если вы ТАК используете ссылки,
Как "так"? Это банальные примеры в 2-3 сточки, а в реальном же коде ситуация будет куда забористее. Я же тебе уже писал, что разговоры про "вы его неправильно держите" не прокатят.
> то либо вам нужно ещё многому научиться - если вы студент, либо не место в профессии.
Спасибо за совет, но я уже научился юзать нормальные инструменты, а не дырявый крэп из 80-х. Как и большинство других программистов, зарабатывающих разработкой на жизнь.
А ты-то, дружок, покажешь свое место в профессии? Из твоих опеннетных опусов и гитхабным поделиям очевидно, что в коммерческой разработке ты не участвуешь (если вообще когда-либо участвовал). Но мнение имеешь.
>[оверквотинг удален]
> Как "так"? Это банальные примеры в 2-3 сточки, а в реальном же
> коде ситуация будет куда забористее. Я же тебе уже писал, что
> разговоры про "вы его неправильно держите" не прокатят.
>> то либо вам нужно ещё многому научиться - если вы студент, либо не место в профессии.
> Спасибо за совет, но я уже научился юзать нормальные инструменты, а не
> дырявый крэп из 80-х. Как и большинство других программистов, зарабатывающих разработкой
> на жизнь.
> А ты-то, дружок, покажешь свое место в профессии? Из твоих опеннетных опусов
> и гитхабным поделиям очевидно, что в коммерческой разработке ты не участвуешь
> (если вообще когда-либо участвовал). Но мнение имеешь.Наброс не засчитан))
То есть, аргументов против возможности висячих указателей в C++ у вас нет.
> в коммерческой разработке ты не участвуешьЧур меня чур. Страшнее "крэпа" и придумать трудно. Хорошо, что есть, кому ЭТО вместо меня разгребать. Бросай гадить в интернетах - хватай лопату, профессио-aнaл.
>> в коммерческой разработке ты не участвуешь
> Чур меня чур. Страшнее "крэпа" и придумать трудноОчередной гордый писатель хэллоуворлдов в одно лицо воюет против Раста? Очень ценное и объективное мнение, да.
>> в коммерческой разработке ты не участвуешь
> Чур меня чурА кто ты тогда по профессии, если не секрет? Спрашиваю, чтобы понять, каукую ценность в вопросах разработки ПО имеет твое мнение.
> Заместить лицензии, чтобы потом можно было растащить по своим проприетарным норам безвозмездноДа, да, coreutils очень нужен в проприетарных норах! Они там без этих утилиток, задизайненых в 70е годы, жить не могут.
> Да, да, coreutils очень нужен в проприетарных норах! Они там без этих
> утилиток, задизайненых в 70е годы, жить не могут.Ну да, ну да)) А потом бац, и в Майкрософте "для внутренних" нужд используется Линукс. А потом и не для внутренних. Ой, как неловко то получилось... Ну или вон Андроид.
Так Майкрософт с Гуглом как раз развивают твой линукс и кодом, и деньгами. Но речь вообще-то о corecutils шла.
> Так Майкрософт с Гуглом как раз развивают твой линукс и кодом, и
> деньгами. Но речь вообще-то о corecutils шла.Так потому и развивают, что GPL)) А Линукс - как пример всего лишь. Наиболее наглядный.
> Так потому и развивают, что GPL))Нет - потому что работать над общим вместе с другими корпами выгоднее, чем пилить в одно лицо.
GPLность тут никакой роли не играет. Особенно в контексте того, что модули ядра внутреннего использования вообще могут быть проприетарным.
> А Линукс - как пример всего лишь. Наиболее наглядный.
Нет, Линукс тут - это твоя попытка съехать с темы. Речь шла о coreutils.
Почему развивают Linux с GPL, а не какую-нибудь FreeBSD? Последнюю то одни, то другие используют для себя, но обратно ничего не добавили.
> Почему развивают Linux с GPL, а не какую-нибудь FreeBSD?А зачем им развивать "какую-нибудь FreeBSD", если все остальные корпы уже развивают Линукс еще с 90х годов? Вот чтобы что?
> FreeBSD? Последнюю то одни, то другие используют для себя
Да что ты? Прямо больше, чем Линукс? Ах, да: мы же этого не видем, ведь там не GPL. Они скрывают от нас!
FreeBSD всего на несколько лет младше Linux и в начале пути было не очевидно, кто станет популярным. А использование FreeBSD и не скрывается почитайте про плойки например.
> Пакет признан полностью готовым для рабочего применения в Ubuntu.Для мейнтейнеров и пользователей других дистров это ничего не значит. Просто в Убунте завелся какой-то фанатик, который переводит все компоненты на раст. Оно вполне может быть не совсем доделанным, а то и совсем недоделаным, но этого фанатика сей факт не остановит.
"Недоделан" лучше, чем "доделан, но с CVE, следите за новостями".
Ни в одной новости про "переписанную утилиту" нет сравнения расходов памяти, процессора и общей производительности. Это говорит об очень тщательной подготовки новости.
Да, дураки найдут время все изгадить, с этим не поспоришь. И им не нужны четкие аргументы для своих действий.
Это пустая трата времени, но ты сделай.
Будет твоя личная "тщательно подготовленная новость"
>Ни в одной новости про "переписанную утилиту" нет сравнения расходов памяти, процессора и общей производительности.А это что?
Цитата: "Проведена оптимизация производительности утилит tr, sort и cat. Производительность утилиты tr повышена в 15 раз - ранее данная утилита была медленнее GNU tr в 9.8 раз, а теперь быстрее в 1.58 раза".
> А это что?Признак того, что 95% растоподелий тормознее сишных в 10 раз.
У вас очевидные проблемы с логическим мышлением и невозможностью адекватно воспринимать написанное. К сожалению, таких, как вы, очень много на этом ресурсе. Очень часто люди не в состоянии прочитать далее заголовка. Я уж не говорю вдумываться в смысл текста.
> быстрее в 1.58 раза
> 95% растоподелий тормознее сишных в 10 разС образованием в раше всё настолько плохо, что поколение ЕГЭ даже два числа сравнить не может.
У всех этих переписанных поделок нет проблем с производительностью. Только реализуют они часть функциональности оригинала и совершенно не предсказуемо упадут на валидных для оригинала данных. Зато красиво выглядит при сравнениях, да.
> начат перевод на разные языки сообщений об ошибкахКабильский, астурийский... это конечно хорошо. А где русский, китайский, японский, бразильский?
> А где русский, китайский, японский, бразильский?Желающих не нашлось 🤷♂️
Представляешь, 140 млн. носителей языка только в РФ, а переводить некому.
Наверное все на опенке комменты строчат.
Вы таки считаете, что людям так интересна эта не до конца прошедшая тесты альфа-версия?
Когда пройдёт все тесты и будет 100% соответствовать старым утилитам, то пойдёт и старый перевод.
А зачем на "100% соответствовать старым утилитам".
Там небось древние хаки для pdp11 или 16битных процессоров.
Такое нужно регулярно выбрасывать, чтобы проект не превратился в хлам.Просто смотрим "99.8% пользователей используют вот такой набор функций".
Значит они "жизненно необходимы".А остальные будут дописаны теми, кому они действительно необходимы.
Да, да, да. Ни осилили - то и не нужно. Вы не считаете, что-то сделано в утилах, то это для кого-то. А не только лично для Вас, любимых?
А еще, этот самый "эталонный тестовый набор GNU Coreutils" сделан просто так?
И да, когда это станет хламом, Вы не уведите это уже в самих утилах.
Ну я уже года 2 как uutils использую - ни разу проблем не было. Так что да, похоже просто так.
У моего друга уже более 10 лет "под кроватью" стоит файлопомойка и медиа-сервер на демьяне и Dell 9200C (C2D)... Он её даже не обновляет, только раз в пятилетку заменяет диск на втрое больший... И прикинь - всё просто работает!(С) :)А вот на работе :(
Баш обновился - оппа ... Да сцуко в grep чуток логику ключа поменяли и ПЦ :( Про апдейт версии пистона вообще можно рассказывать только в стиле "Историй из гробницы" ...Мораль: хорошо быть мамкиным хакером, ни те ответственности, не те проблем, быстро переустановленная система не считается упавшей(С), 0.01 в аптайме - это хайлоад мамкой клянусь... :-|
Эх! Платили бы за это ещё и деньги ... я б в мамкин-хакеры пошёл, пусть меня научат!(С)
Как то так :)
>> А где русский, китайский, японский, бразильский?
> Желающих не нашлось 🤷♂️
> Представляешь, 140 млн. носителей языка только в РФ, а переводить некому.
> Наверное все на опенке комменты строчат.И даже среди 1 миллиарда 400 миллионов китайцев не нашлось? Неужели тоже все на опенке?
Они просто боятся участвовать в проекте в которым прямым текстом говорят "СИ плохой", "Си устарел", "СИ нужна замена")))А если серьезно, но я не слышал что в Китае была бы сильно популярна убунта.
Поэтому все 1,5 миллиарда сидят в ВИ-чате и обсуждают площадь, где ничего не случилось
Не пойму, откуда такая спешка?
Может, сразу на Redox перейдём? Ubuntu Rust/Redox
Спешка?
У них первый публичный релиз - Apr 14, 2020
Разве 5+ лет это быстро чтобы запилить горстку утилит?
> Может, сразу на Redox перейдём? Ubuntu Rust/RedoxЗачем redox? Это хоббийный проект, который пилят полтора землекопа.
А вот раст - другое дело. Надеюсь я доживу то того времени, когда у нас будет RUST/Linux, а про GNU будут вспоминать со стыдом как про неисправимую ошибку прошлого.
Ну и про FSF вообще будут стараться не вспоминать, как про сумасшедшего родственника))
Rust как язык в общем-то хорош из-за производительности и возможностей написания кода с меньшим количеством технических ошибок. Но вот как пишут некоторые пермисивная лицензия и закрытость от него отталкивают многих людей. Пакетный менеджер там тоже не заменим.
Тот же старый С или даже С++ проигрывают в таких возможностях как безопасное кодирование, хотя кто-то пишет что это нивелируется статическими анализаторами. И он проигрывает в синтаксисе позволяя больше ресурсов задействовать. Зато у него есть стандарты и множество реализаций в том числе и открытых, поэтому поддерживается на большом количестве железа. Т.е. его проще перевести на ассемблер нужного железа. А у Раст изменения настолько существенные что моя книга о нем написана несколько лет назад оказалась не актуальной когда я начал его изучать.
Так-что исходя из его преимуществ - компании хотят уменьшить количество технических ошибок. Для них это финансовый вопрос. Изучая его могу сказать что язык Rust выглядит бедно по сравнению с другими языками - даже если синтаксис хорош, на нем мало что написано из того что нужно.
Хотя вот по поводу исходного кода я лично не проверял. Сейчас стало интересно после того как написал:
https://github.com/rust-lang/rust - что-то открытое таки есть.
Кто разбирал? Это полный код или там есть что скрытое от чего пишут что код закрыт?
О, а вот сервер пакетов для rust по ходу:
https://github.com/rust-lang/crates.io
И клиент к нему cargo:
https://github.com/rust-lang/cargo
Т.е. в целом можно и свой сервер использовать. А я и не знал. Недавно начал изучать.
> Т.е. в целом можно и свой сервер использовать. А я и не знал. Недавно начал изучать."О сколько нам открытий чудных..." готовит мир, если не читать документацию)))
Ты можешь развернуть свой репозиторий doc.rust-lang.org/cargo/reference/registries.html#using-an-alternate-registry.
Или напрямую ссылаться на свой гит. Или даже можешь вообще не использовать никакие репозитории, а распространять код в архиве как диды и все подключать относительными путями.
doc.rust-lang.org/cargo/reference/specifying-dependencies.htmlВариантов море, для каждого проекта найдется подходящий.
И что делать после того как переведем? Там же ещё выпускные экзамены, кто эту балалайку на расте будет писать?
> Производительность утилиты tr повышена в 15 раз - ранее данная утилита
> была медленнее GNU tr в 9.8 раз, а теперь быстрее в 1.58 раза.Молодцы! А кто-то заявлял, что на расте нельзя писать быстрый код.
И это всего лишь версия 0.2.0. Как только оно зайдет в популярные дистры, можно будет начинать добавлять несовместимости с оригиналом.
Уде 4 год не могут пройти тесты примитивнейшего приложения. Это ли не позор? Как продукт скорость сразу упадёт.
они тестируют относительно полной drop-in совместимости с гнутилями, а не просто сферического в вакууме функционала
Хм, если уж и переписывать, то куда логичнее с Си на С++, чем на Раст! Ну да ладно.
А смысл? Сейчас C++ превратился в Rust. Умные указатели std::unique_ptr и std::shared_ptr это прямая аналогия ссылок (&, &mut, Box) в Rust и типа (Rc, Arc).А преимущества вроде доделанных модулей (в Rust называют крейтами).
Пока там в C++ будет доезжать 26 стандарт в Rust уже сделаны уйма модулей и переписано почти половина приложений и всегда можно поучиться на реальном коде, а с плюсами все развесистее становиться UB.
Короче какой смысл-то? Плюсы были популярны где-то в 2000-2010 тогда их расцвет был сейчас нужно прототипы на Go пилить.
Хм, да может быть и правы, но тут скорее смысл немного в другом, - мы живём в такое удивительное время, что делать ставку, конкретно нам, на такую технологию просто нельзя! Я сомневаюсь, что у нас в случае чего найдутся эксперты которые будут поддерживать то, что связано с Растом. А вот всякие там gcc, glibc, llvm и прочее - мы потянем.
> А вот всякие там gcc, glibc, llvm и прочее - мы потянем.Серьезно?
Вы думаете, что не то что поддерживать, а просто разобраться в gcc или llvm это как два байта отослать?Сообщество уже успешно поддержало librsvg, Clover (их, кстати, заменили растоподелия), а также xorg)))
> преимущества вроде недоделанных модулей (в Rust называют крейтами)Боюсь за название их пользователей.
>> преимущества вроде недоделанных модулей (в Rust называют крейтами)Хм, а покажи доделанные либы на СИ?
Даже такие древности как Coreutils и glibc постоянно доделывают.
Но почему?> Боюсь за название их пользователей.
Ну, для жителей эсн-Г оно явно смешно звучит. Ну в стиле задорнова.
>> преимущества вроде недоделанных модулей (в Rust называют крейтами)
> Боюсь за название их пользователей.Крейтино-ориентированное программирование.
>Умные указатели ... это прямая аналогия ссылок ... в RustФедот, да не тот! ("Федот, да не тот - о том, кто на самом деле хуже того, за кого его принимают или за кого он себя выдаёт" - https://gramota.ru/biblioteka/spravochniki/spravochnik-po-fr... )
>Плюсы были популярны где-то в 2000-2010 тогда их расцвет былЕсли посмотреть рейтинг Tiobe, то C++ начиная с 2001 года всегда был на 3-м месте, а сейчас - на 2-м.
https://www.tiobe.com/tiobe-index/
> Если посмотреть рейтинг Tiobe, то C++ начиная с 2001 года
> всегда был на 3-м месте, а сейчас - на 2-м.Я не спорю с тем, что с++ очень популярный язык, но приводить как аргумент рейтинг Tiobe... это как-то фэ... У них на седьмом месте Visual Basic (причем популярность максимальная в 2023 (6 место), а минимальная в 2011 (49е место)), перловка на 9м, а Delphi на 10м)))
После такого рейтинг сложно воспринимать серьезно.
А вы где были последние лет 30? Плюсы не предоставляют никаких гарантий безопасности и в современном мире не рассматриваются как замена Си.
И тем не менее, плюсы дают куда больше гарантий безопасности чем Си. Лично мне этого достаточно. Лично мне будет проще и быстрее переписать с Си, используя более безопасные альтернативы из мира С++. Мне не нужно будет переписывать вообще всё с нуля! На Расте вы пишите всё с нуля! Зачем?!
> И тем не менее, плюсы дают куда больше гарантий безопасности чем Си.Если использовать новые технологии типа смартпойнтеров - да.
> Лично мне будет проще и быстрее переписать с Си, используя более безопасные альтернативы из мира С++. Мне не нужно будет переписывать вообще всё с нуля!
Вот тут я не очень понимаю.
Вы просто переименуете .c файлы в .cpp ?
Или будете копипастить код?Но у СИ и С++ есть некоторые различия, которые могут больно стрельнуть, если проект на на пару тысяч строк.
Более того, С++ обычно подразумевает ООП, а СИ проект или его не используют, или лепят какой-то ужас типа GObject.Т.е придется:
- просмотреть весь код на различие поведения языков
- возможно менять архитектуру.> На Расте вы пишите всё с нуля! Зачем?!
Затем что его гарантии больше чем даже у С++.
Ты можешь хоть на сопли изойти от злости - реальности пофигу)) Еще раз - не рассматриваются плюсы как замена. Жестокий мир, да.
> А вы где были последние лет 30? Плюсы не предоставляют никаких гарантий безопасностиТут я полностью согласен.
> и в современном мире не рассматриваются как замена Си.
А тут нет)
С++ это отличная замена СИ, если нет ничего лучше.
За последние годы плюсы заменили дыряшку почти во всех нишах:
- ОС (андроид)
- прикладные программы (например текстовые редакторы вроде LibreOffice)
- игры (unreal engine)
- даже на микроконтроллерах!СИ по большей части - это только легаси хлам.
Ну и вишенка на торте - GCC писался на СИ, но потом стали писать на С++.
Потому что на недоязычке ассемблере-переростке, сделать оптимизирующий компилятор оказалось невыполнимой задачей.И Clang/LLVM тоже на С++.
очередной иксперт отнес огромное количество embedded к хламу, видимо в каждом месте вместо копеечных контроллеров должны стоять трудоемкик контроллеры с раст, добавив только емоджи и радужность
> видимо в каждом месте вместо копеечных контроллеров должны
> стоять трудоемкик контроллеры с расточередной иксперт считает что для раста на мк нужно что-то мощное
а в реальности оно работает на тех же stm32 или ESP32
Почему-то Windows начиная с Windows NT пишутся на C++, а не на C.
Виндовое ядро по сути сишное всё.
Нет, в этом нет никакой логики, если смотреть в сторону количества ошибок при работе с памятью. Да и сам язык (C++) в несколько раз сложнее при изучении, чем Rust. Кому нужна дополнительная когнитивная нагрузка при прочих равных (хотя, как я уже заметил выше, равенства не наблюдается)?
Вы можете потихоньку заменять небезопасные Сишные вещи, куда более безопасными С++ альтернативами и при этом не переписывать вообще весь код! На Расте вы вынуждены писать с нуля. Код должен эволюционировать. Писать код с нуля - это не эволюция кода, а трата огромного количества времени и денег.
Ты такой умный. Осталось поделиться умом с половиной софтверных компаний в мире, которые разбирают Раст как горячие пирожки, а количество проектов на крестах падает каждый год.
> Код должен эволюционировать.Вы не поверите, но те большие проекты, в которых активно используют раст, точно также эволюционируют. В ФФ, андроид и хром много раст кода. Но они не пишут все с нуля, а просто заменяют старый или пишут новый на расте.
Небольшие проекты вроде Fish Shell переписывают на раст полностью аналогичным способом - по кусочкам. Только уже с++.
Добавлю к сказанному выше. Если код на C написан в виде библиотек (а так оно и есть в подавляющем большинстве случаев), никто не запрещает пользоваться этими библиотеками в коде на Rust, постепенно заменяя их одна за другой.
Мой кот говорит, что он бы эволюционировал, но кто его тогда гладить будет.
Скоро в GNU/Linux от GNU ничего не останется. Надо будет искать новое название.
Уже придумали - TUX (Torvald's UNIX)
> Скоро в GNU/Linux от GNU ничего не останется.Так собственно уже почти и не осталось.
"GNU/Linux" используют фанатики и староверы, который важно упомянуть GNU.
cut -d"🍔" - это то, о чём я всегда мечтал в консоли.
Зачем это вообще?
Молодёжь любит смайликами обмениваться. Вот, теперь возможность обрезать их, как хочется, докатилась и до Линукса.Если серьёзно, вам дали возможность работать с Юникодом. Или, полагаете, все файлы только в 8-битной кодировке хранятся под Линуксом?
> Молодёжь любит смайликами обмениватьсяBombusMod, InetTools IRC, смайлики от Tahy, "Йа аццкое железко!".
Молодёжь, ага. Джвадцать лет назад тоже было.
используя unicode можно символами, с виду как пробел, скрыть дополнительную логику
На наших глазах, путем переписывания поисходит угон проектов. Зачем нужны разработчики исходной версии, если используется переписаная версия?
Надо чётко понимать, что всё есть политика, политика стремится подчинить себе жизнь каждого. GNU - это политика (несогласия с поведением жадных компаний/корпораций). Rust (и эти пресловутые uutils) - тоже политика (против GNU).
Политика политикой а вот операционную систему GNU/Linux мне дал GNU. Копирасты и пермиссивщики мне ничего не дали.
> Политика политикой а вот операционную систему GNU/Linux мне дал GNU.А какое отношение GNU имеет к линуксу? Ну, кроме лицензии.
Вот зашел я на сайт шапки redhat.com/en/technologies/linux-platforms/enterprise-linux, и там нет никакого GNU/Linux. Linux есть, а GNU/Linux нет.
И на сайте убунты тоже самое.
Даже на сайте ядра kernel.org/category/faq.html единственное упоминание кроме лицухи -
Debian GNU/Linux (но это демьяновцы... что с них возьмешь :) )Так что поясни, какую операционную систему тебе дал GNU. Хурд что ли?
> Копирасты и пермиссивщики мне ничего не дали.
Вся твоя электроника, сложнее мигалки диодом, разработана в проприетараном софте, сделана на проприетарных станках и в 99,9% случае имеет проприетарную прошивку. Думаешь это во всяких кикадах разрабатывают?)) Твоя машина (если это автоваз)), самолет и вполне возможно что дом. Если ты попробуешь отказаться от всего проприетарного, то сразу вернешься в средневековье.
Да, передел рынка СПО идёт, рейдерство...
> Да, передел рынка СПО идёт, рейдерство...А что они рейдернули? Вроде бы у "сообщества" нигде не убыло?
Может код забрали? Тоже вроде бы нет.
Ты из себя дурачка та строй.
> Ты из себя дурачка та строй.А по делу что сказать есть?))
У кого что отобрали? У кого что пропало?У "сообщества" все осталось - бери и пользуйся.
И можешь не сомневаться, появятся очередные нетакуси, которые будут собирать со старыми утилитами, вроде антиксов, девуанов и тд.
Предложишь запретить переписывать?
> Предложишь запретить переписывать?А чего не мелочиться?
Давайте сразу запретим форкать!
А меж тем компания Adobe переходит с C++ на раст (Rust Forge Conf 2025).
Зачем переписывать то, что и так нормально работает? "If it works, don't fix it!"
> Зачем переписывать то, что и так нормально работает?Потому что оно не работает нормально.
Проблемы безопасности в sort, uniq и join из состава GNU coreutils.
opennet.ru/opennews/art.shtml?num=35887Уязвимость в GNU sort, приводящая к выходу за границу буфера
opennet.ru/opennews/art.shtml?num=63320Уязвимость в утилите GNU split, приводящая к переполнению буфера
opennet.ru/opennews/art.shtml?num=60490Опасная уязвимость в GNU grep
opennet.ru/opennews/art.shtml?num=35700и так далее
И это в базовых утилитах, в основе-основ всем системы!
Позор просто....
Ну и как всё это помешало нормальной работе всего перечисленного? Ошибки в программах были, есть и будут. То, что их находят - это даже хорошо. Плохо, когда ошибки не видны, но они есть.
> Ну и как всё это помешало нормальной работе всего перечисленного?М... даже сложно ответить на такой вопрос...
Как же помешало нормальной работе подтвержденный отказ в обслуживании и потенциальное выполнение произвольного кода при работе с системной утилитой... Даже не знаю.> Ошибки в программах были, есть и будут.
Угу, вопрос в количестве, типе ошибок и последствиях.
> Плохо, когда ошибки не видны, но они есть.
Ну вот пока они были не видны (годами!), это было плохо.
Намного лучше если бы их вообще не было, не правда ли?
Тревожность надо лечить.
> Тревожность надо лечить.А лучше предотвращать.
Например не писать дырявый код инструментами из прошлого тысячелетия.
Чтобы потом совесть не беспокоила.И раст, который выдаст ошибки компиляции, является отличным средством)
Почему растоиды с таким упорством доказывают, что они сектанты? Да ещё и агрессивные, но ничего не могущие.
> Да ещё и агрессивные, но ничего не могущие.Еще как могущие!
Повыкидывали кучу легаси, заставили страдать прдликов при сборке ФФ. Одно это чего стоит!
Добавились как второй язык в ядро. Попутно выкинули пару дидов-вахтеров.
Умудрились заменить sudo в одном из самых популярных дистров.И это все под флагами Свободных Лицензий, а не комми-гну-рака.
Приводить уязвимости 15 летней давности, которые уже давно исправлены, в качестве аргумента, это конечно мощно.
> Приводить уязвимости 15 летней давности,24.01.2024 opennet.ru/opennews/art.shtml?num=60490
> которые уже давно исправлены
А сколько лет дырень присутствовала в коде?))
Уязвимости давно исправлены, а вот падения фигни написанной на самом безопасном языке все не могут исправить.