Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Язык программирования Rust (https://javascript.ru/forum/offtopic/52727-yazyk-programmirovaniya-rust.html)

Safort 03.01.2015 22:03

Язык программирования Rust
 
Rust - современный ЯП для системного программирования с акцентом на безопасность и скорость.

Официальный сайт
http://www.rust-lang.org
Обучающие примеры
http://rustbyexample.com/

На данный момент формирование языка практически завершено. Согласно оф. блогу расту осталось пройти 3 фазы развития прежде чем выпустят 1.0.
Цитата:

Rust 1.0.0-alpha – Friday, Jan 9, 2015
Rust 1.0.0-beta1 – Week of Feb 16, 2015
Rust 1.0.0 – One or more six-week cycles later

Критикуем, боготворим, хороним и т.д.

Safort 03.01.2015 22:16

Хорошая подборка проектов, которые уже написаны на расте https://github.com/kud1ing/awesome-rust
Обратите внимание на раздел Web programming.

Safort 04.01.2015 01:09

Для любителей экспериментов у раста уже довольно много байндингов к другим япам. Не на прямую, конечно, но на "поиграться" сойдёт)
https://siciarz.net/24-days-of-rust-...her-languages/

Safort 04.01.2015 16:31

Теперь в инсталлятор раста включён пакетный менеджер Cargo
http://www.reddit.com/r/rust/comment...argo_and_docs/

melky 04.01.2015 16:35

я смогу вызвать window.alert через Rust ? вижу, через emscripten что-то делают, но особого успеха не достигли

Safort 04.01.2015 16:57

melky,
честно говоря, я не интересовался этой темой. Да и зачем, если на JS это проще сделать)
На данный момент я сижу на 0.12 и жду альфу, там снова будут ломающие изменения, а потом будет стабильность.

nerv_ 04.01.2015 17:05

Один Rust не Траст :)

Safort 09.01.2015 13:19

Дока по ночным версиям раста http://doc.rust-lang.org/nightly/book/

kobezzza 09.01.2015 13:59

Как выйдет релиз, попробую заюзать совместно с нодой :)

Safort 09.01.2015 14:18

kobezzza,
уже. Обновись и выполни rustc --version, оно уже в единичке :)
Или ты про полностью стабильный релиз, а не альфу/бету?

kobezzza 09.01.2015 14:59

Цитата:

Или ты про полностью стабильный релиз, а не альфу/бету?
Угу

Safort 09.01.2015 15:19

kobezzza,
но зачем так долго ждать, если можно уже в ближайшее время начать?) В языке вероятнее всего, никаких крупных ломающих изменений не произойдёт. В крайнем случае можно с бетки начать.

Safort 09.01.2015 22:41

Итак, альфач вышел http://blog.rust-lang.org/2015/01/09...1.0-alpha.html

kobezzza 10.01.2015 16:42

Цитата:

Сообщение от Safort (Сообщение 350530)

Круто, но говорят, что ещё будет АПИ для некоторых вещей меняться.

Глянул STD - пока довольно скудновато :)

Safort 10.01.2015 20:13

kobezzza,
Цитата:

Круто, но говорят, что ещё будет АПИ для некоторых вещей меняться.
Ну да, но прогать уже можно)

Цитата:

Глянул STD - пока довольно скудновато
Ога(

melky 10.01.2015 20:25

Цитата:

Сообщение от Safort
Ну да, но прогать уже можно)

чего писать будешь? уже есть идеи проектов?

Safort 10.01.2015 21:16

melky,
сначала нужно заново изучить то, что они там поломали) Да и вообще хоть какое-то более-менее понимание языка должно быть(до сих пор путаюсь в двух видах строк), а потом уже будут думать над идеями)

Safort 13.01.2015 11:26

Servo отрендерил свой первый SVG http://imgur.com/K2Gwkh2

kobezzza 13.01.2015 11:33

Цитата:

Сообщение от Safort (Сообщение 351152)
Servo отрендерил свой первый SVG http://imgur.com/K2Gwkh2

Прям как первые шаги ребёнка:)

Расти Серво большой, чтобы Гекко тобой гордился! :)

Safort 13.01.2015 11:59

kobezzza,
он и развивается с такой же скоростью)

kobezzza 16.01.2015 19:06

Сёня уже пописал на Расте :) Для WebStorm есть плагинчик для Rust.

Safort 16.01.2015 19:51

kobezzza,
Цитата:

Сообщение от kobezzza (Сообщение 350426)
Как выйдет релиз, попробую заюзать совместно с нодой :)

Я знал, что ты не удержишься)

Safort 20.01.2015 10:12

This Week in Rust 66

Ну наконец-то раздел "Breaking Changes" содержит всего лишь две строки изменений)

Safort 20.01.2015 10:23

И немного новостей о Серво http://www.phoronix.com/scan.php?pag...Engine-LCA2015

Safort 26.03.2015 02:08

И снова инфа о Серво https://github.com/glennw/servo-shell
В этот раз начали проектировать дизайн нового браузера.

kobezzza 26.03.2015 11:37

Цитата:

