Хорошая ли идея связаться с Rust?
От: Shmj Ниоткуда  
Дата: 28.10.23 09:03
Оценка: :)
Вопрос такой. Вот пока в говно не влезешь — оно может выглядеть конфеткой. Ведь все так хвалят. Но как вам это:

  Скрытый текст


Тут: https://github.com/rxRust/rxRust/blob/master/src/observable.rs#L1134-L1142


Какой-то душок уже чувствуется.
Re: Хорошая ли идея связаться с Rust?
От: ArtDenis Россия  
Дата: 28.10.23 09:55
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Вопрос такой. Вот пока в говно не влезешь — оно может выглядеть конфеткой. Ведь все так хвалят. Но как вам это:

S>Какой-то душок уже чувствуется.

Библиотечный код же вроде. Какая разница что там автор крейта наговнокодил, если снаружи это удобно используется (из комментария к коду):

observable::from_iter(vec![3., 4., 5., 6., 7.])
    .average()
    .subscribe(|v| println!("{}", v));
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re: Хорошая ли идея связаться с Rust?
От: velkin Удмуртия https://kisa.biz
Дата: 28.10.23 10:09
Оценка: 7 (3) +2 -2 :)))
Здравствуйте, Shmj, Вы писали:

S>Хорошая ли идея связаться с Rust?


Лично я считаю, что для работодателя спонсирующего проект лучший выбор это Си или C++. Тоже самое для независимого программиста. Если по каким-то причинам работодатель выбирает иную технологию и готов за неё платить, то знающему программисту нет повода отказываться от этой работы.

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

Но это знаешь многим плевать. Например, говорили же людям не используйте облачные сервера, просто тупо купите своё "железо". Нет, люди покупали облака, на них завязывали софт. Про сертификаты я тоже говорил, что это разводилово на деньги, а не защита, а мне говорили нет, ты не прав. А потом в России после известных событий всё, что я говорил на эту тему сбылось.

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

Я ведь не то, что какой-то предусмотрительный, или там начитался Ричарда Столлмана. Просто два десятилетия назад под воздействием маркетологов я тоже лоханулся в выборе и поделился своим видением. Надо было оставаться с двухтысячных на C++, а учиться алгоритмам на Си, а не болтаться как говно в проруби.

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

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

Да, со мной уже спорили и по этому поводу. Типа ко ко ко, ты не прав, корпорации добра продвигают свои языки программирования ради всеобщего счастья и блага на Земле, а не для того, чтобы тебя контролировать и уничтожить как возможного конкурента. Так вот и живём.

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

Так почему же мы говорим своё настоящее мнение, а не строим подлянки для своих коллег. Ещё некоторые и спорят, типа в интернете кто-то не прав, не могу спать, буду переписываться всю ночь чтобы победить в споре. Но никакого спора нет, наступила эра толерастии, хочешь использовать Rust, используй.
Re: Хорошая ли идея связаться с Rust?
От: Разраб  
Дата: 28.10.23 11:56
Оценка: :)
Здравствуйте, Shmj, Вы писали:

S>Вопрос такой. Вот пока в говно не влезешь — оно может выглядеть конфеткой. Ведь все так хвалят. Но как вам это:


  Скрытый текст
Image: 6d4c231694dcf971f2a3ee895fb5a3fa.png

Тут: https://github.com/rxRust/rxRust/blob/master/src/observable.rs#L1134-L1142

не хуже на мой взгляд чем это
  ++
#include "rxcpp/rx.hpp"
namespace Rx {
using namespace rxcpp;
using namespace rxcpp::sources;
using namespace rxcpp::operators;
using namespace rxcpp::util;
}
using namespace Rx;

#include <regex>
#include <random>
using namespace std;
using namespace std::chrono;

int main()
{
    random_device rd;   // non-deterministic generator
    mt19937 gen(rd());
    uniform_int_distribution<> dist(4, 18);

    // for testing purposes, produce byte stream that from lines of text
    auto bytes = range(0, 10) |
        flat_map([&](int i){
            auto body = from((uint8_t)('A' + i)) |
                repeat(dist(gen)) |
                as_dynamic();
            auto delim = from((uint8_t)'\r');
            return from(body, delim) | concat();
        }) |
        window(17) |
        flat_map([](observable<uint8_t> w){
            return w |
                reduce(
                    vector<uint8_t>(),
                    [](vector<uint8_t> v, uint8_t b){
                        v.push_back(b);
                        return v;
                    }) |
                as_dynamic();
        }) |
        tap([](const vector<uint8_t>& v){
            // print input packet of bytes
            copy(v.begin(), v.end(), ostream_iterator<long>(cout, " "));
            cout << endl;
        });

    //
    // recover lines of text from byte stream
    //
    
    auto removespaces = [](string s){
        s.erase(remove_if(s.begin(), s.end(), ::isspace), s.end());
        return s;
    };

    // create strings split on \r
    auto strings = bytes |
        concat_map([](vector<uint8_t> v){
            string s(v.begin(), v.end());
            regex delim(R"/(\r)/");
            cregex_token_iterator cursor(&s[0], &s[0] + s.size(), delim, {-1, 0});
            cregex_token_iterator end;
            vector<string> splits(cursor, end);
            return iterate(move(splits));
        }) |
        filter([](const string& s){
            return !s.empty();
        }) |
        publish() |
        ref_count();

    // filter to last string in each line
    auto closes = strings |
        filter(
            [](const string& s){
                return s.back() == '\r';
            }) |
        Rx::map([](const string&){return 0;});

    // group strings by line
    auto linewindows = strings |
        window_toggle(closes | start_with(0), [=](int){return closes;});

    // reduce the strings for a line into one string
    auto lines = linewindows |
        flat_map([&](observable<string> w) {
            return w | start_with<string>("") | sum() | Rx::map(removespaces);
        });

    // print result
    lines |
        subscribe<string>(println(cout));

    return 0;
}
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 28.10.23 18:24
Оценка: +1 :))) :))
Здравствуйте, velkin, Вы писали:

V>В конце концов ущерб понесёт работодатель, а не наёмный программист. На иных технологиях работодатель столкнётся с отсутствием кроссплатформенности, готовых библиотек алгоритмов, в некоторых случаях зависимостью от поставщика и многим другим.


Ущерб понесет пользователь когда из-за очередной уязвимости словит вирус-шифровальщик.
Кроссплатформенность и библиотеки это тоже не сильные стороны C и C++
Re[3]: Хорошая ли идея связаться с Rust?
От: ononim  
Дата: 28.10.23 20:38
Оценка: +5 -1
КБ>Ущерб понесет пользователь когда из-за очередной уязвимости словит вирус-шифровальщик.
КБ>Кроссплатформенность и библиотеки это тоже не сильные стороны C и C++
Как много веселых ребят, и все делают велосипед...
Re: Хорошая ли идея связаться с Rust?
От: vsb Казахстан  
Дата: 28.10.23 21:28
Оценка: 1 (1) +2
Ну мне нравится. Я ничего в Rust не понимаю и я даже способен понять общий смысл того, что тут написано. По-моему это не душок, это успех.

Напиши тот же код на другом языке со сходными возможностями. C++ или Haskell. И тогда можно попробовать сравнить.

По сути тут задача не тривиальная же.
Re[3]: Хорошая ли идея связаться с Rust?
От: Carc Россия https://vk.com/gosha_mazov
Дата: 29.10.23 00:06
Оценка: +2
Здравствуйте, Константин Б., Вы писали:

