Войти
ФлеймФорумПрограммирование

Язык программирования Rust (3 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 4 5 Следующая »
#30
22:08, 2 июня 2012

cNoNim
let foo = bar
let args :[str] = ["snm","ololo"]


#31
22:17, 2 июня 2012

Methos
ты наверное перепутал, не на Хаскель, а на ML

#32
12:03, 3 июня 2012

Methos
> А кому стандарт фирмы мешал ошибаться хоть раз?

Он мешал наворотить такое, что другие не смогли бы вкурить.
Поэтому вообще всякие сильно высокоуровневые фишки сразу же отлетают.

#33
12:54, 3 июня 2012

Тот факт, что другие вкуривают в код, абсолютно ничего не говорит о его корректности. Может быть, они думают, что вкуривают, а на самом деле не видят багу ( с многопоточным кодом такое легко достижимо ). Необходимость в контрактах обусловлена тем, что люди часто не читают документацию, либо она не соответствует действительности, или же работа кода основывается на неком предположении, которое явно не указывается ни в комментах, ни в коде. А еще спецификации интерфейсов тупо недостаточно для того, чтобы знать, как поведет себя используемый класс/функция в роли параметра шаблона или параметра функции.
Я так понимаю, людям тупо лень писать контракты. При этом им лень делать проверку верности параметров в каждой функции, что выливается в многочасовой дебаг, т.к. параметры были таковы, то индекс ушел за границы массива в доступную память. А баг проявил себя через минут десять после такого доступа. Все еще считаете, что контракты не нужны? Тогда мы идем к вам!
А программинг без проверки предположений о входящих параметрах это "программирование, управляемое надеждой".

#34
20:34, 3 июня 2012

Methos
> и главное ни слова о языке Rust...
пропустил вторую страницу?

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

судя по наличию лоу-лвл фич вроде указателей, генерикам и таскам, он прицеливается на зону с++ и еще чуть выше ( то есть конкурент Go )
Если не умрет - через лет 6 возможно откопаем тред =)
В любом случае интересно, кто поделит между собой место с++

Интересные фичи в rust тоже есть ( не видел такого нигде ):
http://doc.rust-lang.org/doc/rust.html#typestate-system
Субъективно, я пока что за Rust, нежели за Go или D.

#35
11:41, 4 июня 2012

Methos
> и сам ничего не постил релевантного... ждал, пока появятся те, кому есть дела и
> будут тут постить перевод документации на русский?
я свободно читаю технический английский, так что не по адресу.

самая интересная фича это task'и (имхо), но typestate тоже хорош.
синтаксис мусорный, перегруженный.
как замена С/С++ язык не предполагается, потому что ему нужен его же рантайм в dll (по крайней мере пока).

в целом вызывает смешанные чувства, что-то типа "на безрыбье и рак - рыба".

#36
23:00, 23 июня 2012

Что с обработкой ошибок в Rust? Таски просто молча отмирают, если что-то пошло не так?

Прошло более 3 лет
#37
18:50, 10 мая 2016

UP
Rust всё ещё актуален, или тему можно закопать обратно?

#38
20:08, 10 мая 2016

неактуально по-моему. Желания даже нет его смотреть. Куча булшита как про Д и ГО.

#39
18:24, 27 июня 2016

UP.

Есть такой код:

struct A<'l>
{
    a : &'l i32
}

fn Do<'l>( a : &'l mut Vec<A<'l>>, b : &'l i32 )
{
    a.push( A{ a : b } );
}

fn main()
{
    let mut v : Vec<A> = Vec::new();
    {
        let x = 42;
        Do( &mut v, &x );
    }
}

И выхлоп конпелятора:

+ Показать

А вот объявление класса Vec:
https://github.com/rust-lang/rust/blob/master/src/libcollections/vec.rs#L272

Вопрос вот в чём: откуда компилятор знает, что в Vec<T> хранятся значения типа T и как он производит распространение времён жизни ссылок в типе T на тип Vec<T>?

#40
20:55, 27 июня 2016

Panzerschrek[CN]
> fn Do<'l>( a : &'l mut Vec<A<'l>>, b : &'l i32 )

Ой жесть. Зачем так жить?

#41
21:13, 27 июня 2016

jaguard
> Ой жесть. Зачем так жить?
  Зато тебе не надо думать над управлением памятью, компилятор всё разрулит за тебя. Вот ты только сначала потрать время на то, чтобы подробно объяснить зачем тебе эта переменная, что и зачем ты будешь в ней хранить и куда передавать. Если вдруг однажды случится, что назначение поменяется и придётся изменить половину программы - ну извиняй, сам же написал.

#42
22:09, 27 июня 2016

Хаскель напоминает. Там тоже атрибуты чистоты грязноты надо протянуть через весь код. А потом если ещё где-то надо добавить грязи - переписывай пол проекта)

#43
0:16, 28 июня 2016

Zefick
>>> fn Do<'l>( a : &'l mut Vec<A<'l>>, b : &'l i32 )
>> Ой жесть. Зачем так жить?
> Зато ...

Какое может быть "зато" с таким говнищем?

#44
8:32, 28 июня 2016

vater
> Какое может быть "зато" с таким говнищем?
  Ну как минимум тут нет template<typename>, за это уже можно многое простить. Хотя в принципе этого говнища кроме крестов и так нигде нет.
  Наверное можно привыкнуть при наличии достаточной мотивации. Не писать на крестях уже неплохо тянет на таковую для тех, кто не осилил шарп.

Страницы: 1 2 3 4 5 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.