Язык программирования Rust
Rust - современный ЯП для системного программирования с акцентом на безопасность и скорость.
Официальный сайт http://www.rust-lang.org Обучающие примеры http://rustbyexample.com/ На данный момент формирование языка практически завершено. Согласно оф. блогу расту осталось пройти 3 фазы развития прежде чем выпустят 1.0. Цитата:
Критикуем, боготворим, хороним и т.д. |
Хорошая подборка проектов, которые уже написаны на расте https://github.com/kud1ing/awesome-rust
Обратите внимание на раздел Web programming. |
Для любителей экспериментов у раста уже довольно много байндингов к другим япам. Не на прямую, конечно, но на "поиграться" сойдёт)
https://siciarz.net/24-days-of-rust-...her-languages/ |
Теперь в инсталлятор раста включён пакетный менеджер Cargo
http://www.reddit.com/r/rust/comment...argo_and_docs/ |
я смогу вызвать window.alert через Rust ? вижу, через emscripten что-то делают, но особого успеха не достигли
|
melky,
честно говоря, я не интересовался этой темой. Да и зачем, если на JS это проще сделать) На данный момент я сижу на 0.12 и жду альфу, там снова будут ломающие изменения, а потом будет стабильность. |
Один Rust не Траст :)
|
Дока по ночным версиям раста http://doc.rust-lang.org/nightly/book/
|
Как выйдет релиз, попробую заюзать совместно с нодой :)
|
kobezzza,
уже. Обновись и выполни rustc --version, оно уже в единичке :) Или ты про полностью стабильный релиз, а не альфу/бету? |
Цитата:
|
kobezzza,
но зачем так долго ждать, если можно уже в ближайшее время начать?) В языке вероятнее всего, никаких крупных ломающих изменений не произойдёт. В крайнем случае можно с бетки начать. |
Итак, альфач вышел http://blog.rust-lang.org/2015/01/09...1.0-alpha.html
|
Цитата:
Глянул STD - пока довольно скудновато :) |
kobezzza,
Цитата:
Цитата:
|
Цитата:
|
melky,
сначала нужно заново изучить то, что они там поломали) Да и вообще хоть какое-то более-менее понимание языка должно быть(до сих пор путаюсь в двух видах строк), а потом уже будут думать над идеями) |
Servo отрендерил свой первый SVG http://imgur.com/K2Gwkh2
|
Цитата:
Расти Серво большой, чтобы Гекко тобой гордился! :) |
kobezzza,
он и развивается с такой же скоростью) |
Сёня уже пописал на Расте :) Для WebStorm есть плагинчик для Rust.
|
kobezzza,
Цитата:
|
This Week in Rust 66
Ну наконец-то раздел "Breaking Changes" содержит всего лишь две строки изменений) |
И немного новостей о Серво http://www.phoronix.com/scan.php?pag...Engine-LCA2015
|
И снова инфа о Серво https://github.com/glennw/servo-shell
В этот раз начали проектировать дизайн нового браузера. |
Цитата:
|
|
Цитата:
Хотя, может, я и не прав :) |
melky,
гитхаб лучше смотрится) |
Сравнение рендеринга Servo и Firefox
https://www.youtube.com/watch?v=pZGhnqtXVdc |
Итак, с небольшим опозданием, сегодня релизнулась бета версия.
Announcing Rust 1.0 Beta |
|
Свершилось! Вышел релиз первой версии http://blog.rust-lang.org/2015/05/15/Rust-1.0.html
|
Цитата:
|
|
kobezzza,
о, спасибо, очень полезная штука. Жаль, что только версия Раста не указана. |
Цитата:
|
Цитата:
|
kobezzza, это опять foo, если что)
|
Цитата:
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, время: 10:37. |