КБ>Здравствуйте, velkin, Вы писали:


V>>В конце концов ущерб понесёт работодатель, а не наёмный программист. На иных технологиях работодатель столкнётся с отсутствием кроссплатформенности, готовых библиотек алгоритмов, в некоторых случаях зависимостью от поставщика и многим другим.


КБ>Ущерб понесет пользователь когда из-за очередной уязвимости словит вирус-шифровальщик.

А причем тут вирус-шифровальщик и языки программрования? Какая между ними связь?
Aml Pages Home
Re[2]: Хорошая ли идея связаться с Rust?
От: CreatorCray  
Дата: 29.10.23 04:10
Оценка:
Здравствуйте, Разраб, Вы писали:

Р>не хуже на мой взгляд чем это

Тут какой то псих пишет LINQ-style кашу.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Хорошая ли идея связаться с Rust?
От: Разраб  
Дата: 29.10.23 04:38
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, Разраб, Вы писали:


Р>>не хуже на мой взгляд чем это

CC>Тут какой то псих пишет LINQ-style кашу.
ну как псих. The Reactive Extensions for Native (RxCpp) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators in both C and C++.
, те что в десятке мэйнстримных языков реализованы.
Я к тому, что не язык определяет человека, а наоборот.
Вот для меня кол-во концепций ++ слишком велико.
В расте хотя бы инструменты единые, понятные сообщения компилятора.
а ++ я даже не понял какие нужны чтобы модули заюзать под линуксом.
а по синтаксису они могут соревноваться.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Хорошая ли идея связаться с Rust?
От: Doom100500 Израиль  
Дата: 29.10.23 06:45
Оценка: +3
Здравствуйте, Разраб, Вы писали:

Р>Здравствуйте, CreatorCray, Вы писали:


CC>>Здравствуйте, Разраб, Вы писали:


Р>>>не хуже на мой взгляд чем это

CC>>Тут какой то псих пишет LINQ-style кашу.
Р>ну как псих. The Reactive Extensions for Native (RxCpp) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators in both C and C++.
Р>, те что в десятке мэйнстримных языков реализованы.
Р>Я к тому, что не язык определяет человека, а наоборот.
Р>Вот для меня кол-во концепций ++ слишком велико.
Р>В расте хотя бы инструменты единые, понятные сообщения компилятора.
Р>а ++ я даже не понял какие нужны чтобы модули заюзать под линуксом.
Р>а по синтаксису они могут соревноваться.

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

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

:)
Спасибо за внимание
Отредактировано 29.10.2023 6:54 Doom100500 . Предыдущая версия . Еще …
Отредактировано 29.10.2023 6:51 Doom100500 . Предыдущая версия .
Re[2]: Хорошая ли идея связаться с Rust?
От: Shmj Ниоткуда  
Дата: 29.10.23 07:57
Оценка: :)
Здравствуйте, vsb, Вы писали:

vsb>Ну мне нравится. Я ничего в Rust не понимаю и я даже способен понять общий смысл того, что тут написано. По-моему это не душок, это успех.


А вот вы для себя просто поймите этот пример: https://doc.rust-lang.ru/book/ch20-01-single-threaded.html и https://doc.rust-lang.ru/book/ch20-02-multithreaded.html

Там интересная книга — итог обучения — как бы этот пример. Но можно пойти от обратного — смотрите пример и спрашивайте GPT все, что вам не понятно. Поймете этот пример — уже будет понятно 95% всего кода на Rust.

Мое недовольство было — по количеству бойлерплейт кода.
Отредактировано 29.10.2023 7:57 Shmj . Предыдущая версия .
Re[4]: Хорошая ли идея связаться с Rust?
От: CreatorCray  
Дата: 29.10.23 08:56
Оценка:
Здравствуйте, Разраб, Вы писали:

CC>>Тут какой то псих пишет LINQ-style кашу.

Р>ну как псих.
На С++ писать функциональщину — это mental disorder
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Хорошая ли идея связаться с Rust?
От: Shmj Ниоткуда  
Дата: 29.10.23 09:07
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>>>Тут какой то псих пишет LINQ-style кашу.

Р>>ну как псих.
CC>На С++ писать функциональщину — это mental disorder

А что там такого ужасного? Разница лишь в форме записи и к этому можно привыкнуть.
Re[3]: Хорошая ли идея связаться с Rust?
От: T4r4sB Россия  
Дата: 29.10.23 09:31
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Мое недовольство было — по количеству бойлерплейт кода.


Покажи аналог на С++. Чтоб в заголовке шаблона были описаны все необходимые и достаточные ограничения на типы, которые в него можно подставлять (кажется, "концепт" называется).
Просто утиный шаблон не предлагать, потому что нечитаемых ошибок компиляции от govno compiler collection я насмотрелся.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[2]: Хорошая ли идея связаться с Rust?
От: kov_serg Россия  
Дата: 29.10.23 09:56
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Напиши тот же код на другом языке со сходными возможностями. C++ или Haskell. И тогда можно попробовать сравнить.

vsb>По сути тут задача не тривиальная же.

o_O вычисление среднего не тривиальная задача?
Re[6]: Хорошая ли идея связаться с Rust?
От: CreatorCray  
Дата: 29.10.23 09:59
Оценка:
Здравствуйте, Shmj, Вы писали:

S>А что там такого ужасного? Разница лишь в форме записи и к этому можно привыкнуть.

Это примерно как define нафигачить и на плюсах писать как на паскале, с begin/end.
Работать то будет, но нафига???
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: Хорошая ли идея связаться с Rust?
От: student__  
Дата: 29.10.23 10:23
Оценка: :)))
В детстве был хорошим мальчиком, но начал писать на Расте, связался со смузихлёбами и покатился...
Re[5]: Хорошая ли идея связаться с Rust?
От: student__  
Дата: 29.10.23 10:25
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:
CC>На С++ писать функциональщину — это mental disorder

Поправил. Можешь не благодарить.
Re[4]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 29.10.23 11:37
Оценка: :))) :)
Здравствуйте, Carc, Вы писали:

C>Здравствуйте, Константин Б., Вы писали:


C>А причем тут вирус-шифровальщик и языки программрования? Какая между ними связь?


Код на си — ошибки работы с памятью — уязвимости — ransomware.

А на нормальном языке этот класс ошибок и уязвимостей полностью отсутсвует.
Re[4]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 29.10.23 11:38
Оценка: +1
Здравствуйте, ononim, Вы писали:

O>


Аргументация у сишников как всегда на высоте.
Re[4]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 29.10.23 12:06
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Покажи аналог на С++. Чтоб в заголовке шаблона были описаны все необходимые и достаточные ограничения на типы, которые в него можно подставлять (кажется, "концепт" называется).

TB>Просто утиный шаблон не предлагать,

Есть принципиальная разница: в Rust-е все эти ограничения формально необходимы. В C++ -- нет, до тех пор пока концепты (или SFINAE до C++20) не потребуются для выбора одной из нескольких перегрузок average в зависимости от параметров.

TB> потому что нечитаемых ошибок компиляции от govno compiler collection я насмотрелся.


Вас пожалеть?
Re[5]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 29.10.23 12:07
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

CC>>>Тут какой то псих пишет LINQ-style кашу.

Р>>ну как псих.
CC>На С++ писать функциональщину — это mental disorder

