URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 116030
[ Назад ]

Исходное сообщение
"Релиз языка программирования Rust 2018 (1.31)"

Отправлено opennews , 08-Дек-18 16:00 
Представлен (https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-201...) релиз языка системного программирования Rust 1.31 (http://www.rust-lang.org), развиваемого проектом Mozilla. Кроме штатного номера версии выпуск также обознечен как Rust 2018 и преподносится (https://hacks.mozilla.org/2018/12/rust-2018-is-here/) как наиболее важный релиз с момента формирования (https://www.opennet.ru/opennews/art.shtml?num=42241) версии 1.0 в 2015 году. В рамках выпуска проведена работа по консолидации всех улучшений и изменений, подготовленных за последние три года, в виде целостного продукта. Rust 2018 (https://rust-lang-nursery.github.io/edition-guide/rust-2018/...) выступит основой для наращивая функциональности в последующие три года, по аналогии с тем, как выпуск Rust 1.0 стал базисом для развития языка в прошедшие три года.

Для разделения несовместимой функциональности введена концепция редакций языка (https://doc.rust-lang.org/stable/edition-guide/). Редакции с номерами "2015" и "2018" могут использоваться в качестве метки для определения среза состояния языка (поле "edition" в секции "[package]" метаданных cargo-пакетов), затрагивающего только несовместимые изменения.  


Редакция "2015" включает уже стабилизированную к текущему моменту функциональность и все будущие изменения не нарушающие совместимость, а редакция "2018" дополнительно охватывает нарушающие совместимость новшества, предложенные в текущем выпуске 1.31 и  утверждённые для реализации в будущем.  Кроме самого языка редакции  также учитывают состояние инструментария  и документации (например, в редакции 2018 в состав введены модули поддержки IDE, rustfmt и Clippy).

Режим "2015" позволяет сохранить полную совместимость с существующими приложениями без внесения нарушающих совместимость изменений. Активировать режим "2018" имеет смысл при желании задействовать в коде будущие возможности языка, такие как ещё не реализованные концепции async/await и "try". Так как данная возможность может потребовать корректировки кода старых программ, написанных до резервирования слов async, await и try, указанные ключевые слова уже внесены в редакцию "2018", несмотря на то, что сама функциональность ещё не добавлена.


Иными словами, в выпуске Rust 1.31 заранее произведена фиксация ключевых слов для ещё не готовых новшеств, нарушающих обратную совместимость, и ожидаемых в последующие три года. При этом грядущие изменения и новшества, не приводящие к нарушению совместимости, по мере своего появления будут доступны для пакетов независимо от выбранной редакции - специфичными для редакции "2018" и не попадающими в редакцию "2015" станут только изменения, нарушающие совместимость.


Основные новшества (https://github.com/rust-lang/rust/blob/master/RELEASES.md#ve...) Rust 1.31:

-  Реализована техника NLL (Non-Lexical Lifetimes), расширившая систему учёта времени жизни заимствованных переменных. Вместо привязки времени жизни на лексическом уровне, NLL осуществляет учёт на уровне набора указателей в графе потока выполнения. Новый подход позволяет увеличить качество проверки заимствования переменных
(borrow checker (https://doc.rust-lang.org/book/ch04-02-references-and-borrow...)) и допустить выполнение некоторых видов корректного кода, использование которого ранее приводило к выводу ошибки. Новое поведение существенно упрощает отладку. Например:

   fn main() {
       let mut x = 5;
       let y = &x;
       let z = &mut x;
       println!("y: {}", y);
   }


Выполнение данного кода в редакции "2015" приводит к выводу ошибки "cannot borrow 'x' as mutable because it is also borrowed as immutable" для всего блока "{}" не детализируя источник проблемы, а начиная с Rust 1.31 при выборе редакции "2018" ошибка будет локализована для выражения 'println!("y: {}", y);', которое вызывает конфликт;

-  Внесены изменения (https://doc.rust-lang.org/edition-guide/rust-2018/module-sys...) в систему модулей, нацеленные на её упрощение: для большинства случаев убрана необходимость использования "extern crate"; добавлена возможность импорта макросов при помощи выражения "use" вместо атрибута "#[macro_use]"; абсолютные пути начинающиеся с названия пакета (crate) теперь разбираются относительно  текущего пакета; возможно сосуществование подкаталогов foo.rs и foo/ subdirectory may coexist,  при размещении субмоделей в подкаталоге больше не нужен mod.rs. Изменения применимы только в режиме "2018";
-  Добавлены новые способы упрощённого задания области видимости (lifetime elision (https://doc.rust-lang.org/nomicon/lifetime-elision.html)) в функциях и заголовках шаблонов (impl). Вместо
"impl‹'a› Reader for BufReader‹'a› {}" теперь можно указывать "impl Reader for BufReader‹'_› {}".
-  Добавлен новый способ определения функций - "const fn", который дополнил уже существующие выражения "fn", "unsafe fn" и "extern fn". Определённые через "const fn" могут вызываться как обычные функции, но также использоваться в любом контексте вместо констант, например "const SIX: i32 = foo(5);". Данные функции вычисляются на этапе компиляции, а не в ходе выполнения, поэтому на них накладываются определённые ограничения (допускаются арифметические операции и операции сравнения над целыми числами, запрещены булевые операторы "&&" и "||", допускается чтение только из констант, можно вызывать только функции, определённые как "const fn" и т.п.);
-  Помимо  cargo, rustdoc и rustup в состав включены утилиты clippy ( linter) и rustfmt (форматирование кода), а также плагины для поддержки интегрированных сред разработки Visual Studio Code, IntelliJ, Atom,
    Sublime Text 3 и Eclipse;
-   Стабилизированы новые атрибуты для инструментов Rust, таких как rustfmt и clippy. Например, "#[allow(clippy::bool_comparison)]" для ограничения применения clippy;

-  В разряд стабильных переведена новая порция API, в том числе From‹NonZeroU8›, From‹&Option‹T››, slice::align_to, slice::chunks_exact;
-  В пакетный менеджер Cargo добавлена поддержка параллельной загрузки нескольких пакетов при помощи HTTP/2. За исключением специфичных случаев переведено в разряд необязательных выражение "extern crate".


-  Запущена инициативы по оптимизации Rust для предметно-ориентированных областей. Созданы рабочие группы для развития средства для разработки сетевых сервисов (развивает async/await), создания приложений для командной строки (развивает библиотеки для CLI-интерфейса), поддержки WebAssembly (компиляция и взаимодействие с wasm)  и создания решений для встраиваемых устройств (улучшение поддержки ARM).

Напомним, что язык Rust сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Автоматическое управление памятью в Rust избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo (http://blog.rust-lang.org/2014/11/20/Cargo.html), позволяющий получить нужные для программы библиотеки  в один клик. Для размещения библиотек поддерживается репозиторий crates.io (https://crates.io/).

URL: https://hacks.mozilla.org/2018/12/rust-2018-is-here/
Новость: https://www.opennet.ru/opennews/art.shtml?num=49747


Содержание

Сообщения в этом обсуждении
"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Fracta1L , 08-Дек-18 16:00 
Пора бы уже потихоньку перетаскивать ядро на Rust

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено A.Stahl , 08-Дек-18 16:32 
На Лисп или Квик Бейсик. Оба проверены временем. А Раст ещё не заслужил.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Иваныч , 08-Дек-18 16:48 
Rust это как Ada, но с хипсторами. Зачем?

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено VINRARUS , 08-Дек-18 17:00 
Старые штопаные дыры на новый ЯП? Для нового ЯП нада новое ядро!
Долой монополизм Linux!

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено asargis , 08-Дек-18 17:07 
Таки есть же Redox

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено proninyaroslav , 09-Дек-18 14:58 
Единственное что не нравится - это лицензия MIT.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 10-Дек-18 03:07 
Слишком свободная?

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 10-Дек-18 12:21 
Вам смешно а вот лицензия MIT, как то раз покусала, мою бабушку.
Я требую ее запретить!

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено роспозор , 13-Дек-18 11:25 
мы вас услышали, ваша бабушка добавлена в список запрещенных ресурсов.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Andrey Mitrofanov , 10-Дек-18 12:38 
> Слишком свободная?

Для проприертарщиков, от и против пользовуемых.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 10-Дек-18 12:47 
>пользовуемых

Кто пустил на форум пьяного?


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Попугай Кеша , 10-Дек-18 11:34 
И зачем она? Хипстеры для хипстером фигачат? Лучше уж Haiku OS

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено asargis , 08-Дек-18 17:07 
https://www.redox-os.org/

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено proninyaroslav , 09-Дек-18 14:56 
Те кто умеет разрабатывать ядра то обоходятся и без Rust, им не нужен "безопасный" язык, они должны прекрасно разбираться в том что они делают и зачем. Хотя назвать безопасным язык с unsafe блоками сложно, так как теряется весь смысл этой "безопасности".

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 15:54 
> Те кто умеет разрабатывать ядра то обоходятся и без Rust, им не нужен "безопасный" язык,

Потому что ядра пишут не люди а роботы, притом пишут сразу на машинном коде, так как не надо тратить время на компиляцию


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено proninyaroslav , 09-Дек-18 16:07 
>> Те кто умеет разрабатывать ядра то обоходятся и без Rust, им не нужен "безопасный" язык,
> Потому что ядра пишут не люди а роботы, притом пишут сразу на
> машинном коде, так как не надо тратить время на компиляцию

У каждого языка свои задачи. И Rust для этой задачи не создавался впринципе. А си был изначально создан для написания переносимого Unixа.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Fracta1L , 09-Дек-18 16:32 
А без unsafe ядро написать получится?

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено proninyaroslav , 09-Дек-18 17:55 
> А без unsafe ядро написать получится?

Насколько знаю даже в Redox около 15%.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 10-Дек-18 12:23 
>Те кто умеет разрабатывать ядра то обоходятся и без Rust, им не нужен "безопасный" язык

Загуглил Linux Kernel уязвимости. Ни одного результата!
Действительно "безопасный" язык не нужен!


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено proninyaroslav , 10-Дек-18 15:22 
> >Те кто умеет разрабатывать ядра то обоходятся и без Rust, им не нужен "безопасный" язык
> Загуглил Linux Kernel уязвимости. Ни одного результата!
> Действительно "безопасный" язык не нужен!

Говнокод не перестаёт быть говнокодом даже в безопасных языках. Просто в отличии от C такие языки будут бросать исключение. Но в любом случае это не сделает говнокода конфеткой. Наверное единственная полезная вещь для адекватного программиста: исключить человеческий фактор (опечатался, забыл проверить и т.д).


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 10-Дек-18 15:30 
>Загуглил Linux Kernel уязвимости

Глубокий уровень экспертности


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Анонимчжан , 10-Дек-18 20:59 
если в ядре линукс нет уязвимостей то те кто его писал просто боги программирования)) просто эти дыры еще не откопали или они не проявили себя напрямую или в составе работы с другими приложениями. идеальный код без дыр... это "Hello World" наверно?  :)

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено asargis , 11-Дек-18 05:20 
> Те кто умеет разрабатывать ядра то обоходятся и без Rust, им не
> нужен "безопасный" язык, они должны прекрасно разбираться в том что они
> делают и зачем. Хотя назвать безопасным язык с unsafe блоками сложно,
> так как теряется весь смысл этой "безопасности".

Ну да, ну да. Поэтому в линуксе и остальных ядрах, написанных знатоками ядраписания отсутствуют баги. unsafe вроде как призван обособлять участки кода, подверженные риску. В следствие чего будет проще искать и исправлять баги, потому как уже заранее известно где этот баг мог возникнуть. Нет я не идеализирую Rust и не говорю что это истина в последней инстанции, но почему бы не дать ему шанс... Не понимаю почему все так настроены против Rust да и вообще против всего нового. Не нравится? Не используй. Ведь никто не заставляет.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено КГБ СССР , 11-Дек-18 06:55 
> Не понимаю почему
> все так настроены против Rust да и вообще против всего нового.
> Не нравится? Не используй. Ведь никто не заставляет.

Потому что «новое» не синоним «хорошего». Трудно понять это без подсказки-то?

Есть множество специализированных (если ты понимаешь значение этого слова) языков, некоторым более полувека. На них написаны миллиарды строк кода полезных программ. Обезьяны мечтают всё это скопом упразднить и запретить ради убогого и дефективного by design жлобоскрипта «патамушта на ём лихко песать кот для бровзера».


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено proninyaroslav , 11-Дек-18 10:47 
>[оверквотинг удален]
>> делают и зачем. Хотя назвать безопасным язык с unsafe блоками сложно,
>> так как теряется весь смысл этой "безопасности".
> Ну да, ну да. Поэтому в линуксе и остальных ядрах, написанных знатоками
> ядраписания отсутствуют баги. unsafe вроде как призван обособлять участки кода, подверженные
> риску. В следствие чего будет проще искать и исправлять баги, потому
> как уже заранее известно где этот баг мог возникнуть. Нет я
> не идеализирую Rust и не говорю что это истина в последней
> инстанции, но почему бы не дать ему шанс... Не понимаю почему
> все так настроены против Rust да и вообще против всего нового.
> Не нравится? Не используй. Ведь никто не заставляет.

Да я и не против rust, я считаю его отличной заменой C++/C в системном ПО. Но меня напрягают наивные утверждения что если ядро будет написано на rust то никакие угрозы безопасности ему не страшны. Говнокод не зависит от языка, только от рук программиста.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 16:05 
"релиз языка системного программирования Rust 1.31"
Какая система написана на Rust?

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 16:09 
Linux

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 16:11 
Например, Redox https://www.opennet.ru/opennews/art.shtml?num=46919

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Ретроград , 08-Дек-18 17:10 
Этот самый Redox очень трудно назвать ОС. Если внимательно почитать список его возможностей и ограничений, то оно больше на какую-то демку похоже, чем на ОС. Они не осилили даже работу с дисками, про остальное даже не говорю.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Анонимчжан , 08-Дек-18 16:13 
они сравнивают его c C++))) это мило однако. как детский автоматик сравнивать с АК))

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 16:20 
Не, не, мы используем в нескольких местах в проде: раст однозначно тащит и разработка несколько проще, чем на С++, но изучить и привыкнуть ушло время. Но в целом думаю за ним будущее.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Ретроград , 08-Дек-18 17:17 
Ржа, честно говоря, неплохой язык в своей ключевой идее (современный системный ЯП с автоматизацией управления памятью), но реализация и сателлитный шлак просто убивают. У плюсов весьма неуютный синтаксис и неочевидная семантика, и нужно было сильно постараться, чтобы сделать хуже. У Ржи получилось, да так, что смотреть на это без крови в глазах невозможно, а чтение хоть сколько-нибудь сложного кода напоминает изощренную интеллектуальную пытку. Плюс вместо того, чтобы пилить чисто компилятор и отдать все прочее на откуп давно проверенным средствам, они навертели и NIH менеджер пакетов, и NIH систему сборки, и еще кучу всякой херни, которая объективно не нужна и ничем, кроме хипстоты, не выделяется. Тьфу.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено интеллигентный разработчик , 08-Дек-18 17:37 
> люс вместо того, чтобы пилить чисто компилятор и отдать все прочее на откуп давно проверенным средствам

Каким интересно? Скоро 2018 год, а single header либы для плюсов это норма, потому что пакетного менеджера нет, систем сборки N штук.

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


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено интеллигентный разработчик , 08-Дек-18 17:38 
> Скоро 2018 год

2019 fixed


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено PartyPooper , 10-Дек-18 20:15 
> потому что пакетного менеджера нет

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

> систем сборки N штук

Есть одна система сборки - Make. Она много лет прекрасно работает. У нее один недостаток: NIH. Вот и плодятся как грибы после дождя сначала обертки поверх нее, потом обертки поверх оберток, потом обертки поверх оберток поверх оберток...


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено интеллигентный разработчик , 21-Дек-18 18:26 
> Есть системный менеджер пакетов, его более чем достаточно.

При условии, что ты пишешь софт под конкретный дистрибутив.

> Есть одна система сборки - Make. Она много лет прекрасно работает. У
> нее один недостаток: NIH. Вот и плодятся как грибы после дождя
> сначала обертки поверх нее, потом обертки поверх оберток, потом обертки поверх
> оберток поверх оберток...

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

Потом не забудь убедить весь остальной мир, что показанное тобой - это "нормально".



"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 17:57 
> Плюс вместо того, чтобы пилить чисто компилятор и отдать все прочее на откуп давно проверенным средствам,

Ага, на примере C++ можно увидеть как ваш совет клево работает,
не подскажите почему столько single-header библиотек в C++?


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено _ , 08-Дек-18 23:36 
>не подскажите почему столько single-header библиотек в C++?

потому что труп страуса не ослилил в модули?


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено PartyPooper , 10-Дек-18 20:17 
> Ага, на примере C++ можно увидеть как ваш совет клево работает, не подскажите почему столько single-header библиотек в C++?

Потому что они слишком маленькие, чтобы их оформлять в полноценную библиотеку? Всякие glm и иже с ними весьма тривиальны.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Junior frontend developer , 08-Дек-18 20:22 
Менеджер пакетов и система сборки во всех языках свои, ничего необычного в этом нет.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 23:41 
> Менеджер пакетов и система сборки во всех языках свои, ничего необычного в этом нет.

Но и ничего хорошего тоже.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено PartyPooper , 10-Дек-18 20:18 
И в итоге у тебя в системе стоит 50 менеджеров пакетов в дополнение к системному и 100 сборочных систем вместо одной. И зачем все это? Просто кто-то не осилил сделать по-нормальному.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 10-Дек-18 21:12 
покажите мне систему сборки, которая одинаково хорошо работает как с джаваскриптом, так и с крестами, перлом и powershell

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Анонимчжан , 08-Дек-18 19:15 
тогда вам и D  понравится))

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Junior frontend developer , 08-Дек-18 20:19 
D как раз так себе и уже не актуален. Rust куда интереснее.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Иваныч , 08-Дек-18 22:54 
Junior Frontend Developer это явно виднее. Понятный синтаксис если когда-то видел C/C++/C#/Java, грамотно реализованы модули, режим betterC, обширная стандартная библиотека, пакетный менеджер, scope exit, mixin, адекватные шаблоны, CTFE, UFCS, immutable, нормальный const, opDispatch, slices, GC и/или std.allocator под задачу, for & for parallel, foreach в котором сразу есть доступ и к индексу, Unicode, interop вместе с C и что интересно - C++ (что немаловажно, есть куча всего от чего отказаться тяжело)... Это из памяти по быстрому. D очень плохой язык, Вы правы.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено annual slayer , 09-Дек-18 05:06 
D как язык прикольный, но во всех бенчмарках, какие я нашел, результаты были не очень по сравнению с другими языками-конкурентами

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Иваныч , 09-Дек-18 11:24 
WekaIO Matrix (https://www.weka.io/resources/wekaio-matrix). Written in DLang. Лучший benchmark для D когда-либо.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено annual slayer , 09-Дек-18 14:11 
> WekaIO Matrix (https://www.weka.io/resources/wekaio-matrix). Written in DLang. Лучший
> benchmark для D когда-либо.
> UNMATCHED
> PERFORMANCE
> BREAKTHROUGH
> ECONOMICS

ты точно уверен, что знаешь что такое бенчмарк?


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Иваныч , 09-Дек-18 18:22 
Возможно. Из того что видел, D был на уровне с C & C++. Но помимо, WekaIO Matrix самая быстрая FS на сегодняшний день.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено annual slayer , 10-Дек-18 02:35 
вот здесь у D в среднем по больнице результаты медленнее чем у конкурентов (но тут больше меряют фреймфорки чем сам языки так что это не слишком показательно) https://www.techempower.com/benchmarks/#section=data-r17

а вот этот проект по бенчаркингу выглядит адекватно (если почитать требования к реализациям), но нет D: https://benchmarksgame-team.pages.debian.net/benchmarksgame/ (может, попробую портировать одно из решений к наиболее простым задачам на D в свободное время и посмотреть что выйдет)

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

так что, не подумай что я утверждаю что D тормоз, но просто хотелось бы больше бенчмарков


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено annual slayer , 10-Дек-18 02:36 
> был на уровне с C & C++

при использовании BetterC или в штатном режиме со сборщиком мусора?


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Иваныч , 10-Дек-18 12:44 
В общем. Даже с GC. Просто не использовать его как нечеловек. Я никогда не любил его, но нашел удобным на этапе прототипа когда только трогаешь почву на начале. И то у меня было это все дело на начале выполнения приложения, когда уже в глубь то у меня пошел OpenCL и было отлично. Но если кусок тормоз именно из-за GC - std.allocator в руки, но это уже следующий этап да и не всегда необходимо.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Junior frontend developer , 09-Дек-18 11:31 
Я бы не советовал иммутабельность даже упоминать как фичу D в контексте Rust, который как раз реализован для контролируемой мутации

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Иваныч , 09-Дек-18 15:55 
Но все же immutable есть, хоть это и не основное место в языке. Так же как и @safe или @pure.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Проходил мимо , 09-Дек-18 10:16 
Насчет "проще" - это вы, батенька, погорячились. Но сам по себе язык мне нравится, хотя мозги он способен выносить просто великолепно. И производительность в режиме сборки --debug просто 3.14сец.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено adolfus , 10-Дек-18 16:27 
Будущее у него появится не раньше, чем появится его ANSI/IEEE стандарт. А он не появится до тех пор, пока язык полностью не освободится от авторских и прочих прав.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Andrey Mitrofanov , 10-Дек-18 17:41 
> пока язык полностью не освободится от авторских и прочих прав.
>от авторских и прочих прав.
>прав.

Я вижу, что эо слово д.б.бы быть "ограничений".

Реальность с чёрное-это-белое новоязом пугает, да.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 16:24 
Какие у вас интересные аналогии, милитаристские.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 17:09 
> они сравнивают его c C++))) это мило однако. как детский автоматик сравнивать с АК))

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


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Анонимчжан , 08-Дек-18 20:03 
растаман что ли? ))) ну взгляни на свой раст. как ломают совместимости. и еще не скоро перестанут. это проблема всех языков проограммирования, которые только появились. поэтому он и не может похвастать привлекательностью. а мозги то у вас еще детские))

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено апро , 08-Дек-18 20:13 
> ну взгляни на свой раст. как ломают совместимости

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

