The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Выпуск языка программирования Rust 1.3, развиваемого проекто..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от opennews (??) on 18-Сен-15, 00:28 
Доступен (http://blog.rust-lang.org/2015/09/17/Rust-1.3.html) релиз языка программирования Rust 1.3 (http://www.rust-lang.org), развиваемого проектом Mozilla, обеспечивающего (https://www.opennet.me/opennews/art.shtml?num=42241) автоматическое управление памятью и предоставляющего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (https://www.opennet.me/opennews/art.shtml?num=36576), написанный (https://github.com/servo/servo/) на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

В новом выпуске (https://github.com/rust-lang/rust/blob/master/RELEASES.md#ve...) работа по оптимизации производительности была сфокусирована на стандартной библиотеке: задействован более эффективный алгоритм сопоставления строк, за счёт улучшения кода обнуления областей увеличена производительность вызовов  Vec::resize и Read::read_to_end, проведена оптимизация вызова Read::read_to_end при работе со стандартным входным потоком и файлами, значительно ускорен код функции PartialEq.


В стандартной библиотеке представлен новый Duration API (http://doc.rust-lang.org/nightly/std/time/struct.Duration.html) для работы с интервалами времени.  Улучшены реализации Error и Hash/Hasher. Добавлена поддержка FreeBSD на системах i686  (x86_64 поддерживается уже давно) и Windows XP, продолжено портирование под инструментарий MSVC. В пакетном менеджере Cargo улучшены (https://github.com/rust-lang/rfcs/pull/1193) средства диагностической сборки (lint). Представлено новое руководство Rustonomicon (http://doc.rust-lang.org/nightly/nomicon/), отражающее тонкости использования Rust и методы написания Unsafe-обработчиков.


URL: http://blog.rust-lang.org/2015/09/17/Rust-1.3.html
Новость: http://www.opennet.me/opennews/art.shtml?num=42981

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –25 +/
Сообщение от Аноним (??) on 18-Сен-15, 00:28 
Эталонное ненужно или все-таки серебряная пуля? Кто что думает?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +13 +/
Сообщение от Kuku on 18-Сен-15, 00:50 
Вам это не нужно
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –7 +/
Сообщение от AnotherReality (ok) on 18-Сен-15, 02:26 
Посамому  расту у меня мнения нет, но  я доверяю мнению amarao  http://habrahabr.ru/post/239067/#comment_8031769
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

13. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –10 +/
Сообщение от Аноним (??) on 18-Сен-15, 09:05 
Та же Vala, вид в профиль.
Или еще какой из сотен "c/c++ только лучше!"
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –2 +/
Сообщение от Капитошка on 18-Сен-15, 01:17 
15.05.2015 Rust 1.0
26.06.2015 Rust 1.1
08.08.2015 Rust 1.2
17.09.2015 Rust 1.3

лепят как горячие пирожки

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Хвост on 18-Сен-15, 02:18 
Они сами выбрали небольшой период релизов.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от t (??) on 18-Сен-15, 02:22 
5 недель. цикл как у firefox..
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

7. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от 0eviy (ok) on 18-Сен-15, 03:20 
Есть и есть, почему и нет
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +2 +/
Сообщение от классический анонимус on 18-Сен-15, 04:41 
Название Rustonomicon отдаёт колдунством и некромансией. Рекомендую сменить на Rustomasutra.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +2 +/
Сообщение от Адепт on 18-Сен-15, 05:49 
Rustomasutra это вторая часть, сначала нужен Rustonomicon
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от Аноним (??) on 18-Сен-15, 06:24 
все правильно, rust с unsafe - это оно и есть, колдунство и некромансия))
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +5 +/
Сообщение от Аноним (??) on 18-Сен-15, 06:35 
руководство распечатывается, скручивается в трубочку и начинается rustomania
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

50. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Аноним (??) on 18-Сен-15, 16:07 
The Rustonomicon
The Dark Arts of Advanced and Unsafe Rust Programming

http://doc.rust-lang.org/nightly/nomicon/

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

12. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –5 +/
Сообщение от Аноним (??) on 18-Сен-15, 09:02 
Список приложений написанных на Rust:

bluejekyll/trust-dns — a DNS-server
BurntSushi/xsv — a fast CSV command line tool (slicing, indexing, selecting, searching, sampling, etc.)
buster/rrun — a command launcher for Linux, similar to gmrun  
clog-tool/clog-cli — a conventional changelog port (generates a changelog from git metadata)
gchp/iota — a simple text editor
imjacobclark/Herd — an experimental HTTP load testing application
kbknapp/docli — a command line utility for managing DigitalOcean infrastructure
MaidSafe — a decentralized platform.
seppo0010/rsedis — a Redis reimplementation
Servo — a prototype web browser engine
uutils/coreutils — a cross-platform Rust rewrite of the GNU coreutils

Серво, велосипеды и хелоуворд-ы.
Печально.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Аноним (??) on 18-Сен-15, 09:18 
А как же glutin - переписанный GLFW, а также glium - безопасная обёртка над OpenGL
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

17. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от Аноним (??) on 18-Сен-15, 09:55 
толсто.

http://www.piston.rs

более 3 тысяч приложений и пакетов за несколько месяцев,
от библиотек, вёбфреймворков, до геймдвижков, гуй-менеждеров и аудиcэплеров
https://crates.io/

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

20. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от Аноним (??) on 18-Сен-15, 10:14 
>Список приложений
> http://www.piston.rs
>  game engine

Вы не знаете что такое приложение? Хоть словарь купите, что ли.

> https://crates.io/
> более 3 тысяч приложений и пакетов за несколько месяцев,

Пакетов не приложений. Самые популярные пакеты на этом сайле
libc
winapi
rand - в 2015 в Rust нет инструментов для генерации случайных чисел в стандартной библиотеке
gcc
time см rand
winapi-build
и тп.
Я выше привес список ПРИЛОЖЕНИЙ взятый из kud1ing/awesome-rust из раздела ПРИЛОЖЕНИЯ.


Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

48. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Аноним (??) on 18-Сен-15, 15:56 
>в 2015 в Rust нет инструментов для генерации случайных чисел в стандартной библиотеке

это намеренное решение - сделать стандартную библиотеку как можно более легковесной и вынести все что можно в отдельные крейты под управлением менеджера пакетов (т.е. Cargo). В C++ такого менеджера нет, и поэтому приходится пихать все подряд в уже разросшийся до неприличных размеров libstdc++

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

21. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –2 +/
Сообщение от Аноним (??) on 18-Сен-15, 10:15 
>более 3 тысяч приложений и пакетов за несколько месяцев,

слабо.
http://go-search.org/

196291 golang packages in 102487 projects

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

44. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Аноним (??) on 18-Сен-15, 14:50 
а сколько там сам GO с первой версии живет?
Кол-во пакетов c релиза 1й версии GO за 6месяцев?

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

Вот тогда на текущий момент на гитхабе 7тыс "пакетов":
https://github.com/search?l=Rust&q=rust&ref=searchresults&ty...

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

15. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –4 +/
Сообщение от Аноним (??) on 18-Сен-15, 09:49 
Я посмотрел на образцы кода и у меня вытекли глаза.

В 2015 году язык программирования Rust не может объявить массив(vector) с инициализацией значений.


<c++ 2003>
int foo [] = { 16, 2, 77, 40, 12071 };
<Rust 2015>
let x: Vec<u32> = {
    let mut temp_vec = Vec::new();
    temp_vec.push(1);
    temp_vec.push(2);
    temp_vec.push(3);
    temp_vec
};

Фейспалм.
Но, погодите, можно же воспользоваться разрекламированными макросами в Rust и написать костылик!

macro_rules! vec {
    ( $( $x:expr ),* ) => {
        {
            let mut temp_vec = Vec::new();
            $(
                temp_vec.push($x);
            )*
            temp_vec
        }
    };
}

Вот это мощь!
А главное преимущество - если написать много такого кода тебя никогда не уволят.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –3 +/
Сообщение от Аноним (??) on 18-Сен-15, 09:50 
Это пример из стандартной библиотеки
http://doc.rust-lang.org/book/macros.html
или скорее из стандартной костылетеки.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

18. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от Аноним (??) on 18-Сен-15, 10:06 

>

 
> <c++ 2003>
> int foo [] = { 16, 2, 77, 40, 12071 };

let foo: Vec<u32> = vec![16, 2, 77, 40, 12071];


Уже есть "стандартный" готовый макрос, подключать и вводить дополнительно в код ничего не надо.
И кстати есть Плюсовые конструкции которые в РУСТ выглядят лучше и гораздо удобнее.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

25. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –3 +/
Сообщение от Аноним (??) on 18-Сен-15, 10:24 
А я вот вижу в макросе Vec::new(). То есть для пользовательского типа макрос не сработает и потребуется писать его заново.
А ля
let myFoo: Myvec<u32> = myvec![]
Причем, костылесипедирование это официально рекомендованный метод написания кода.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

49. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Аноним (??) on 18-Сен-15, 16:05 
>А я вот вижу в макросе Vec::new(). То есть для пользовательского типа макрос не сработает и потребуется писать его заново

эксперты opennet, как обычно, блещут знанием обсуждаемого предмета. Идите курите вывод типов в rust

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

19. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +4 +/
Сообщение от Аноним (??) on 18-Сен-15, 10:11 
Вот так точнее уж сравнивать
C++
int foo [] = { 16, 2, 77, 40, 12071 };
RUST
let foo = vec![16, 2, 77, 40, 12071];
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

22. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Аноним (??) on 18-Сен-15, 10:18 
>   vec!

Это! макрос! который! приведен! выше! Любой! пользовательский! тип! потребует! написания! уевой! тучи! таких! макросов!

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

24. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Aleks Revo (ok) on 18-Сен-15, 10:24 
>>   vec!
> Это! макрос! который! приведен! выше! Любой! пользовательский! тип! потребует! написания!
> уевой! тучи! таких! макросов!

Нахрена любому пользовательскому типу туева хуча макросов?

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

26. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Аноним (??) on 18-Сен-15, 10:26 
> Нахрена любому пользовательскому типу туева хуча макросов?

Причем тут туева хуча?
Это макрос инициализации. Пользовательскому типу не нужна инициализация?


Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

28. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Aleks Revo (ok) on 18-Сен-15, 10:38 
>> Нахрена любому пользовательскому типу туева хуча макросов?
> Причем тут туева хуча?
> Это макрос инициализации. Пользовательскому типу не нужна инициализация?

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

Вектор - динамическая структура.

В конце концов обычно данные хранятся не в коде программы, а на внешних носителях.

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

34. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –1 +/
Сообщение от Аноним (??) on 18-Сен-15, 11:27 
let Rust = "Overhyped trash"
Deal::with::it()
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

56. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Aleks Revo (ok) on 21-Сен-15, 07:23 
Как тут ниже написали? "Анус запеканус". Это не уровень аудитории Rust, это уровень "критиков" (читай "троллей"). По делу ведь сказать нечего, критикуемый материал не осилили, в результате чего путаются и делают заведомо неверные утверждения, но такие ультракатегоричные высказывания )))
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

57. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Aleks Revo (ok) on 21-Сен-15, 07:28 
>> Нахрена любому пользовательскому типу туева хуча макросов?
> Причем тут туева хуча?
> Это макрос инициализации. Пользовательскому типу не нужна инициализация?

Вот смотри, неосиливший:

    let vertex_data = [
        Vertex { pos: [ -0.5, -0.5 ], color: [1.0, 0.0, 0.0] },
        Vertex { pos: [  0.5, -0.5 ], color: [0.0, 1.0, 0.0] },
        Vertex { pos: [  0.0,  0.5 ], color: [0.0, 0.0, 1.0] },
    ];

Инициализировано. Без макросов. Пользовательский тип.
Зато с макросами можно сильно больше.

    let program = {
        let vs = gfx::ShaderSource {
            glsl_120: Some(include_bytes!("triangle_120.glslv")),
            glsl_150: Some(include_bytes!("triangle_150.glslv")),
            .. gfx::ShaderSource::empty()
        };
        let fs = gfx::ShaderSource {
            glsl_120: Some(include_bytes!("triangle_120.glslf")),
            glsl_150: Some(include_bytes!("triangle_150.glslf")),
            .. gfx::ShaderSource::empty()
        };
        factory.link_program_source(vs, fs).unwrap()
    };

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

23. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Aleks Revo (ok) on 18-Сен-15, 10:23 
C++ - в 2003 году исполнилось 20 лет.
Rust - в 2015 году - первый стабильный релиз в котором зафиксировали синтаксис.
Кстати, а в чём проблема - компилятор сам понимает {1, 2, 3} или структуру формирует препроцессор vec![1, 2, 3]? Вы от одной мысли про макросы начинаете генерировать говнокод? ))
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

27. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –2 +/
Сообщение от Аноним (??) on 18-Сен-15, 10:30 
> C++ - в 2003 году исполнилось 20 лет.

Эта возможность появилась в 2003(официально). Но у мозилы терминальный приступ NIH.

> Rust - в 2015 году - первый стабильный релиз

Надеюсь и последний.
> Кстати, а в чём проблема - компилятор сам понимает {1, 2, 3}
> или структуру формирует препроцессор vec![1, 2, 3]?

Слава богу создатели Rust нагенерировали овнокода за нас и назвали стандартной библиотекой.


Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

29. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +2 +/
Сообщение от Aleks Revo (ok) on 18-Сен-15, 10:42 
>> C++ - в 2003 году исполнилось 20 лет.
> Эта возможность появилась в 2003(официально). Но у мозилы терминальный приступ NIH.

То есть, спустя 20 лет после появления самого языка. 20 лет жили не тужили.
И Мозилла как-то больше десяти лет юзала, пока вконец костыли C++ не осточертели и не подвернулась команда разрабатывающая язык с требуемыми фичами.