Каким-то ретроградством и лудизмом пахнуло.
Re[3]: Хорошая ли идея связаться с Rust?
От: vsb Казахстан  
Дата: 29.10.23 12:46
Оценка:
Здравствуйте, kov_serg, Вы писали:

vsb>>Напиши тот же код на другом языке со сходными возможностями. C++ или Haskell. И тогда можно попробовать сравнить.

vsb>>По сути тут задача не тривиальная же.

_>o_O вычисление среднего не тривиальная задача?


В типизированном языке, для произвольных типов и с адекватными сообщениями об ошибках при неправильном использовании — я думаю, что не тривиальная.
Отредактировано 29.10.2023 12:48 vsb . Предыдущая версия .
Re[6]: Хорошая ли идея связаться с Rust?
От: Разраб  
Дата: 29.10.23 13:20
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, CreatorCray, Вы писали:


CC>>>>Тут какой то псих пишет LINQ-style кашу.

Р>>>ну как псих.
CC>>На С++ писать функциональщину — это mental disorder

S>А что там такого ужасного? Разница лишь в форме записи и к этому можно привыкнуть.


Вообщем идея хорошая, но что-то вам мешает.
Тут просто надо выбрать: путь одиночки или со стадом.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Хорошая ли идея связаться с Rust?
От: kov_serg Россия  
Дата: 29.10.23 14:14
Оценка: :)
Здравствуйте, vsb, Вы писали:

_>>o_O вычисление среднего не тривиальная задача?


vsb>В типизированном языке, для произвольных типов и с адекватными сообщениями об ошибках при неправильном использовании — я думаю, что не тривиальная.


То есть программист должен не тривиально ублажать язык, вместо решения простой прикладной задачи. Очень показательно.
Re[6]: Хорошая ли идея связаться с Rust?
От: zx zpectrum  
Дата: 29.10.23 19:16
Оценка:
S>Каким-то ретроградством и лудизмом пахнуло.
Каким-то хомячизмом и доверчивостью к мнению большинства пахнуло. А если принять во внимание тот факт, что функциональщина — это древняя откопанная стюардесса, то кто еще тут ретроград?
Re[5]: Хорошая ли идея связаться с Rust?
От: T4r4sB Россия  
Дата: 29.10.23 21:05
Оценка:
Здравствуйте, so5team, Вы писали:

S>Есть принципиальная разница: в Rust-е все эти ограничения формально необходимы. В C++ -- нет,


И это минус С++.

TB>> потому что нечитаемых ошибок компиляции от govno compiler collection я насмотрелся.


S>Вас пожалеть?


Нет, только не надо врать, как легко и классно ты за минуту понимаешь, почему на шаблонном коде govno compiler collection высирает тупое бесполезное эссе на 1000 строк какого-то бреда, в котором нет ни единого упоминания строчки, где действительно произошла ошибка.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[5]: Хорошая ли идея связаться с Rust?
От: The Passenger Голландия  
Дата: 29.10.23 22:56
Оценка:
Здравствуйте, Константин Б., Вы писали:

КБ>А на нормальном языке этот класс ошибок и уязвимостей полностью отсутсвует.


и даже в виртуальных машинах, которые, между дрочим, пишутся на с и с++?
Весь мир — Кремль, а люди в нем — агенты
Re[6]: Хорошая ли идея связаться с Rust?
От: CreatorCray  
Дата: 30.10.23 04:00
Оценка:
Здравствуйте, so5team, Вы писали:

CC>>На С++ писать функциональщину — это mental disorder

S>Каким-то ретроградством и лудизмом пахнуло.

Ну т.е. забивать гвозди отключенным от питания промышленным перфоратором это "ретроградство и лудизм"?
Нуок
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 30.10.23 04:47
Оценка: +1
Здравствуйте, T4r4sB, Вы писали:

S>>Есть принципиальная разница: в Rust-е все эти ограничения формально необходимы. В C++ -- нет,


TB>И это минус С++.


А черное -- это белое, ага.

TB>>> потому что нечитаемых ошибок компиляции от govno compiler collection я насмотрелся.


S>>Вас пожалеть?


TB>Нет, только не надо врать, как легко и классно ты за минуту понимаешь, почему на шаблонном коде govno compiler collection высирает тупое бесполезное эссе на 1000 строк какого-то бреда, в котором нет ни единого упоминания строчки, где действительно произошла ошибка.


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

Я это к тому, что в C++, исторически, всратая система информирования об ошибках и это не имеет прямое отношения к шаблонам.
Re[7]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 30.10.23 04:49
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

CC>>>На С++ писать функциональщину — это mental disorder

S>>Каким-то ретроградством и лудизмом пахнуло.

CC>Ну т.е. забивать гвозди отключенным от питания промышленным перфоратором это "ретроградство и лудизм"?


Нет, ретроградство и лудизм -- это ассоциировать функциональщину в C++ с забиванием гвоздей перфоратором.

CC>Нуок


Мне вот удивительно, как человек с такой верой в непогрешимость собственных суждений умудряется еще и узнавать что-то новое. Хотя...
Re[6]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 30.10.23 05:26
Оценка: -1 :)))
Здравствуйте, The Passenger, Вы писали:

TP>Здравствуйте, Константин Б., Вы писали:


КБ>>А на нормальном языке этот класс ошибок и уязвимостей полностью отсутсвует.


TP> и даже в виртуальных машинах, которые, между дрочим, пишутся на с и с++?


Да. К сожалению если программу на нормальном языке запускать на платформе написанной на сишечке — то уровень безопасности будет как у сишечки.
Это как строить небоскребы на заминированном болоте вместо фундамента. Но это не повод опускать руки и не исправлять ситуацию к лучшему.
В чястности не надо начинать новые проекты на сишечке, чтобы количество уязвимостей хотя бы не росло.
Re[8]: Хорошая ли идея связаться с Rust?
От: CreatorCray  
Дата: 30.10.23 05:56
Оценка:
Здравствуйте, so5team, Вы писали:

S>Нет, ретроградство и лудизм -- это ассоциировать функциональщину в C++ с забиванием гвоздей перфоратором.

Что одно что другое — использование мощного инструмента не по назначению.

S>Мне вот удивительно, как человек с такой верой в непогрешимость собственных суждений умудряется еще и узнавать что-то новое. Хотя...

Рад тебе сообщить что то новое, но ты лучше отойди от зеркала что ли...
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 30.10.23 06:52
Оценка: +1 :)
Здравствуйте, CreatorCray, Вы писали:

S>>Нет, ретроградство и лудизм -- это ассоциировать функциональщину в C++ с забиванием гвоздей перфоратором.

CC>Что одно что другое — использование мощного инструмента не по назначению.

К непогрешимости суждений добавляется еще и раздутое самомнение. Полагаю, в вашем присутствии, все ЧСВ-мометры в радиусе 10 метров выходят из строя.

S>>Мне вот удивительно, как человек с такой верой в непогрешимость собственных суждений умудряется еще и узнавать что-то новое. Хотя...

CC>Рад тебе сообщить что то новое, но ты лучше отойди от зеркала что ли...

Мне уже столько раз сообщали, что я не умею писать код, ничего не понимаю в разработке, застрял в 1990-х и вообще идиот, что вы точно к этому списку ничего не добавите.
Re[7]: Хорошая ли идея связаться с Rust?
От: T4r4sB Россия  
Дата: 30.10.23 06:53
Оценка: +1
Здравствуйте, so5team, Вы писали:

S>Я это к тому, что в C++, исторически, всратая система информирования об ошибках и это не имеет прямое отношения к шаблонам.


Утиная типизация в шаблонах дополнительно усложняет диагностику. Ты получаешь лог об ошибке вообще не в том месте где она действительно возникла. Вместо простого и понятного что такой-то тип не подходит по условиям для подстановки в такойто шаблон
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[8]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 30.10.23 07:06
Оценка:
Здравствуйте, T4r4sB, Вы писали:

S>>Я это к тому, что в C++, исторически, всратая система информирования об ошибках и это не имеет прямое отношения к шаблонам.


TB>Утиная типизация в шаблонах дополнительно усложняет диагностику. Ты получаешь лог об ошибке вообще не в том месте где она действительно возникла. Вместо простого и понятного что такой-то тип не подходит по условиям для подстановки в такойто шаблон


По моим наблюдениям сейчас уже гораздо получше. Где-то начиная с gcc-9.

А вот то, что C++ компиляторы вместо того, чтобы остановиться не первой найденной проблеме пытаются идти дальше и вываливают еще 100500 сообщений о последующих ошибках... Вот это 3.14дец, простите мне мой французский. Пишешь класс, забываешь после него точку с запятой поставить, ниже по коду используешь его в качестве параметра шаблона и... В выхлопе сперва то, что мне нужно, а потом еще 10 страниц с ошибками о том, как компилятор пытался инстанциировать шаблон, но не смог + информация о том, как он пытался это делать.
Re[8]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 30.10.23 07:11
Оценка: +1
Здравствуйте, T4r4sB, Вы писали:

TB>Утиная типизация в шаблонах дополнительно усложняет диагностику.


Добавлю отдельно: основная проблема утиной типизации в шаблонах (как по мне, это все злостное имхо) не в проблемах диагностики если в шаблон отдали что-то не то. А в том, что здесь как в динамически типизированных языках: пока все тестами не покроешь, нет никакой уверенности. Даже в том, что шаблон вообще скомпилируется. Раньше вон VC++ допускал наличие в теле шаблона синтаксических ошибок -- там просто транслятор был так устроен, что если шаблон не инстанциируется, то его тело толком и не парсилось.

Вот это да, это гораздо серьезнее. Напишешь шаблонный код, который отлично работает с X и const X &, через года полтора кто-то в него засунет X && и бах! Ошибка компиляции, а автор шаблона уже и сам не помнит, всех деталей.
Re[7]: Хорошая ли идея связаться с Rust?
От: rudzuk  
Дата: 30.10.23 08:05
Оценка: +2
Здравствуйте, Константин Б., Вы писали:

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


Штука в том, что не начни авторы "правильных языков" проект на сишечке, небыло бы никаких "правильных языков".
avalon/3.0.2
Re[10]: Хорошая ли идея связаться с Rust?
От: CreatorCray  
Дата: 30.10.23 08:21
Оценка:
Здравствуйте, so5team, Вы писали:

S>Мне уже столько раз сообщали, что я не умею писать код, ничего не понимаю в разработке, застрял в 1990-х и вообще идиот

И? Я то к этому всему каким боком?

S> что вы точно к этому списку ничего не добавите.

S>К непогрешимости суждений добавляется еще и раздутое самомнение.
Ты правда думаешь что меня интересует твоя персона?

Я написал про функциональщину, ты же перевёл это всё строго на себя.
Так что самомнение твоё таки да, походу раздутое.
Сдувай.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 30.10.23 08:46
Оценка: -1
Здравствуйте, CreatorCray, Вы писали:

S>>Мне уже столько раз сообщали, что я не умею писать код, ничего не понимаю в разработке, застрял в 1990-х и вообще идиот

CC>И? Я то к этому всему каким боком?

Т.е. вот этот намек сделали не вы: "но ты лучше отойди от зеркала что ли..."?

Если не вы, то извините.

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

S>> что вы точно к этому списку ничего не добавите.

S>>К непогрешимости суждений добавляется еще и раздутое самомнение.
CC>Ты правда думаешь что меня интересует твоя персона?

Очень надеюсь, что нет.

CC>Я написал про функциональщину,


И я вам ответил, что ваше мнение по поводу функциональщины попахивает ретроградщиной и лудизмом. Вы подтверждаете это впечатление приводя левые аналоги вместо нормальных аргументов о том, почему функциональщина в C++ -- это плохо. Что очень смахивает на доказательства из категории "Потому что я так сказал".

CC>ты же перевёл это всё строго на себя.


Значит все-таки это не вы писали фразу "но ты лучше отойди от зеркала что ли..." и относилась она не ко мне. Ну OK, если так.
Отредактировано 30.10.2023 8:56 so5team . Предыдущая версия .
Re[8]: Хорошая ли идея связаться с Rust?
От: T4r4sB Россия  
Дата: 30.10.23 08:47
Оценка: +2
Здравствуйте, rudzuk, Вы писали:

R>Здравствуйте, Константин Б., Вы писали:


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


R>Штука в том, что не начни авторы "правильных языков" проект на сишечке, небыло бы никаких "правильных языков".


Ну а авторы сишечки писали компилятор на чемто еще более древнем, скорее всего ассемблере. И что?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[9]: Хорошая ли идея связаться с Rust?
От: rudzuk  
Дата: 30.10.23 10:24
Оценка: :)
Здравствуйте, T4r4sB, Вы писали:

TB> R>Штука в том, что не начни авторы "правильных языков" проект на сишечке, небыло бы никаких "правильных языков".


TB> Ну а авторы сишечки писали компилятор на чемто еще более древнем, скорее всего ассемблере. И что?


Ничего
avalon/3.0.2
Re[9]: Хорошая ли идея связаться с Rust?
От: The Passenger Голландия  
Дата: 30.10.23 11:27
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Ну а авторы сишечки писали компилятор на чемто еще более древнем, скорее всего ассемблере. И что?


во всем виноват ассемблер
Весь мир — Кремль, а люди в нем — агенты
Re[5]: Хорошая ли идея связаться с Rust?
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 30.10.23 11:42
Оценка: +2
Здравствуйте, kov_serg, Вы писали:

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

Это же библиотечный код.
Sic luceat lux!
Re[12]: Хорошая ли идея связаться с Rust?
От: CreatorCray  
Дата: 30.10.23 19:56
Оценка:
Здравствуйте, so5team, Вы писали:

S>И я вам ответил, что ваше мнение по поводу функциональщины попахивает ретроградщиной и лудизмом.

Ты читать умеешь?
Написано же: "На С++ писать функциональщину..."

S>почему функциональщина в C++ -- это плохо.

Потому что не надо из императивного языка изобретать что то другое. Бери функциональный язык и пиши на нём.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[13]: Хорошая ли идея связаться с Rust?
От: Shmj Ниоткуда  
Дата: 30.10.23 20:30
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

S>>почему функциональщина в C++ -- это плохо.

CC>Потому что не надо из императивного языка изобретать что то другое. Бери функциональный язык и пиши на нём.

А можно подробнее? Вот я на C# привык писать подобные и даже покруче Ling-запросы. И не вижу что С++ чем-то сильно хуже по синтаксису. Вообще не вижу проблем в том коде, которые привели — все вроде чисто, все ясно.
Re[13]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 31.10.23 04:54
Оценка:
Здравствуйте, CreatorCray, Вы писали:

S>>И я вам ответил, что ваше мнение по поводу функциональщины попахивает ретроградщиной и лудизмом.

CC>Ты читать умеешь?
CC>Написано же: "На С++ писать функциональщину..."

Я ни на шаг не отошел от темы "функциональщины на C++", поэтому не вижу смысла в каждом упоминании "функциональщины" добавлять еще и "C++"

S>>почему функциональщина в C++ -- это плохо.

CC>Потому что не надо из императивного языка изобретать что то другое.

И почему?

Позволю себе напомнить, что C++ мультипарадигменный язык и программирование на шаблонах C++ начиная с C++98 возможно именно в функциональном стиле.

CC>Бери функциональный язык и пиши на нём.


Это такой же аргумент, как и "На С++ писать функциональщину — это mental disorder". Т.е. и не аргумент вовсе.
Re[8]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 31.10.23 05:14
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Здравствуйте, Константин Б., Вы писали:


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


R>Штука в том, что не начни авторы "правильных языков" проект на сишечке, небыло бы никаких "правильных языков".


Ну даже допустим что это правда (что конечно же нет, обычно новые языки на каком-нить окамле бустрапят).
И что с того?

Часто вижу этот аргумент что типа компилятор — это что-то низкоуровневое что кроме как на сишечке не написать.
И если хоть немного подумать то это конечно же чушь.
Компилятор — это програма считывающая один файл, и выдающая другой. Т.е. нечто максимально прикладное, высокоуровневое, максимально далекое от железа.
Re[6]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 31.10.23 05:21
Оценка:
Здравствуйте, student__, Вы писали:

CC>>На С++ писать функциональщину — это mental disorder


Чет не то зачеркнул
Re[7]: Хорошая ли идея связаться с Rust?
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.10.23 05:33
Оценка:
Здравствуйте, Константин Б., Вы писали:
КБ>Да. К сожалению если программу на нормальном языке запускать на платформе написанной на сишечке — то уровень безопасности будет как у сишечки.
Очень, очень странное утверждение. А если программу на нормальном языке запустить на процессоре, исполняющем интеловский набор инструкций, то уровень безопасности будет как у интеловского набора инструкций?
КБ>Это как строить небоскребы на заминированном болоте вместо фундамента.
Нет. Это как делать надёжные решения из ненадёжных компонентов.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 31.10.23 16:24
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Константин Б., Вы писали:

КБ>>Да. К сожалению если программу на нормальном языке запускать на платформе написанной на сишечке — то уровень безопасности будет как у сишечки.
S>Очень, очень странное утверждение. А если программу на нормальном языке запустить на процессоре, исполняющем интеловский набор инструкций, то уровень безопасности будет как у интеловского набора инструкций?

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

КБ>>Это как строить небоскребы на заминированном болоте вместо фундамента.

S>Нет. Это как делать надёжные решения из ненадёжных компонентов.

Безопасность и надежность это совершенно разные понятия.
Re[5]: Хорошая ли идея связаться с Rust?
От: B0FEE664  
Дата: 31.10.23 16:49
Оценка:
Здравствуйте, Константин Б., Вы писали:

C>>А причем тут вирус-шифровальщик и языки программрования? Какая между ними связь?

КБ>Код на си — ошибки работы с памятью — уязвимости — ransomware.

Доказательства?
И каждый день — без права на ошибку...
Re[9]: Хорошая ли идея связаться с Rust?
От: Sinclair Россия https://github.com/evilguest/
Дата: 31.10.23 16:55
Оценка:
Здравствуйте, Константин Б., Вы писали:

КБ>Я не знаю что означает "безопасности будет как у интеловского набора инструкций".

Имеется в виду "такая же безопасность, как если исполнять программу, написанную на ассемблере".
КБ>Но если ты про те уязвимости что были обнаружены в процессорах интел и амд — то да, они пускают насмарку всю вышестоящую безопасность.
Как интересно. И зачем же тогда выходили всякие патчи для ОС, закрывающие уязвимости интел и амд? Ну, раз безопасность один хрен определяется нижележащей платформой.
Кстати, наверное безопасность интела — она примерно такая же, как у отдельных транзисторов, из которых он состоит?
КБ>>>Это как строить небоскребы на заминированном болоте вместо фундамента.
S>>Нет. Это как делать надёжные решения из ненадёжных компонентов.
КБ>Безопасность и надежность это совершенно разные понятия.
Но общий принцип остаётся примерно тем же. Вас же не смущает TLS-коммуникация поверх незащищённого канала.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 01.11.23 05:31
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, Константин Б., Вы писали:


C>>>А причем тут вирус-шифровальщик и языки программрования? Какая между ними связь?

КБ>>Код на си — ошибки работы с памятью — уязвимости — ransomware.

BFE>Доказательства?


В базе CVE.
Re[10]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 01.11.23 05:43
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Константин Б., Вы писали:


КБ>>Я не знаю что означает "безопасности будет как у интеловского набора инструкций".

S>Имеется в виду "такая же безопасность, как если исполнять программу, написанную на ассемблере".

Тогда ответ — нет.
Похоже суть проблемы не понята.

Вопрос в том как получен этот набор инструкций.
Есть компиляторы которые гарантируют правильную работу с памятью. А есть такие которые перекладывают эту ответственность на кожаных мешков. А кожанные мешки склонны ошибаться.

В программе на шарпе например проехаться по памяти вроде как нельзя. Но если вызывать системное API написанное на сишечке — то тогда все гарантии теряются.


КБ>>Но если ты про те уязвимости что были обнаружены в процессорах интел и амд — то да, они пускают насмарку всю вышестоящую безопасность.

S>Как интересно. И зачем же тогда выходили всякие патчи для ОС, закрывающие уязвимости интел и амд? Ну, раз безопасность один хрен определяется нижележащей платформой.

А вы вообще в курсе что именно эти патчи делают?

S>Но общий принцип остаётся примерно тем же. Вас же не смущает TLS-коммуникация поверх незащищённого канала.


Если она реализована на сишечке то смущает. Heartbleed помните?
Re[6]: Хорошая ли идея связаться с Rust?
От: PM  
Дата: 01.11.23 09:32
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Нет, только не надо врать, как легко и классно ты за минуту понимаешь, почему на шаблонном коде govno compiler collection высирает тупое бесполезное эссе на 1000 строк какого-то бреда, в котором нет ни единого упоминания строчки, где действительно произошла ошибка.



Дарю лайфхак — grep "instantiated from here" или просто "here" в выводе от gcc дает имя файл и номер строки.

Чтобы не получать все ошибки есть

The command-line option -fmax-errors=N directs the compiler to give up after N errors. This option is present in GCC 4.6 and later.

The command-line option -Wfatal-errors directs the compiler to give up after one error. This option is present in GCC 4.0 and later.

In both cases, warnings do not count toward the limit unless you also specify -Werror.

Re[7]: Хорошая ли идея связаться с Rust?
От: T4r4sB Россия  
Дата: 01.11.23 10:35
Оценка:
Здравствуйте, PM, Вы писали:

PM>Здравствуйте, T4r4sB, Вы писали:


TB>>Нет, только не надо врать, как легко и классно ты за минуту понимаешь, почему на шаблонном коде govno compiler collection высирает тупое бесполезное эссе на 1000 строк какого-то бреда, в котором нет ни единого упоминания строчки, где действительно произошла ошибка.