Сообщение от Safort (Сообщение 363196)
И снова инфа о Серво https://github.com/glennw/servo-shell
В этот раз начали проектировать дизайн нового браузера.

Оо я думал, что они просто заменят Gecko в FF и всё? Разве нет? Или это просто элементарный GUI чтобы потестить работу движка.

melky 28.03.2015 13:35


Safort 28.03.2015 14:42

Цитата:

Сообщение от kobezzza (Сообщение 363238)
Оо я думал, что они просто заменят Gecko в FF и всё? Разве нет? Или это просто элементарный GUI чтобы потестить работу движка.

Кажется, они так изначально говорили. Но я с самого начала воспринимал Rust как язык, который должен будет заменить С/С++ в FF. Ну вот сам прикинь, зачем поддерживать такую жирную кодовую базу из С, С++, Rust и JS?) Как по мне, так они медленно будут переписывать в FF всё что можно на Rust. А Servo Shell как раз это подтверждает.
Хотя, может, я и не прав :)

Safort 28.03.2015 14:44

melky,
гитхаб лучше смотрится)

Safort 29.03.2015 17:47

Сравнение рендеринга Servo и Firefox
https://www.youtube.com/watch?v=pZGhnqtXVdc

Safort 03.04.2015 21:01

Итак, с небольшим опозданием, сегодня релизнулась бета версия.
Announcing Rust 1.0 Beta

Safort 12.05.2015 14:24

@FirefoxNightly has experimental support for @rustlang code.

Safort 15.05.2015 20:14

Свершилось! Вышел релиз первой версии http://blog.rust-lang.org/2015/05/15/Rust-1.0.html

kobezzza 15.05.2015 20:40

Цитата:

Сообщение от Safort (Сообщение 371037)
Свершилось! Вышел релиз первой версии http://blog.rust-lang.org/2015/05/15/Rust-1.0.html

Круто та!!!:dance:

kobezzza 29.05.2015 18:20

http://kgv.github.io/rust_book_ru/INTRODUCTION.html

Safort 29.05.2015 19:18

kobezzza,
о, спасибо, очень полезная штука. Жаль, что только версия Раста не указана.

indeterm 03.06.2015 07:55

Цитата:

Сообщение от Safort
Свершилось!

нахрен нужен язык без ООП? Детские поделия писать ?

kobezzza 03.06.2015 20:27

Цитата:

Сообщение от indeterm (Сообщение 373682)
нахрен нужен язык без ООП? Детские поделия писать ?

В Rust вообще то замечательная ОО модель. А вообще слишком жирно, то же ядро линуха написано на С, где нет никакого ООП и ничего.

Erolast 03.06.2015 20:50

kobezzza, это опять foo, если что)

indeterm 03.06.2015 20:56

Цитата:

Сообщение от kobezzza
В Rust вообще то замечательная ОО модель

Вот это говно чтоли ты называешь ООП?
trait Animal {
    // Static method signature; `Self` refers to the implementor type
    fn new(name: &'static str) -> Self;

    // Instance methods, only signatures
    fn name(&self) -> &'static str;
    fn noise(&self) -> &'static str;

    // A trait can provide default method definitions
    fn talk(&self) {
        // These definitions can access other methods declared in the same
        // trait
        println!("{} says {}", self.name(), self.noise());
    }
}

struct Dog { name: &'static str }

impl Dog {
    fn wag_tail(&self) {
        println!("{} wags tail", self.name);
    }
}

// Implement the `Animal` trait for `Dog`
impl Animal for Dog {
    // Replace `Self` with the implementor type: `Dog`
    fn new(name: &'static str) -> Dog {
        Dog { name: name }
    }

    fn name(&self) -> &'static str {
        self.name
    }

    fn noise(&self) -> &'static str {
        "woof!"
    }

    // Default trait methods can be overridden
    fn talk(&self) {
        // Traits methods can access the implementor methods
        self.wag_tail();

        println!("{} says {}", self.name, self.noise());
    }
}

struct Sheep { naked: bool, name: &'static str }

impl Sheep {
    fn is_naked(&self) -> bool {
        self.naked
    }

    fn shear(&mut self) {
        if self.is_naked() {
            // Implementor methods can use the implementor's trait methods
            println!("{} is already naked!", self.name());
        } else {
            println!("{} gets a haircut", self.name);

            self.talk();
            self.naked = true;
        }
    }
}

impl Animal for Sheep {
    fn new(name: &'static str) -> Sheep {
        Sheep { name: name, naked: false }
    }

    fn name(&self) -> &'static str {
        self.name
    }

    fn noise(&self) -> &'static str {
        if self.is_naked() {
            "baaah"
        } else {
            "baaaaaaaaaaaah"
        }
    }
}

fn main() {
    // Type annotation is necessary in this case
    let mut dolly: Sheep = Animal::new("Dolly");
    let spike: Dog = Animal::new("Spike");
    // TODO ^ Try removing the type annotations

    dolly.shear();

    spike.talk();
    dolly.talk();
}

Ты, вообще, очень удачно ник выбрал.


Часовой пояс GMT +3, время: 14:39.