А C++ такое может? Подсказка библиотеки собранные в режиме c++98 и c++11 gcc
вместе не сможет слинковать, ABI они сломали.

Я же говорю детская игрушка этот C++.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Анонимчжан , 08-Дек-18 21:47 
всех вас на D))))ахахах

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Анонис , 09-Дек-18 08:16 
Есть такие вещи, про которые люди хорошо отзываются и рекомендуют их всем, но сами ими не пользуются.

Ваш д никому не нужен


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Анонимчжан , 09-Дек-18 12:47 
я скорее поклонник классического Си. плюсы только как его развитие( несколько зловредное для мозгов). а  D так интересовался. я скорее питон выберу.)))( хоть он и интерпретируемый)

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 15:57 
Перед Вами стоит прикладная задача?

Или вы так просто, студент или предподаватель?


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Иваныч , 09-Дек-18 20:50 
После D, C++ боль. Вечно не хватает электронных вещей на которые отвлекает внимание. Особенно при работе со строками, да и scope exit просто фантастически хороший. Но есть все же одна вещь которая помогает потом при работе с C++. Начинаешь думать по другому и это сказывается на качестве, меньше кода с тем же результатом, да и C++17 начинаешь использовать чаще из-за "не может же эта простая задача решается так глупо" и вынуждает забывать C++98. CTFE, UFCS, property, UDA, compile time introspection не хватает, но хоть в общем на C++17 становится легче.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 14:16 
> А C++ такое может?

Может. Пожалуй, самая большая поломка обратной совместимости за всю историю стандартизованного C++ -- удаление std::auto_ptr (и триграфов, если у кого-то был настолько старый код) в C++17. В остальном же никто не запрещает взять код на C++98, добавить в него чего-нибудь из C++11 и собрать всё это в режиме C++17.
Обратная совместимость ABI на совести разработчиков компиляторов, язык тут не при чём.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 10-Дек-18 01:21 
> язык тут не при чём.

А разве не язык заставляет name mangling делать?


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено nobody , 10-Дек-18 10:33 
Нет, не язык. Это расплата за возможность пользоваться теми же самыми компоновщиками, что и C, вместо того, чтобы городить новые специальные для одного единственного языка.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 10-Дек-18 16:32 
> А разве не язык заставляет name mangling делать?

Алгоритм name mangling-а, раскладка классов/структур в памяти и прочие элементы ABI стандартом не регламентируются (некоторые требования всё-таки есть, но в контексте этого обсуждения они несущественны), каждый компилятор волен делать их по-своему.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено апро , 02-Янв-19 01:49 
>> А C++ такое может?
> Может.

Где? Пересобрать все в режиме C++17 это не то о чем я спрашивал.
Я спрашивал можно ли часть объектников собрать в режиме c++03, часть в c++11,
а остальное в c++17 и потом слинковать и чтобы все это заработало корректно?