PM>Дарю лайфхак — grep "instantiated from here" или просто "here" в выводе от gcc дает имя файл и номер строки.


Govno compiler collection не был бы таким govno если бы он в некоторых случаях вообще не забывал номер проблемной строки. Я честно искал.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[11]: Хорошая ли идея связаться с Rust?
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.11.23 15:10
Оценка:
Здравствуйте, Константин Б., Вы писали:
КБ>Похоже суть проблемы не понята.
Да, тут явно потеря взаимопонимания.

КБ>Вопрос в том как получен этот набор инструкций.

Именно, именно.
КБ>Есть компиляторы которые гарантируют правильную работу с памятью. А есть такие которые перекладывают эту ответственность на кожаных мешков. А кожанные мешки склонны ошибаться.
Именно. Поэтому безопасность программы на ассемблере чуть ниже, чем программы на сишечке.
А безопасность программы на java — чуть выше.

КБ>В программе на шарпе например проехаться по памяти вроде как нельзя. Но если вызывать системное API написанное на сишечке — то тогда все гарантии теряются.

Эмм, вообще-то если вызвать из любого языка системное (да и вообще любое) API, написанное "на сишечке" — то все гарантии теряются.
Это никак не связано с тем, на каком языке написан рантайм этого языка. Если, к примеру, убрать из шарпа PInvoke, то без ключика /unsafe проехаться по памяти в нём станет нельзя.
Отсюда имеем, к примеру, Singularity, где 100% кода верифицировано. И опять-таки, ядро сингуларити написано не на C#; тем не менее, её безопасность от этого не страдает.

КБ>А вы вообще в курсе что именно эти патчи делают?

Отож.
S>>Но общий принцип остаётся примерно тем же. Вас же не смущает TLS-коммуникация поверх незащищённого канала.
КБ>Если она реализована на сишечке то смущает. Heartbleed помните?
Ну что ж вы. Только-только разговор начал становится более-менее конструктивным, и такое шулерство.
Вопрос не в том, на чём написанкод TLS-коммуникации, а в том, что канал, по которому едут байты, вполне может быть скомпрометирован.
Это совершенно ортогонально реализации. Я могу написать клиент и сервер на любом, сколь угодно безопасном языке программирования; но если я буду обмениваться между ними нешифрованным неподписанным трафиком — то никакой безопасности не получится.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 01.11.23 15:38
Оценка:
Здравствуйте, Sinclair, Вы писали:

КБ>>В программе на шарпе например проехаться по памяти вроде как нельзя. Но если вызывать системное API написанное на сишечке — то тогда все гарантии теряются.

S>Эмм, вообще-то если вызвать из любого языка системное (да и вообще любое) API, написанное "на сишечке" — то все гарантии теряются.

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

S>>>Но общий принцип остаётся примерно тем же. Вас же не смущает TLS-коммуникация поверх незащищённого канала.

КБ>>Если она реализована на сишечке то смущает. Heartbleed помните?
S>Ну что ж вы. Только-только разговор начал становится более-менее конструктивным, и такое шулерство.

Шулерство в том что я не даю сменить тему и приписать мне бред? Ну ок.
Re[13]: Хорошая ли идея связаться с Rust?
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.11.23 15:53
Оценка:
Здравствуйте, Константин Б., Вы писали:
КБ>Ну т.е. с моим утверждением ты согласен.
Смотря с каким.
С утверждением про отсутствие гарантий при вызове PInvoke — согласен.
А вот с исходным утверждением:

К сожалению если программу на нормальном языке запускать на платформе написанной на сишечке — то уровень безопасности будет как у сишечки

— не согласен.
Либо я его неверно понимаю, либо оно ошибочно.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: Хорошая ли идея связаться с Rust?
От: T4r4sB Россия  
Дата: 01.11.23 19:42
Оценка: 5 (2) +2
Здравствуйте, PM, Вы писали:

PM>Дарю лайфхак — grep "instantiated from here" или просто "here" в выводе от gcc дает имя файл и номер строки.


Вот конкретный пример:
https://godbolt.org/z/8bKfe8nxr
где в этом бесполезном эссе от govno compiler collection упоминается строка номер 6, в которой я пытаюсь скопировать объект, для которого копирование невозможно?
А в реальной консоли это эссе в разы длиннее, потому что эти мега-длинные строки переносятся на десять.

А вот Руст, где вместо утиной типизации у тебя концепты, и там сразу говорится, что ты применяешь неприменимую к данному типу операцию: https://play.rust-lang.org/?version=stable&amp;mode=debug&amp;edition=2021&amp;gist=51fef69913f44ba64fdd93890ff6529f
  |
9 |       let b = a.clone();
  |                 ^^^^^ method cannot be called on `HashMap<i32, Box<Unclonable>>` due to unsatisfied trait bounds
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[6]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 02.11.23 04:02
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, Константин Б., Вы писали:


C>>>А причем тут вирус-шифровальщик и языки программрования? Какая между ними связь?

КБ>>Код на си — ошибки работы с памятью — уязвимости — ransomware.

BFE>Доказательства?


Только 2023й год, только опенсорс, только ошибки работы с памятью

https://www.opennet.ru/opennews/art.shtml?num=58421
https://www.opennet.ru/opennews/art.shtml?num=58480
https://www.opennet.ru/opennews/art.shtml?num=58498
https://www.opennet.ru/opennews/art.shtml?num=58598
https://www.opennet.ru/opennews/art.shtml?num=58622
https://www.opennet.ru/opennews/art.shtml?num=58659
https://www.opennet.ru/opennews/art.shtml?num=58897
https://www.opennet.ru/opennews/art.shtml?num=58955
https://www.opennet.ru/opennews/art.shtml?num=58965
https://www.opennet.ru/opennews/art.shtml?num=59101
https://www.opennet.ru/opennews/art.shtml?num=59151
https://www.opennet.ru/opennews/art.shtml?num=59188
https://www.opennet.ru/opennews/art.shtml?num=59189
https://www.opennet.ru/opennews/art.shtml?num=59210
https://www.opennet.ru/opennews/art.shtml?num=59212
https://www.opennet.ru/opennews/art.shtml?num=59303
https://www.opennet.ru/opennews/art.shtml?num=59304
https://www.opennet.ru/opennews/art.shtml?num=59385
https://www.opennet.ru/opennews/art.shtml?num=59409
https://www.opennet.ru/opennews/art.shtml?num=59410
https://www.opennet.ru/opennews/art.shtml?num=59430
https://www.opennet.ru/opennews/art.shtml?num=59504
https://www.opennet.ru/opennews/art.shtml?num=59592
https://www.opennet.ru/opennews/art.shtml?num=59664
https://www.opennet.ru/opennews/art.shtml?num=59746
https://www.opennet.ru/opennews/art.shtml?num=59798
https://www.opennet.ru/opennews/art.shtml?num=59823
https://www.opennet.ru/opennews/art.shtml?num=59836
https://www.opennet.ru/opennews/art.shtml?num=59838
https://www.opennet.ru/opennews/art.shtml?num=59852
https://www.opennet.ru/opennews/art.shtml?num=59867
https://www.opennet.ru/opennews/art.shtml?num=59868
https://www.opennet.ru/opennews/art.shtml?num=59896
https://www.opennet.ru/opennews/art.shtml?num=59906
https://www.opennet.ru/opennews/art.shtml?num=59915
https://www.opennet.ru/opennews/art.shtml?num=59940
https://www.opennet.ru/opennews/art.shtml?num=59954
https://www.opennet.ru/opennews/art.shtml?num=59991


А вот например список жертв криптовымогателей
https://www.comparitech.com/blog/information-security/global-ransomware-attacks/
Re[8]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 02.11.23 04:57
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>https://godbolt.org/z/8bKfe8nxr

TB>где в этом бесполезном эссе от govno compiler collection упоминается строка номер 6, в которой я пытаюсь скопировать объект, для которого копирование невозможно?

Справедливости ради на строку №6 не указал ни один из компиляторов большой тройки (gcc, clang, msvc).
Re[7]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 02.11.23 04:58
Оценка:
Здравствуйте, Константин Б., Вы писали:

КБ>Только 2023й год, только опенсорс, только ошибки работы с памятью


И какова там доля C++?
Re[8]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 02.11.23 05:14
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>Здравствуйте, Константин Б., Вы писали:


КБ>>Только 2023й год, только опенсорс, только ошибки работы с памятью


S>И какова там доля C++?


Понятия не имею. Да и не важно это.
У вас же еще не появился флаг компилятора разрешающий только безопасное подмножество C++?
А будете вы писать мимо буфера через char * или через std::vector совершенно не принципиально.
Re[9]: Хорошая ли идея связаться с Rust?
От: so5team https://stiffstream.com
Дата: 02.11.23 05:37
Оценка:
Здравствуйте, Константин Б., Вы писали:

S>>И какова там доля C++?


КБ>Понятия не имею. Да и не важно это.


Важно.

КБ>У вас же еще не появился флаг компилятора разрешающий только безопасное подмножество C++?


Его не существует (ну если только в узких рамках constexpr/constinit когда код исполняется в compile-time).

КБ>А будете вы писать мимо буфера через char * или через std::vector совершенно не принципиально.


Дело не в этом, а в том, что в Си в принципе многие вещи невыразимы. Например, в C++ можно ввести тип valid_index и сделать код, который вместо int/size_t оперирует valid_index. Тогда как в Си все будет держаться на честном слове.

В C++ вы можете сделать optional, expected и variant, которые будут проверять попытки доступа к содержимому и платить вы будете только за эти проверки, все остальное будет эффективно. В Си этого не получится.

И т.д., и т.п.

Т.е., потенциально, на C++ можно писать более надежный и безопасный код, чем на Си.

Но Си и C++ все еще продолжают смешивать в одну кучу. Приводя в доказательство список уязвимостей в коде на чистом Си.
Re[8]: Хорошая ли идея связаться с Rust?
От: PM  
Дата: 02.11.23 07:19
Оценка:
Здравствуйте, T4r4sB, Вы писали:

PM>>Дарю лайфхак — grep "instantiated from here" или просто "here" в выводе от gcc дает имя файл и номер строки.


TB>Вот конкретный пример:

TB>https://godbolt.org/z/8bKfe8nxr
TB>где в этом бесполезном эссе от govno compiler collection упоминается строка номер 6, в которой я пытаюсь скопировать объект, для которого копирование невозможно?
TB>А в реальной консоли это эссе в разы длиннее, потому что эти мега-длинные строки переносятся на десять.

Хм, да GCC в этом случае заслуживает альтернативное название от тебя.
Может быть, дело в особенностях GCC реализации стандартной библиотеки? Вызов clang c ключом `-stdlib=libc++` дает вывод получше:

In file included from <source>:1:
In file included from /opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/unordered_map:435:
In file included from /opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/__hash_table:15:
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/memory:911:28: error: call to implicitly-deleted copy constructor of 'std::pair<const int, std::unique_ptr<int>>'
::new ((void*)__p) _Up(_VSTD::forward<_Args>(__args)...);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/__memory/allocator_traits.h:288:13: note: in instantiation of function template specialization 'std::allocator<std::__hash_node<std::__hash_value_type<int, std::unique_ptr<int>>, void *>>::construct<std::pair<const int, std::unique_ptr<int>>, const std::pair<const int, std::unique_ptr<int>> &>' requested here
__a.construct(__p, _VSTD::forward<_Args>(__args)...);
^
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/__hash_table:2473:20: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<std::__hash_node<std::__hash_value_type<int, std::unique_ptr<int>>, void *>>>::construct<std::pair<const int, std::unique_ptr<int>>, const std::pair<const int, std::unique_ptr<int>> &, void>' requested here
__node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_),
^
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/__hash_table:2093:29: note: in instantiation of function template specialization 'std::__hash_table<std::__hash_value_type<int, std::unique_ptr<int>>, std::__unordered_map_hasher<int, std::__hash_value_type<int, std::unique_ptr<int>>, std::hash<int>, std::equal_to<int>, true>, std::__unordered_map_equal<int, std::__hash_value_type<int, std::unique_ptr<int>>, std::equal_to<int>, std::hash<int>, true>, std::allocator<std::__hash_value_type<int, std::unique_ptr<int>>>>::__construct_node_hash<const std::pair<const int, std::unique_ptr<int>> &>' requested here
__node_holder __h = __construct_node_hash(__hash, _VSTD::forward<_Args>(__args)...);
^
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/__hash_table:1154:16: note: in instantiation of function template specialization 'std::__hash_table<std::__hash_value_type<int, std::unique_ptr<int>>, std::__unordered_map_hasher<int, std::__hash_value_type<int, std::unique_ptr<int>>, std::hash<int>, std::equal_to<int>, true>, std::__unordered_map_equal<int, std::__hash_value_type<int, std::unique_ptr<int>>, std::equal_to<int>, std::hash<int>, true>, std::allocator<std::__hash_value_type<int, std::unique_ptr<int>>>>::__emplace_unique_key_args<int, const std::pair<const int, std::unique_ptr<int>> &>' requested here
return __emplace_unique_key_args(_NodeTypes::__get_key(__x), __x);
^
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/unordered_map:1731:18: note: in instantiation of member function 'std::__hash_table<std::__hash_value_type<int, std::unique_ptr<int>>, std::__unordered_map_hasher<int, std::__hash_value_type<int, std::unique_ptr<int>>, std::hash<int>, std::equal_to<int>, true>, std::__unordered_map_equal<int, std::__hash_value_type<int, std::unique_ptr<int>>, std::equal_to<int>, std::hash<int>, true>, std::allocator<std::__hash_value_type<int, std::unique_ptr<int>>>>::__insert_unique' requested here
__table_.__insert_unique(*__first);
^
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/unordered_map:1613:5: note: in instantiation of function template specialization 'std::unordered_map<int, std::unique_ptr<int>>::insert<std::__hash_map_const_iterator<std::__hash_const_iterator<std::__hash_node<std::__hash_value_type<int, std::unique_ptr<int>>, void *> *>>>' requested here
insert(__u.begin(), __u.end());
^
<source>:6:14: note: in instantiation of member function 'std::unordered_map<int, std::unique_ptr<int>>::unordered_map' requested here
auto b = a;
^
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/utility:309:5: note: explicitly defaulted function was implicitly deleted here
pair(pair const&) = default;
^
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/utility:306:9: note: copy constructor of 'pair<const int, std::unique_ptr<int>>' is implicitly deleted because field 'second' has a deleted copy constructor
_T2 second;
^
/opt/compiler-explorer/clang-12.0.1/bin/../include/c++/v1/memory:1579:3: note: copy constructor is implicitly deleted because 'unique_ptr<int>' has a user-declared move constructor
unique_ptr(unique_ptr&& __u) _NOEXCEPT
^
1 error generated.
Compiler returned: 1