>> Rust - в 2015 году - первый стабильный релиз
> Надеюсь и последний.
>> Кстати, а в чём проблема - компилятор сам понимает {1, 2, 3}
>> или структуру формирует препроцессор vec![1, 2, 3]?
> Слава богу создатели Rust нагенерировали овнокода за нас и назвали стандартной библиотекой.

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

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

31. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от Аноним (??) on 18-Сен-15, 11:01 
>И Мозилла как-то больше десяти лет юзала

и еще 40 будет "юзать". Servo даже не близок к использованию.
>команда разрабатывающая язык с требуемыми фичами.

Игнорирую все наработки в дизайне языков программирования и прикладной опыт за эти 20 лет.
А потом они удивляются непопулярности их NIH творения.

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

43. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –1 +/
Сообщение от Aleks Revo (ok) on 18-Сен-15, 14:40 
> Servo даже не близок к использованию

Кто-то его обещал прям сейчас на тарелочке с голубой каёмочкой™?

> Игнорирую все наработки в дизайне языков программирования и прикладной опыт за эти 20 лет.
> все
> ВСЕ

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

Должен разочаровать, твой опыт стремится к плинтусу. Снизу.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

30. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +5 +/
Сообщение от Аноним (??) on 18-Сен-15, 10:49 
> let x: Vec<u32> = {
>    let mut temp_vec = Vec::new();
>    temp_vec.push(1);
>    temp_vec.push(2);
>    temp_vec.push(3);
>    temp_vec
>};

Вы массив фиксированного размера сравниваете со списком нефиксированного, разве нет?
Мне кажется более близким эквивалентом вашему коду на С++ является:

let x = &mut [16, 2, 77, 40, 12071];

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

32. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от Аноним (??) on 18-Сен-15, 11:03 
vector <string> vs{"alpha", "beta", "gamma"};
Работает не?
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

35. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Аноним (??) on 18-Сен-15, 11:43 
C++11?

Вообще-то, как минимум (мы же не необразованные обезьяны использующие "use namespace std;", да?):

std::vector<std::string> vs {"alpha", "beta", "gamma"};

Без макросов можно еще (таки да, длиннее и не так эффективно - хотя фиг знает какие там оптимизации компилятор сделает...):

let vs: &mut Vec<_> = &mut (["alpha", "beta", "gamma"]).iter().cloned().collect();

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

36. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +2 +/
Сообщение от Аноним (??) on 18-Сен-15, 12:11 
>Вообще-то, как минимум (мы же не необразованные обезьяны использующие "use namespace std;", да?):

using std::vector;

>let vs: &mut Vec<_> = &mut (["alpha", "beta", "gamma"]).iter().cloned().collect();

Без комментариев.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

38. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Аноним (??) on 18-Сен-15, 12:43 
> Без комментариев.

Ok, уговорил.

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

41. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +4 +/
Сообщение от Аноним (??) on 18-Сен-15, 14:24 
<c++ 2003>
int foo [] = { 16, 2, 77, 40, 12071 };
<Rust 2015>
let foo = [16, 2, 77, 40, 12071];
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

37. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –2 +/
Сообщение от foror (ok) on 18-Сен-15, 12:18 
Когда уже наследование запилят для нормальной реализации DOM, GUI, RPG и прочих задач из классического ООП?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

40. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от Аноним (??) on 18-Сен-15, 14:13 
Никогда. И слава богу, ООП не нужен.
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

39. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +2 +/
Сообщение от burjui (ok) on 18-Сен-15, 13:25 
Это хорошо, что они развивают язык, но не рановато ли они его зарелизили? Решил как-то изучить Rust на задаче, уже решённой мной несколько раз на C, C++ и D - написании парсера выдуманного мной игрушечного ЯП. Язык показался достаточно приятным для системного, но borrow checker просто вынес мозг при написании парсера. Сначала я думал, что это я тупой и не вкурил в работу механизма заимствования, побежал читать доки, блоги и whatnot. Выяснилось, что всё я понял правильно, просто компилятор умеет определять только лексические области заимствования. То есть следующий код:

fn parseExpr(&mut self) -> ParseResult {
    match self.lexer.read() {
        Some(token) => CompileError::new(&token.location, "parseExpr(): not implemented"),
        None => CompileError::new(&self.location(), "parseExpr(): not implemented")
    }
}

Не компилится:

error: cannot borrow `*self` as immutable because `self.lexer` is also borrowed as mutable
  None => CompileError::new(&self.location(), "parseExpr(): not implemented")

Компилятор считает, что self.lexer заимствован в ветке None, хотя очевидно, что заимствование должно завершиться в самом её начале, т.к. заимствованная ссылка не используется. Но компилятору пофиг.

И разработчикам пофиг, потому что у RFC по этой проблеме - https://github.com/rust-lang/rfcs/issues/811 - стоит статус "отложено" (postponed). Они не считают это достаточно серьёзной проблемой, чтобы решать её до первого релиза, и хотят отложить это до Rust 2.0, хотя именно borrow checker доставляет больше всего проблем новичками-растоманам.

В общем, текущая реализация компилятора для меня сводит на нет всё удовольствие от изучения Rust. Подожду 2.0, чтобы не портить впечатление.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

42. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  –4 +/
Сообщение от Аноним (??) on 18-Сен-15, 14:34 
Погромисты на низкоуровневых ЯП любят испытывать боль. В русте ты получаешь всё те же ощущения, но зато у тебя появляется надежда: если мучения твои окончатся, ты получишь гарантированно рабочий код без течек и т.п. Можешь утешать себя этим.
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

45. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +2 +/
Сообщение от burjui (ok) on 18-Сен-15, 15:10 
Анус запеканус? На Rust в целом гораздо приятнее писать, чем на том же C, просто компилятор пока туповат. Когда починят и смажут, ощущения будут ещё лучше. Не вижу смысла так кипеть, если никто тебя не заставляет писать на Rust здесь и сейчас. А пока чинят, у тебя есть время отдышаться, успокоиться и нанести мазь на припекаемое место.
Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

52. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Вареник on 18-Сен-15, 21:12 
>> Анус запеканус
>> туповат
>> Когда починят и смажут, ощущения будут ещё лучше.
>> отдышаться, успокоиться и нанести мазь на припекаемое место.

- Вот она, целевая аудитория Rust...

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

54. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от burjui (ok) on 19-Сен-15, 15:57 
Есть форма, а есть содержание. Видимо, видеть второе за первым (я сейчас не про еду) дано не всем.
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

46. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от Аноним (??) on 18-Сен-15, 15:31 
>ты получишь гарантированно рабочий код

Без утечек памяти и сегфолтов, багов  и логических ошибок, от запуска этого кода у процессора отрастет новое ядро, а на hdd пропадут bad-ы.
Ну и понятно дело, волосы станут живыми и шелковистыми.

Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

55. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +/
Сообщение от Aleks Revo (ok) on 21-Сен-15, 07:16 
Кернел 4.2, amdgpu + radeonsi - null pointer dereference на старте системы и по совместительству вместо старта системы.
Упс, откуда это? Писали, тестировали, дебажили, наконец релизили, а оно...
В неурочный час и все ядра могут отваливаться и волосы на груди седеть ;)
Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

47. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от Аноним (??) on 18-Сен-15, 15:44 
>>И разработчикам пофиг...

нет, этой проблемой как раз занимаются, должна быть решена с вводом MIR:

https://github.com/rust-lang/rfcs/pull/1211

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

51. "Выпуск языка программирования Rust 1.3, развиваемого проекто..."  +1 +/
Сообщение от burjui (ok) on 18-Сен-15, 16:57 
Отличные новости.
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру