1.3, Аноним (-), 12:50, 23/07/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –11 +/– |
Годно... Заменит питон в машинном обучении - вообще будет замечательно
| |
|
2.6, Аноним (-), 13:07, 23/07/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Но зачем? Rust же не векторный язык программирования как тот же R, или уж тем более не дифференцируемый и не вероятностный. Это нерационально же будет. Надеетесь получить какую-то экономию памяти и быстродействие? Вряд-ли это выйдет существенно.
| |
|
|
4.30, Аноним (-), 18:01, 24/07/2017 [^] [^^] [^^^] [ответить]
| +/– |
> использовать Раст в качестве основного языка
Каргокультисты as is.
Забивать гвозди молотком, подметать молотком, резать хлеб молотком и т.д.
| |
|
|
|
1.7, Аноним (-), 13:19, 23/07/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
>Rust поддерживает смесь императивных, процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование, обобщённое программирование и метапрограммирование, в статических и динамических стилях.
Будто спайс. Впрочем, пользователи Rust'a это растаманы, так что есть что-то общее.
И вот даже https://benchmarksgame.alioth.debian.org/u64q/rust.html взять тесты производительности Раста против Си. Там же четко видно, что оно быстрее, но потребляет больше и при том значительно памяти.
https://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=rust&lang2=gpp
А если взять против Си++, то он побеждает преимущественно в парсерах и мне кажется, что там победа из-за того, что используются другие алгоритмы в библиотеках раста, на комбинаторах, а не из-за преимущества языка в основном.
| |
1.12, Comdiv (ok), 16:05, 23/07/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> Реализована возможность прерывания цикла с возвратом определённого значения.
>... использовать конструкции вида "let x = loop { break 7; };"
Вот из-за таких вещей язык становиться всё больше неадекватным.
| |
|
|
3.14, Comdiv (ok), 16:59, 23/07/2017 [^] [^^] [^^^] [ответить]
| +/– |
Ну да, внедрив одну не самую прекрасную возможность из Algol68, они не могут остановиться и комбинируют её с другой не лучшей чертой - подчёркнутой неструктурностью потока выполнения. Авторы языка, пытаясь решить одни проблемы кодирования, возводят в стандарт вещи, приводящие к другим проблемам кодирования.
| |
|
4.15, nobody (??), 20:08, 23/07/2017 [^] [^^] [^^^] [ответить]
| +/– |
Ну какие тут конкретно "проблемы кодирования"? В том же С++ это делается так:
auto x = []{ for(...) return 7; }();
| |
|
5.18, Comdiv (ok), 01:19, 24/07/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Ну какие тут конкретно "проблемы кодирования"?
Это в 2-х словах не объяснить, потому что требует глубокого понимания и на простых примерах никак не проявляется. В этом состоит одна из проблем любителей принимать решения на основе созерцания микроскопических кусков кода. А дело в нарушении структурности потока выполнения, которое является важной составляющей надёжного программирования. В том же MISRA C неструктурное кодирование запрещено почти полностью.
| |
|
6.23, Аноним (-), 13:06, 24/07/2017 [^] [^^] [^^^] [ответить]
| +3 +/– |
Это нововведение никак не нарушает структурность кода. Это простой ретурн из выражения, которого раньше почему-то не было во отличие от тех же ифов.
В MISRA C запрещены goto и неявная рекурсия, а не возвращения значения из цикла.
| |
|
7.26, Comdiv (ok), 13:55, 24/07/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Это нововведение никак не нарушает структурность
Нарушает, так как струтктурность подразумевает три вида переходов: последовательное, ветвление, цикл по условию. Никаких прыжков из середины цикла не предусмотрено в том числе.
> В MISRA C запрещены goto и неявная рекурсия, а не возвращения значения из цикла
Кроме этого там запрещены continue и return из середины функции. Один(не больше) break, хотя и нарушает структурность, но дозволен из соображений оптимальности. Возвращение значения из цикла в MISRA C не запрещено, потому что его нет в самом C, если только Вы не имеете ввиду return, так он, как раз, запрещён.
| |
|
|
5.28, Аноним (-), 15:06, 24/07/2017 [^] [^^] [^^^] [ответить]
| –3 +/– |
проблемы начинаются когда внутрь цикла начинают пихать десять выходов в разных "местах", по сути оптимальным было бы отсутствие операции выхода из цикла(оставить только окончание итерации и переход к условию)
| |
|
|
|
|
1.16, Дуплик (ok), 22:49, 23/07/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
>По структуре язык Rust напоминает C++
От чего ушли, к тому и пришли.
| |
|
|
3.19, Аноним (-), 02:19, 24/07/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
NIH же
В каждую новость копипастят: "По структуре язык Rust напоминает C++, но".
| |
|
|
1.22, YetAnotherOnanym (ok), 12:29, 24/07/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> Для сжатия архивов вместо gzip по умолчанию теперь применяется сжатие с использованием xz
И это запихнуто в сам язык? Не в либы, пристёгиваемые по выбору девелопера, а в само ядро? Ну охренеть...
| |
|
2.24, Аноним (-), 13:12, 24/07/2017 [^] [^^] [^^^] [ответить]
| +2 +/– |
Нет, это не запихано ни в язык, ни в стандартную библиотеку. Там просто начали по другому ужимать готовый бинарник самого компилятора, который вы можете скачать на сайте или через rustup.
Просто это типичный перевод новости на русский язык без понимания контекста.
| |
|
1.25, Аноним (-), 13:35, 24/07/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Так завезут когда-то зависимые типы или как выше написали, будут и дальше копировать фичи с алгола68?
| |
|
2.27, Comdiv (ok), 14:03, 24/07/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Так завезут когда-то зависимые типы или как выше написали, будут и дальше
> копировать фичи с алгола68?
Можете раскрыть тему чуть подробней?
Опишите, пожалуйста, какие потребности это должно удовлетворить. Почему Вы считаете, что зависимые типы долждны появиться в Rust? Это активно обсуждалось у разработчиков?
| |
|
3.32, Ordu (ok), 20:12, 24/07/2017 [^] [^^] [^^^] [ответить]
| +2 +/– |
Обсуждалось. https://github.com/rust-lang/rfcs/pull/1933
Это очень удобная фишка, которая позволяет, например, объявлять типы параметризованные значением. Не другим типом, а значением.
Там в rfc неплохой пример есть:
impl<const n: usize, T: Clone> Clone for [T; n] {
fn clone(&self) -> [T; n] {
// Clone it...
}
}
Так могла бы выглядеть реализация трейта Clone, создающего копию объекта, для всех возможных типов слайсов. Сейчас в стандартной библиотеке rust'а, есть *33* реализации трейта PartialEq (это операция ==) для слайсов с размерами от 1 до 32. Да, конечно, там не 33 раза написано impl PartialEq for ... бла-бла-бла..., там ради такого написано макрос принимающий в качестве параметра значение типа usize.
Собственно за подробностями можно сходить сюда: https://doc.rust-lang.org/src/core/array.rs.html
И найти там строчки https://doc.rust-lang.org/src/core/array.rs.html#213-218 :
array_impls! {
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32
}
Это, так сказать, квинтэссенция всего предыдущего макрописания. Раскрытие этого макроса компилятором приводит к появлению 33*16 отдельных блоков impl (33 значения для N, и, если я не сбился со счёта, 16 трейтов, типа AsRef, AsMut, Borrow, BorrowMut, PartialEq...), каждый из которых реализует 1-2 функции.
Можно такие штуки делать макросами, но это раздувает код. И это работает только для конечного числа значений n. С зависимыми типами можно будет обойтись без макросов и написать 16 блоков impl, по одному на каждый трейт реализуемый слайсом, а затем компилятор уже будет инстанцировать эти реализации _по_мере_необходимости_.
| |
|
|
1.29, Ordu (ok), 17:27, 24/07/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вау! Все перечисленные нововведения туфта, по сравнению с тем, что скорость компиляции реально выросла. Мне сложно сравнить скорость компиляции с gcc, clang или ещё кем-то (это надо делать не "на глаз", а организовать какое-то тестовое окружение и померять), но 1.19, по сравнению с тем кошмаром, который был в 1.18, просто летает.
Мозилла обещала, Мозилла сделала.
| |
|
2.35, Аноним (-), 04:59, 25/07/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Мозилла обещала, Мозилла сделала.
Вы, случайно, не в курсе, она не обещала сделать браузер для людей?
| |
|
3.37, Led (ok), 01:34, 26/07/2017 [^] [^^] [^^^] [ответить]
| +/– |
>> Мозилла обещала, Мозилла сделала.
> Вы, случайно, не в курсе, она не обещала сделать браузер для людей?
А тебе-то какая разница?
| |
|
|
|