Впрочем из вашего ответа очевидно что не может, так кто ломает совместимость?


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено пох , 08-Дек-18 16:21 
как какая? mozilla firefox. В принципе ничего система, браузер вот скоро заменят на хромиум, и вообще будет шикарно.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 07:36 
firefox quantum
servo

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 10:19 
Servo

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 16:09 
Cистема контроля версиями pijul, например.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним84701 , 08-Дек-18 17:05 
> Редакция "2015" включает уже стабилизированную к текущему моменту функциональность и все будущие изменения не нарушающие совместимость, а редакция "2018" дополнительно охватывает нарушающие совместимость новшества,

Можно было бы не портить традицию и использовать "2.x" и "3.x" для обозначения разных, не совместимых между собой, веток языка.


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 17:11 
> Можно было бы не портить традицию и использовать "2.x" и "3.x" для обозначения разных, не совместимых между собой, веток языка.

ну вообще это версия компилятора (1.31), а версия языка 2018,
и компилятор 1.31 поддерживает и 2015 и 2018 варианты,
и может собрать проект из разных (crate) которые вперемешку написаны на 2015 и 2018


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Ретроград , 08-Дек-18 17:19 
Правильно, и пусть пользователь гадает, почему у него при минорном обновлении с 1.30 на 1.31 все сломалось. Впрочем, растаманам не привыкать, походу...

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено имя , 08-Дек-18 21:37 
А почему при обновлении компилятора должно что-то ломаться? Старый код без аннотации "компилируй меня в 2018 редакции" будет компилироваться по-старому; обратная совместимость на уровне компилятора не нарушена, только на уровне синтаксиса.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним84701 , 08-Дек-18 17:21 
>> Можно было бы не портить традицию и использовать "2.x" и "3.x" для обозначения разных, не совместимых между собой, веток языка.
> ну вообще это версия компилятора (1.31), а версия языка 2018,

Ну вообще-то версия языка и обыгрывалась (просто у того ЯП версия эталонного _компилятора_ совпадает с поддерживаемой версией ЯП) ;).


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 17:30 
> Можно было бы не портить традицию и использовать "0.2.x" и "0.3.x" нестабильных (тех, в которых всё меняется каждые несколько месяцев) веток языка.

почин


"Q"
Отправлено Аноним , 08-Дек-18 17:41 
Qt не хватает

"Q"
Отправлено вейланд , 08-Дек-18 18:33 
Вот да. Прикрутили бы, писал бы.

"Q"
Отправлено Анонимчжан , 08-Дек-18 19:14 
а то что кути постоянно ломают совместимость не страшно? хотя для небольших проектов самое то.

"Q"
Отправлено апро , 08-Дек-18 20:15 
> а то что кути постоянно ломают совместимость не страшно? хотя для небольших проектов самое то.

С чего вдруг? В течении мажорной версии они не то что API, ABI не ломают.


"Q"
Отправлено Аноним , 10-Дек-18 03:09 
Дык и сам Rust постоянно меняют. Тут ведь как выходит что не новая версия руки в ноги и опять все перехерачивать. То ли дело Си с его обратной совместимостью код 89 года собирает и даже варнинги не валт

"Q"
Отправлено апро , 02-Янв-19 01:44 
> Дык и сам Rust постоянно меняют.
> Тут ведь как выходит что не новая версия руки в ноги и опять все перехерачивать