Re: Хорошая ли идея связаться с Rust?
От: _NN_ www.nemerleweb.com
Дата: 03.11.23 10:15
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вопрос такой. Вот пока в говно не влезешь — оно может выглядеть конфеткой. Ведь все так хвалят. Но как вам это:


Такой код будет запросто и в другом языке как только мы аннотируем что мы делаем:

https://www.osr.com/blog/2015/02/23/sal-annotations-dont-hate-im-beautiful/

bool
_Success_(return == true)
PolicyGetKeyNewFile(
     _In_ FE_POLICY_PATH_INFORMATION *PolicyPathInfo,
     _In_ DWORD ThreadId,
     _Outptr_result_bytebuffer_(*PolHeaderDataSize) PVOID *PolHeaderData,
     _Out_ _Deref_out_range_(>, 0) DWORD *PolHeaderDataSize,
     _Outptr_result_z_ LPCWSTR *PolUniqueAlgorithmId,
     _Outptr_result_bytebuffer_(*PolKeySize) PVOID *PolKey,
     _Out_ _Deref_out_range_(>, 0) DWORD *PolKeySize,
     _Outptr_result_maybenull_ PVOID *PolCleanupInfo
);


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

Обычно в коде Rust таких мест со сложной логикой владения не так много.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[7]: Хорошая ли идея связаться с Rust?
От: B0FEE664  
Дата: 06.11.23 16:23
Оценка:
Здравствуйте, Константин Б., Вы писали:

C>>>>А причем тут вирус-шифровальщик и языки программрования? Какая между ними связь?

КБ>>>Код на си — ошибки работы с памятью — уязвимости — ransomware.
BFE>>Доказательства?
КБ>В базе CVE.
Как там сделать выборку по языку?
И каждый день — без права на ошибку...
Re[7]: Хорошая ли идея связаться с Rust?
От: B0FEE664  
Дата: 06.11.23 16:24
Оценка:
Здравствуйте, Константин Б., Вы писали:

C>>>>А причем тут вирус-шифровальщик и языки программрования? Какая между ними связь?

КБ>>>Код на си — ошибки работы с памятью — уязвимости — ransomware.
BFE>>Доказательства?
КБ>Только 2023й год, только опенсорс, только ошибки работы с памятью
А можно такой же список на альтернативных языках?

  Скрытый текст
КБ>https://www.opennet.ru/opennews/art.shtml?num=58421
КБ>https://www.opennet.ru/opennews/art.shtml?num=58480
КБ>https://www.opennet.ru/opennews/art.shtml?num=58498
КБ>https://www.opennet.ru/opennews/art.shtml?num=58598
КБ>https://www.opennet.ru/opennews/art.shtml?num=58622
КБ>https://www.opennet.ru/opennews/art.shtml?num=58659
КБ>https://www.opennet.ru/opennews/art.shtml?num=58897
КБ>https://www.opennet.ru/opennews/art.shtml?num=58955
КБ>https://www.opennet.ru/opennews/art.shtml?num=58965
КБ>https://www.opennet.ru/opennews/art.shtml?num=59101
КБ>https://www.opennet.ru/opennews/art.shtml?num=59151
КБ>https://www.opennet.ru/opennews/art.shtml?num=59188
КБ>https://www.opennet.ru/opennews/art.shtml?num=59189
КБ>https://www.opennet.ru/opennews/art.shtml?num=59210
КБ>https://www.opennet.ru/opennews/art.shtml?num=59212
КБ>https://www.opennet.ru/opennews/art.shtml?num=59303
КБ>https://www.opennet.ru/opennews/art.shtml?num=59304
КБ>https://www.opennet.ru/opennews/art.shtml?num=59385
КБ>https://www.opennet.ru/opennews/art.shtml?num=59409
КБ>https://www.opennet.ru/opennews/art.shtml?num=59410
КБ>https://www.opennet.ru/opennews/art.shtml?num=59430
КБ>https://www.opennet.ru/opennews/art.shtml?num=59504
КБ>https://www.opennet.ru/opennews/art.shtml?num=59592
КБ>https://www.opennet.ru/opennews/art.shtml?num=59664
КБ>https://www.opennet.ru/opennews/art.shtml?num=59746
КБ>https://www.opennet.ru/opennews/art.shtml?num=59798
КБ>https://www.opennet.ru/opennews/art.shtml?num=59823
КБ>https://www.opennet.ru/opennews/art.shtml?num=59836
КБ>https://www.opennet.ru/opennews/art.shtml?num=59838
КБ>https://www.opennet.ru/opennews/art.shtml?num=59852
КБ>https://www.opennet.ru/opennews/art.shtml?num=59867
КБ>https://www.opennet.ru/opennews/art.shtml?num=59868
КБ>https://www.opennet.ru/opennews/art.shtml?num=59896
КБ>https://www.opennet.ru/opennews/art.shtml?num=59906
КБ>https://www.opennet.ru/opennews/art.shtml?num=59915
КБ>https://www.opennet.ru/opennews/art.shtml?num=59940
КБ>https://www.opennet.ru/opennews/art.shtml?num=59954
КБ>https://www.opennet.ru/opennews/art.shtml?num=59991
И каждый день — без права на ошибку...
Re[8]: Хорошая ли идея связаться с Rust?
От: Константин Б. Россия  
Дата: 07.11.23 08:38
Оценка: :)
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, Константин Б., Вы писали:


C>>>>>А причем тут вирус-шифровальщик и языки программрования? Какая между ними связь?

КБ>>>>Код на си — ошибки работы с памятью — уязвимости — ransomware.
BFE>>>Доказательства?
КБ>>Только 2023й год, только опенсорс, только ошибки работы с памятью
BFE>А можно такой же список на альтернативных языках?

Можно. Список уязвимостей вызванными ошибками работы с памятью на rust, c#, java, js, PHP:

  Скрытый текст
- Конец списка.
Re[9]: Хорошая ли идея связаться с Rust?
От: rudzuk  
Дата: 07.11.23 10:10
Оценка:
Здравствуйте, Константин Б., Вы писали:

КБ> BFE>А можно такой же список на альтернативных языках?


КБ> Можно. Список уязвимостей вызванными ошибками работы с памятью на rust, c#, java, js, PHP:


КБ>
  Скрытый текст
КБ> — Конец списка.


Ха-ха. Я как-то тут давал ссылки на дыры в дотнете. А это, заметь, сильно-сильно хуже, чем дыра в софте Васи Пупкина.
Re[9]: Хорошая ли идея связаться с Rust?
От: B0FEE664  
Дата: 07.11.23 13:13
Оценка:
Здравствуйте, Константин Б., Вы писали:

BFE>>А можно такой же список на альтернативных языках?

КБ>Можно. Список уязвимостей вызванными ошибками работы с памятью на rust, c#, java, js, PHP:

КБ>
  Скрытый текст
КБ>- Конец списка.

Не верю. У меня от js много раз падали различные браузеры.
А от нехватки памяти падали Java приложения.

Ладно, а список уязвимостей не связанных с памятью? Есть такой?
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.