|
2.13, Аноним (-), 09:05, 18/09/2015 [^] [^^] [^^^] [ответить]
| –10 +/– |
Та же Vala, вид в профиль.
Или еще какой из сотен "c/c++ только лучше!"
| |
|
1.3, Капитошка (?), 01:17, 18/09/2015 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
15.05.2015 Rust 1.0
26.06.2015 Rust 1.1
08.08.2015 Rust 1.2
17.09.2015 Rust 1.3
лепят как горячие пирожки
| |
|
2.9, Адепт (?), 05:49, 18/09/2015 [^] [^^] [^^^] [ответить]
| +2 +/– |
Rustomasutra это вторая часть, сначала нужен Rustonomicon
| |
2.10, Аноним (-), 06:24, 18/09/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
все правильно, rust с unsafe - это оно и есть, колдунство и некромансия))
| |
2.11, Аноним (-), 06:35, 18/09/2015 [^] [^^] [^^^] [ответить]
| +5 +/– |
руководство распечатывается, скручивается в трубочку и начинается rustomania
| |
|
|
2.14, Аноним (-), 09:18, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
А как же glutin - переписанный GLFW, а также glium - безопасная обёртка над OpenGL
| |
|
3.20, Аноним (-), 10:14, 18/09/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Список приложений
> http://www.piston.rs
> game engine
Вы не знаете что такое приложение? Хоть словарь купите, что ли.
> https://crates.io/
> более 3 тысяч приложений и пакетов за несколько месяцев,
Пакетов не приложений. Самые популярные пакеты на этом сайле
libc
winapi
rand - в 2015 в Rust нет инструментов для генерации случайных чисел в стандартной библиотеке
gcc
time см rand
winapi-build
и тп.
Я выше привес список ПРИЛОЖЕНИЙ взятый из kud1ing/awesome-rust из раздела ПРИЛОЖЕНИЯ.
| |
|
4.48, Аноним (-), 15:56, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
>в 2015 в Rust нет инструментов для генерации случайных чисел в стандартной библиотеке
это намеренное решение - сделать стандартную библиотеку как можно более легковесной и вынести все что можно в отдельные крейты под управлением менеджера пакетов (т.е. Cargo). В C++ такого менеджера нет, и поэтому приходится пихать все подряд в уже разросшийся до неприличных размеров libstdc++
| |
|
|
|
1.15, Аноним (-), 09:49, 18/09/2015 [ответить] [﹢﹢﹢] [ · · · ] | –4 +/– | Я посмотрел на образцы кода и у меня вытекли глаза В 2015 году язык программиро... большой текст свёрнут, показать | |
|
2.18, Аноним (-), 10:06, 18/09/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
>
> <c++ 2003>
> int foo [] = { 16, 2, 77, 40, 12071 };
let foo: Vec<u32> = vec![16, 2, 77, 40, 12071];
Уже есть "стандартный" готовый макрос, подключать и вводить дополнительно в код ничего не надо.
И кстати есть Плюсовые конструкции которые в РУСТ выглядят лучше и гораздо удобнее.
| |
|
3.25, Аноним (-), 10:24, 18/09/2015 [^] [^^] [^^^] [ответить]
| –3 +/– |
А я вот вижу в макросе Vec::new(). То есть для пользовательского типа макрос не сработает и потребуется писать его заново.
А ля
let myFoo: Myvec<u32> = myvec![]
Причем, костылесипедирование это официально рекомендованный метод написания кода.
| |
|
4.49, Аноним (-), 16:05, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
>А я вот вижу в макросе Vec::new(). То есть для пользовательского типа макрос не сработает и потребуется писать его заново
эксперты opennet, как обычно, блещут знанием обсуждаемого предмета. Идите курите вывод типов в rust
| |
|
|
2.19, Аноним (-), 10:11, 18/09/2015 [^] [^^] [^^^] [ответить]
| +4 +/– |
Вот так точнее уж сравнивать
C++
int foo [] = { 16, 2, 77, 40, 12071 };
RUST
let foo = vec![16, 2, 77, 40, 12071];
| |
|
3.22, Аноним (-), 10:18, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
> vec!
Это! макрос! который! приведен! выше! Любой! пользовательский! тип! потребует! написания! уевой! тучи! таких! макросов!
| |
|
4.24, Aleks Revo (ok), 10:24, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
>> vec!
> Это! макрос! который! приведен! выше! Любой! пользовательский! тип! потребует! написания!
> уевой! тучи! таких! макросов!
Нахрена любому пользовательскому типу туева хуча макросов?
| |
|
5.26, Аноним (-), 10:26, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
> Нахрена любому пользовательскому типу туева хуча макросов?
Причем тут туева хуча?
Это макрос инициализации. Пользовательскому типу не нужна инициализация?
| |
|
6.28, Aleks Revo (ok), 10:38, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
>> Нахрена любому пользовательскому типу туева хуча макросов?
> Причем тут туева хуча?
> Это макрос инициализации. Пользовательскому типу не нужна инициализация?
Смотря чем, смотря какой тип. Кортежи, структуры, енумы - успешно инициализируются прямо в коде. Пользовательские типы обычно состоят именно из них.
Вектор - динамическая структура.
В конце концов обычно данные хранятся не в коде программы, а на внешних носителях.
| |
6.57, Aleks Revo (ok), 07:28, 21/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
>> Нахрена любому пользовательскому типу туева хуча макросов?
> Причем тут туева хуча?
> Это макрос инициализации. Пользовательскому типу не нужна инициализация?
Вот смотри, неосиливший:
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()
};
| |
|
|
|
|
2.23, Aleks Revo (ok), 10:23, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
C++ - в 2003 году исполнилось 20 лет.
Rust - в 2015 году - первый стабильный релиз в котором зафиксировали синтаксис.
Кстати, а в чём проблема - компилятор сам понимает {1, 2, 3} или структуру формирует препроцессор vec![1, 2, 3]? Вы от одной мысли про макросы начинаете генерировать говнокод? ))
| |
|
3.27, Аноним (-), 10:30, 18/09/2015 [^] [^^] [^^^] [ответить]
| –2 +/– |
> C++ - в 2003 году исполнилось 20 лет.
Эта возможность появилась в 2003(официально). Но у мозилы терминальный приступ NIH.
> Rust - в 2015 году - первый стабильный релиз
Надеюсь и последний.
> Кстати, а в чём проблема - компилятор сам понимает {1, 2, 3}
> или структуру формирует препроцессор vec![1, 2, 3]?
Слава богу создатели Rust нагенерировали овнокода за нас и назвали стандартной библиотекой.
| |
|
4.29, Aleks Revo (ok), 10:42, 18/09/2015 [^] [^^] [^^^] [ответить]
| +2 +/– |
>> C++ - в 2003 году исполнилось 20 лет.
> Эта возможность появилась в 2003(официально). Но у мозилы терминальный приступ NIH.
То есть, спустя 20 лет после появления самого языка. 20 лет жили не тужили.
И Мозилла как-то больше десяти лет юзала, пока вконец костыли C++ не осточертели и не подвернулась команда разрабатывающая язык с требуемыми фичами.
>> Rust - в 2015 году - первый стабильный релиз
> Надеюсь и последний.
>> Кстати, а в чём проблема - компилятор сам понимает {1, 2, 3}
>> или структуру формирует препроцессор vec![1, 2, 3]?
> Слава богу создатели Rust нагенерировали овнокода за нас и назвали стандартной библиотекой.
Слава богу, всем наплевать на подобные мнения и пожелания. Как говорится, не хочешь - не разрабатывай ))
| |
|
5.31, Аноним (-), 11:01, 18/09/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
>И Мозилла как-то больше десяти лет юзала
и еще 40 будет "юзать". Servo даже не близок к использованию.
>команда разрабатывающая язык с требуемыми фичами.
Игнорирую все наработки в дизайне языков программирования и прикладной опыт за эти 20 лет.
А потом они удивляются непопулярности их NIH творения.
| |
|
6.43, Aleks Revo (ok), 14:40, 18/09/2015 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Servo даже не близок к использованию
Кто-то его обещал прям сейчас на тарелочке с голубой каёмочкой™?
> Игнорирую все наработки в дизайне языков программирования и прикладной опыт за эти 20 лет.
> все
> ВСЕ
Вот ты, например, ухитряешься игнорировать элементарную логику и ничего - пальцы веером ))
Это инициализация вектора заложенная в синтаксис языка - "все мировые наработки и прикладной опыт"?
Должен разочаровать, твой опыт стремится к плинтусу. Снизу.
| |
|
|
|
|
2.30, Аноним (-), 10:49, 18/09/2015 [^] [^^] [^^^] [ответить]
| +5 +/– |
> 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];
| |
|
|
4.35, Аноним (-), 11:43, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
C++11?
Вообще-то, как минимум (мы же не необразованные обезьяны использующие "use namespace std;", да?):
std::vector<std::string> vs {"alpha", "beta", "gamma"};
Без макросов можно еще (таки да, длиннее и не так эффективно - хотя фиг знает какие там оптимизации компилятор сделает...):
let vs: &mut Vec<_> = &mut (["alpha", "beta", "gamma"]).iter().cloned().collect();
| |
|
5.36, Аноним (-), 12:11, 18/09/2015 [^] [^^] [^^^] [ответить]
| +2 +/– |
>Вообще-то, как минимум (мы же не необразованные обезьяны использующие "use namespace std;", да?):
using std::vector;
>let vs: &mut Vec<_> = &mut (["alpha", "beta", "gamma"]).iter().cloned().collect();
Без комментариев.
| |
|
|
|
2.41, Аноним (-), 14:24, 18/09/2015 [^] [^^] [^^^] [ответить]
| +4 +/– |
<c++ 2003>
int foo [] = { 16, 2, 77, 40, 12071 };
<Rust 2015>
let foo = [16, 2, 77, 40, 12071];
| |
|
1.37, foror (ok), 12:18, 18/09/2015 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Когда уже наследование запилят для нормальной реализации DOM, GUI, RPG и прочих задач из классического ООП?
| |
1.39, burjui (ok), 13:25, 18/09/2015 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Это хорошо, что они развивают язык, но не рановато ли они его зарелизили? Решил как-то изучить 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, чтобы не портить впечатление.
| |
|
2.42, Аноним (-), 14:34, 18/09/2015 [^] [^^] [^^^] [ответить]
| –4 +/– |
Погромисты на низкоуровневых ЯП любят испытывать боль. В русте ты получаешь всё те же ощущения, но зато у тебя появляется надежда: если мучения твои окончатся, ты получишь гарантированно рабочий код без течек и т.п. Можешь утешать себя этим.
| |
|
3.45, burjui (ok), 15:10, 18/09/2015 [^] [^^] [^^^] [ответить]
| +2 +/– |
Анус запеканус? На Rust в целом гораздо приятнее писать, чем на том же C, просто компилятор пока туповат. Когда починят и смажут, ощущения будут ещё лучше. Не вижу смысла так кипеть, если никто тебя не заставляет писать на Rust здесь и сейчас. А пока чинят, у тебя есть время отдышаться, успокоиться и нанести мазь на припекаемое место.
| |
|
4.52, Вареник (?), 21:12, 18/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
>> Анус запеканус
>> туповат
>> Когда починят и смажут, ощущения будут ещё лучше.
>> отдышаться, успокоиться и нанести мазь на припекаемое место.
- Вот она, целевая аудитория Rust...
| |
|
5.54, burjui (ok), 15:57, 19/09/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
Есть форма, а есть содержание. Видимо, видеть второе за первым (я сейчас не про еду) дано не всем.
| |
|
|
3.46, Аноним (-), 15:31, 18/09/2015 [^] [^^] [^^^] [ответить]
| +1 +/– |
>ты получишь гарантированно рабочий код
Без утечек памяти и сегфолтов, багов и логических ошибок, от запуска этого кода у процессора отрастет новое ядро, а на hdd пропадут bad-ы.
Ну и понятно дело, волосы станут живыми и шелковистыми.
| |
|
4.55, Aleks Revo (ok), 07:16, 21/09/2015 [^] [^^] [^^^] [ответить]
| +/– |
Кернел 4.2, amdgpu + radeonsi - null pointer dereference на старте системы и по совместительству вместо старта системы.
Упс, откуда это? Писали, тестировали, дебажили, наконец релизили, а оно...
В неурочный час и все ядра могут отваливаться и волосы на груди седеть ;)
| |
|
|
|
|