Обновить
3
Владимир@v_0ver

Rust Evangelism Strike Force member

0,1
Рейтинг
1
Подписчики
Отправить сообщение

Notepad++ и Emeditor только для виндузятников же?

В старых терминалах не было юникода, эмождей/лигатур, столько цветов, rich-text, огромных scrollback, множества alt-screen и всё это должно рендериться через композитор(или самостоятельно) в 140+ герц на 4k.

И да в 90х и 2000х терминалы ещё как тупили, вы просто забыли.

Затем же зачем делают терминалы(kitti, alacritty, foot) с GPU рендерингом - ниже задержки и статтеры.

Экосистема? Чтобы редактировать код и писать промты?)

Не понимаю зачем для держателей старого железа обновлять ядро? Разве в этой среде не распространён девиз: "работает - не трогай" ?

Этот пример чуть больше проливает свет на причину происходящего, А то у неподготовленного читателя может появится мысль, что компиляторы тупые, или ещё более крамольная мысль - что Rust не блейзенгли =)

Да, борьба с накоплением ошибки происходит в основном за счёт этого куска:

let t = sum + y;
c = (t - sum) - y;

И если бы мы разрешили ассоциативность для float, то компилятор посмотрел бы и такой “бро, ща я оптимизирую твой код”:

c = (sum + y - sum) - y;    // c = 0 <- компилятор выкидывает "с" и ломает нашу задумку.

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

Вот ещё более быстрый и более точный вариант и без unsafe из одноимённого блога.

#![allow(internal_features)]
#![feature(core_intrinsics)]
use std::intrinsics::fadd_algebraic;

fn sum_block(arr: &[f32]) -> f32 {
    arr.iter().fold(0.0, |x, y| fadd_algebraic(x, *y))
}

pub fn sum_orlp(arr: &[f32]) -> f32 {
    let mut chunks = arr.chunks_exact(256);
    let mut sum = 0.0;
    let mut c = 0.0;
    for chunk in &mut chunks {
        let y = sum_block(chunk) - c;
        let t = sum + y;
        c = (t - sum) - y;
        sum = t;
    }
    sum + (sum_block(chunks.remainder()) - c)
}

Я без претензий к Mozilla, я больше про саму новость (тема нераскрыта).

Наверное потому что оно мне ну нужно? обычно скриптов вокруг curl было достаточно.

Зачем? Будет ли он блэйзенгли фаст по сравнению с uBlock Origin?

Представьте, что вы — директор аэрокосмического агентства. У вас есть 5 миллионов строк Fortran-кода, который 40 лет считает аэродинамику крыла. Он проверен в десятках тысяч лётных часов, и в нём нет ни одной математической ошибки. Вам предлагают переписать это на Rust. За 3 года, командой из 50 человек, с бюджетом в 100 миллионов долларов. Вы согласитесь?

А чё, у нас на хабре много директоров аэрокосмических агенств захаживает?) Если смотреть с точки зрения исполнителя, то конечно лучше на Rust всё переписать за 5кк/месяц, чем "седеть" в пропёрженном НИИ и за 150к ковырять Fortran на поддержке.

Вайбокодили и посложнее.

Не знаю, что разработчики подобного софта будут кушать, когда это всё может написать Ai.

  1. Можно сослаться на то, что эти рейтинги замеряют в большей степени шум чем полезный сигнал. И в реальности Go не падает в популярности.

  2. Go в основном популярен у корпоратов, и стагнация c наймом в IT сильнее влияет на этот язык, чем например на Rust, который больше популярен среди индивидуальных разработчиков, которые пилить свои пет-проекты не перестали из-за кризиса.

Да просто TIOBE какой-то корявый. Если смотреть не одного его, то картина как будто получается более ожидаемой. https://langrank.hexq.ru/

В том же PYPL Rust занимает 8 место и продолжает расти.

Я это к тому, что языков, которые бы обеспечивали совместимость с C++ и обладали бы теми же особенностями (нативный язык, без GC), вообще как бы и нет.

В том то и дело, что возможно, и это пока подтверждается на практике, язык совместимый с С++, но без его изъянов невозможен.

Ну я же привёл в качестве примера Rust, на котором ваше утверждение ломается.

Как уже выше заметили всякие cpp2, carbon, circle, safecpp, D и другие попытки не увенчались успехом. Из этого всего я бы сделал обратный вывод вашему - если вы ставите во главу угла обратную совместимость с С++ то ваш язык провалится.

Есть Rust, который можно сказать одной ногой в мейнстриме. Поэтому это не обязательное условие.

Не понял, если просто добавить поле в структуру, то какое дублирование нужно? В метод конструктор в Self{} дописать поле?)
И какие вы трейты собрались переписывать, когда в трейтах нельзя получить доступ к полю структуры?) Если вы имели ввиде переписывать имплементации, то это ничем не больше чем переписывать теже имплантации в любом ООП языке.

Информация

В рейтинге
4 080-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность

Специализация

Аналитик по данным, Инженер по данным
Машинное обучение
Python
Rust
PostgreSQL
Linux