И что именно они ломают? С 1.0 только добавляли новый функционал, не ломая уже существующий.


"Q"
Отправлено Аноним , 08-Дек-18 20:09 
https://azul.rs/

"Q"
Отправлено Аноним , 08-Дек-18 22:48 
Зачем? WPF или WinForms надо.

"Q"
Отправлено Аноним , 09-Дек-18 07:30 
https://github.com/KDE/rust-qt-binding-generator

"Q"
Отправлено Fracta1L , 09-Дек-18 09:30 
Теперь "кедораст" не будет считаться ругательством?

"Q"
Отправлено Анонимчжан , 10-Дек-18 00:53 
ахахах упал со стула))) теперь все будут боле осмотрительны со словами)))ахахах

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 19:59 
https://hacks.mozilla.org/2018/12/rust-2018-is-here/

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 08-Дек-18 23:41 
"Stuffing my head with code, then turning it into codecartoons" на этом, пожалуй, и закончим.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 00:03 
Clippy столько исправлений выявил! Очень крутая штука, даже баг помог найти

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 00:18 
Rust уже написан на Rust...
Может на Go его переписать?..

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 00:23 
Любой язык - подмножество Perl ©

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 09:13 
Кто-то забыл про десятое правило Гринспена.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 00:31 
Для хыпстоты самое то, люди же продолжут писать на c/c++.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 00:37 
продолжат*

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 01:13 
Хипстерский не люди? Ей богу, фошызм какой-то

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 10:48 
Да хипстота ваши плюсы, люди продолжат писать на Каболе.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Онаним , 09-Дек-18 13:43 
кОболе, хипстота )

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено DerRoteBaron , 09-Дек-18 18:38 
Вот только любой новый стандарт C++ переносит костыльные реализации раста двух-трехлетней давности, и то в виде отвратительной STL, да еще и часто с ненулевой стоимостью.
А си будет жить, правда в основном лишь там, где еще недавно писали только на асме и в компактных инструментах вроде стандартных консольных утилит

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Гит , 10-Дек-18 17:31 
Раст создали для того чтобы все знали что может быть ещё хуже и писали дальше бы на С++.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 07:32 
>Запущены инициативы по оптимизации Rust для предметно-ориентированных областей.

а gui?


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено asargis , 09-Дек-18 08:06 
https://azul.rs/

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Проходил мимо , 09-Дек-18 10:23 
Спасибо!
Надо будет посмотреть, что это такое.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено DerRoteBaron , 09-Дек-18 19:21 
Какой-то ад, в релиз не собирающийся и, похоже, не способный выглядеть хоть сколько-нибудь нативно

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 20:50 
Да, один из недостатков раста - молодость и недостаток стабильных решений. Все быстро развивается. Тот же azul основан на webrender, который 3 недели назад ушел в бету.

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


"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 09-Дек-18 10:48 
http://relm.ml/relm-intro

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Гит , 10-Дек-18 17:29 
Не нужно.

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Аноним , 10-Дек-18 21:24 
Правила статического анализатора раста приводят в бешенство при использовании гтк. И хочется какого-никакого паттерна, чтобы были вьюхи, модели, и чтобы не начинать каждый мелкий проект с написания велосипеда MVC

"Релиз языка программирования Rust 2018 (1.31)"
Отправлено Anon4ik_ , 09-Дек-18 17:47 
> предметно-ориентированных областей

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