Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.04.15 04:40
Оценка: 145 (15) +1
Разработчики Rust прошли долгий путь и 15 мая ожидается выпуск первой версии языка с вечеринкой по случаю новорожденного. Лично я долго ждал этого события, хотя и вызывает оно довольно смешанные чувства. Вроде что-то и родилось, но хочу ли я это что-то использовать и стоит ли оно того? Вот в чем вопрос. Дело в том, что в процессе развития Rust претерпел довольно сильные изменения и теперь это далеко не тот же язык, о котором я писал в 2013
Автор(ы): Александр Ставонин
Дата: 20.06.2013
Краткое описание ключевых возможностей нового языка программирования Rust. Основной акцент делается на особенностях Rust, которых не хватает многим системным и сетевым разработчикам в других языках программирования.
.

Положительное


Как бы много изменений не претерпел язык, ряд основных заложенный в него концепций так никуда и не делся. Как и любой C/C++ разработчик я постоянно сталкивался с проблемами в области управления памятью и первое что меня привлекло в Rust несколько лет назад была его идея разделения памяти по пулам с контролем за использованием и передачей объектов на этапе компиляции. К счастью данный механизм из Rust никуда не делся, а только несколько заматерел и обрел форму.

Так же нельзя не отметить используемую модель CSP для взаимодействия между Задачами Rust. Решение получилось практичное и удобное в использовании, само собой куда более низкоуровневое если сравнивать с AKKA из Scala, но для языка системного уровня самое оно.

Говорить про синтаксис и синтаксический сахар я, наверное, не буду. Любой новый современный язык программирования включает в себя множество вещей упрощающих жизнь разработчикам, и Rust не стал исключением в данном вопросе.

Отрицательное


Но не обошлось и без ложки дегтя. Дело в том, что разработчики не осилили зеленые потоки и асинхронную сеть. С учетом того, что язык часто преподносился как Erlang, которые еще и компилируетсая, то выглядит это очень грустно. Официальная позиция по зеленым потокам – используемый для их построения libuv слишком медленный из за большого количества преаллокаций памяти. Хотя больше это похоже на то, что релиз выпускать надо (ну не дело же язык 5 лет пилить) и не критические фичи идут под нож.

Кроме того, у меня серьезные сомнения относительно наличия в языке ключевого слова unsafe и шареной памяти как в RO, так и в RW вариантах. С одной стороны причины их появления понятны и логичны “мы строим язык который не уступит C++ в скорости”. С другой стороны, если ты оставляешь лазейки, то вся красивая и логичная модель, защищающая от ошибок идет под откос. Есть возможность обойти и сделать по старинке? Так и сделаем именно этим способом! Зачем разбираться с чем-то новым? Именно так выглядят изрядное количество вопросов посвященных Rust.

И последний пункт – усложнение языка. По моим ощущениям он все больше и больше начинает напоминать C++ с точки зрения синтаксиса. Множество шаблонов и интерфейсов, разлапистые описания типов (особенно при создании объектов не на стеке), множество макросов. Но C++ уже 30 лет как живет и зачем нужен еще один?

Итого


Несмотря на то, что, казалось бы, язык готов к промышленному использованию у меня есть некоторые сомнения в его целесообразности. В своем текущем виде язык не имеет каких-то сколь нибудь серьезных преимуществ перед C++14. Само собой язык будет развиваться и дальше, но с учетом того, что C++17 не за горами, сказать что данная ситуация изменится в будущем тоже не получается.

И, как это не печально, но для меня размышления на тему выбора языка программирования для нового проекта так и не потеряли своей актуальности. Ничего проще и более подходящего для больших и критичных к производительности проектов кроме C++ как не было, так и не ожидается в ближайшем времени.
rust
Re: Rust 1.0, 15 мая этого года :)
От: vsb Казахстан  
Дата: 29.04.15 05:09
Оценка: +1
Для меня зелёные потоки были большим красным минусом. Во-первых они мне в принципе не нравятся. Кривая абстракция. Во-вторых сложный рантайм очень сильно усложняет взаимодействие. Это как использовать Java-метод из C++. Теоретически можно, но практически проще переписать. Сейчас Rust-овская функция это обычная функция, которую можно просто дёрнуть откуда угодно, не заботясь о рантайме, потоках и тд.

Для быстрого асинхронного IO всегда есть родные средства ОС и есть неплохая обёртка mio над ними.

Про усложнение языка я не согласен. Я язык изучал совсем немного (денёк почитал официальную книжку), но при этом сколько ни лазил в стандартную библиотеку — всегда всё понимал. В C++ и Scala, например, у меня это не всегда получалось.
Re[2]: Rust 1.0, 15 мая этого года :)
От: Cyberax Марс  
Дата: 29.04.15 05:23
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Про усложнение языка я не согласен. Я язык изучал совсем немного (денёк почитал официальную книжку), но при этом сколько ни лазил в стандартную библиотеку — всегда всё понимал. В C++ и Scala, например, у меня это не всегда получалось.

Вопрос на засыпку — что делает вот этот макрос: https://github.com/gfx-rs/gfx_macros/blob/master/src/shader_param.rs ?

Со сложностью, в принципе, не всё так плохо. Но вот уход в процедурные макросы ("compiler extensions") и прочие края — это уже верная смерть для языка. А ещё ведь хотят добавить и HKT — вообще полная Скала получится.
Sapienti sat!
Re[3]: Rust 1.0, 15 мая этого года :)
От: aik Австралия  
Дата: 29.04.15 05:28
Оценка: +1 :)
Здравствуйте, Cyberax, Вы писали:

C>Вопрос на засыпку — что делает вот этот макрос: https://github.com/gfx-rs/gfx_macros/blob/master/src/shader_param.rs ?


походу этот шмат кода обфусцирован
Re[3]: Rust 1.0, 15 мая этого года :)
От: vsb Казахстан  
Дата: 29.04.15 05:39
Оценка:
Здравствуйте, Cyberax, Вы писали:

vsb>>Про усложнение языка я не согласен. Я язык изучал совсем немного (денёк почитал официальную книжку), но при этом сколько ни лазил в стандартную библиотеку — всегда всё понимал. В C++ и Scala, например, у меня это не всегда получалось.

C>Вопрос на засыпку — что делает вот этот макрос: https://github.com/gfx-rs/gfx_macros/blob/master/src/shader_param.rs ?

Не скажу, плагины к компилятору пока не доводилось писать.

А где эти штуки реализованы лучше? Как на C++ такое реализовать?

Ну и в конце концов это библиотека. Хотя и лучше, чтобы она была читаема всем, но по сути достаточно, чтобы авторы и контрибьюторы могли её пониамть, а для пользователей важно, чтобы использовать было просто.

C>Со сложностью, в принципе, не всё так плохо. Но вот уход в процедурные макросы ("compiler extensions") и прочие края — это уже верная смерть для языка.


Не так часто они встречаются по-моему. Простые макросы уж точно не сложнее, чем в C. Сложные — ну не надо их писать. Метапрограммирование опасная штука, но это не значит, что его надо намеренно усложнять.

Тут ещё нормальной IDE не хватает. Взять и развернуть макрос и всё станет понятным, имхо.

C>А ещё ведь хотят добавить и HKT — вообще полная Скала получится.


В этом я нифига не понимаю, но вроде штука полезная же. Хотя я бы предпочёл, чтобы они сконцентрировались на качестве компилятора после релиза, а фичи пусть потихоньку вызревают.
Отредактировано 29.04.2015 5:41 vsb . Предыдущая версия .
Re[4]: Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.04.15 06:18
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Не так часто они встречаются по-моему. Простые макросы уж точно не сложнее, чем в C. Сложные — ну не надо их писать. Метапрограммирование опасная штука, но это не значит, что его надо намеренно усложнять.


Я подчеркнул главное. Сложные – ну не надо писать. unsafe – ну не надо использовать. Шаренная память – ну используйте отправку сообщений вместо. При этом доподлинно известно, что если что-то можно сделать через жопу, то очень многие разработчики выберут именно этот путь. А потом уже будет "теория разбитых окон" в действии. На C++ годами, даже скорее десятилетиями, вырабатывали правильный подход к разработке. А в случае с новым языком, будут сплошной поход по граблям, благо грабли разложены и готовы к работе
Re[5]: Rust 1.0, 15 мая этого года :)
От: jazzer Россия Skype: enerjazzer
Дата: 29.04.15 07:04
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Я подчеркнул главное. Сложные – ну не надо писать. unsafe – ну не надо использовать. Шаренная память – ну используйте отправку сообщений вместо.


А если я хочу именно шаренную память — мне Rust поможет?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: Rust 1.0, 15 мая этого года :)
От: Cyberax Марс  
Дата: 29.04.15 07:11
Оценка:
Здравствуйте, jazzer, Вы писали:

KP>>Я подчеркнул главное. Сложные – ну не надо писать. unsafe – ну не надо использовать. Шаренная память – ну используйте отправку сообщений вместо.

J>А если я хочу именно шаренную память — мне Rust поможет?
Вполне, есть примитивы для разного вида блокировок. Внутри они как раз через unsafe и реализованы, но для прикладного кода это не важно, так как интерфейс у них гарантирует безопасное использование. По крайней мере, для стандартной библиотеки.
Sapienti sat!
Re[6]: Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.04.15 07:14
Оценка:
Здравствуйте, jazzer, Вы писали:

J>А если я хочу именно шаренную память — мне Rust поможет?


Я не совсем понимаю, какой именно помощи ты ожидаешь. В целом, язык хороший, но не сказать что предложит на много больше безопасности в разработке, чем дает тебе C++ в текущем его состоянии. Интересные концепции в языке сохранились, просто модель защиты поехала из за шареной памяти и unsafe.

В итоге, трата времени в его изучение мне не кажется выгодным вложением как минимум на данный момент. Но, опять таки, все зависит от задач.
Re[3]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 29.04.15 08:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Со сложностью, в принципе, не всё так плохо. Но вот уход в процедурные макросы ("compiler extensions") и прочие края — это уже верная смерть для языка.

Почему смерть? Это ведь не хуже того, что в С++ на шаблонах пишут. Да и никто не заставляет макросы на каждый чих писать.

Впрочем, бегло читать растовые макросы я так и не научился, хотя и делал несколько подходов.
Re: Rust 1.0, 15 мая этого года :)
От: VTT http://vtt.to
Дата: 29.04.15 08:20
Оценка: :)
Сайт http://www.rust-lang.org/ встречает нас длинным списком преимуществ данного языка следующего содержания:

Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.

Ну а если серьезно, то Rust мне напоминает этакого франкенштейна с крайне туманными перспективами. Сдается мне, что Rust окажется этаким новым D. Я не вижу никаких основополагающих принципов, способных сделать из кучки разноплановых фич (по большей части уже в лучшем виде реализованных в других языках) под новым соусом синтаксисом нечто большее. Как C/C++ разработчик, я могу сказать, что наличие в языке встроенных умных указателей меня вовсе не прельщает. Ведь память — это далеко не единственный ресурс, а умные указатели — не единственный способ контроля за памятью. В Rust к тому же все равно придется иметь дело с зоопарком С/С++ библиотек и системных API, о порядке владения сущностями из которых компилятор не будет иметь ни малейшего понятия, а никаких средств для описания такого рода вещей язык не предусматривает.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 29.04.15 08:26
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Кроме того, у меня серьезные сомнения относительно наличия в языке ключевого слова unsafe и шареной памяти как в RO, так и в RW вариантах.

Ну шареная память — ладно, но unsafe чем не угодил? Имхо, совсем без этого язык был бы никому не нужен. Ведь даже FFI через unsafe делается и это выглядит вполне логично.

Меня больше другое напрягает. Недавно обнаружили, что в безопасном коде можно потерять вызов деструктора — задействовав Rc и Cell. Неприятно, но мне больше не нравится как они решили это "исправить": функцию forget, которая как раз заставляет не вызывать деструктор и которая была unsafe, хотят объявить безопасной.
Re[2]: Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.04.15 08:38
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Ну шареная память — ладно, но unsafe чем не угодил? Имхо, совсем без этого язык был бы никому не нужен. Ведь даже FFI через unsafe делается и это выглядит вполне логично.


Тем же, чем и шареная память – фактом своего существования. Это крайне не безопасная конструкция, которая дается в использование любому желающему. И само собой найдется куча желающий воспользоваться этой конструкцией только для того, что бы написать как привыкли. Благодаря наличию шареной памяти и unsafe Rust мало чем отличается от того-же C++. Rust предоставляет кучу дополнительных возможностей выстрелить себе в ногу в самом неожиданном месте причем проигрывая по скорости С++ в 2-3 раза и заставляя писать столько же кода в общем случае
В итоге выходит, что для использования в критических к скорости исполнения задачах язык еще медленный, а для написания универсального более-менее быстрого кода такой же как C++, только с отличным синтаксисом, который еще учить надо.
Отредактировано 29.04.2015 8:39 kaa.python . Предыдущая версия .
Re[2]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 29.04.15 08:39
Оценка:
Здравствуйте, VTT, Вы писали:

VTT>по большей части уже в лучшем виде реализованных в других языках

Вот только многие из этих языков подходят как замена С++?

VTT>что наличие в языке встроенных умных указателей меня вовсе не прельщает.

Что значит встроенных? Они не больше "встроены", чем в С++ — так же находятся в стандартной библиотеке.

VTT>Ну а если серьезно, то Rust мне напоминает этакого франкенштейна с крайне туманными перспективами.

В С++ многое из этого уже притащили или планируют плюс ещё приходится старое для совместимости тащить, так что "франкенштейн" — это как раз не раст. Новые языки могут позволить себе более аккуратно фичи реализовать, с оглядкой на прошлый опыт. Разумеется, это идёт в комплекте с отсутствием библиотек, готовых инструментов и т.д.

Впрочем, с инструментами у раста не всё так плохо. Скажем, для С++ так и нет и вряд ли будет общая система сборки или "менеджер пакетов". В расте оно идёт из коробки. В С++ такие вещи исторически идут отдельно и их много разных.

Лично мне раст нравится пока что: неплохой синтаксис и удобные возможности вроде паттерн-матчинга. Ну и главная его фича, имхо, borrow checker. Впрочем, активно язык не применял.
Re[3]: Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.04.15 08:41
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Лично мне раст нравится пока что: неплохой синтаксис и удобные возможности вроде паттерн-матчинга. Ну и главная его фича, имхо, borrow checker. Впрочем, активно язык не применял.


Главная фича, из тех "что не выкинули". Но благодаря всемогущему unsafe её крайне легко похерить.
Re[3]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 29.04.15 08:50
Оценка:
Здравствуйте, kaa.python, Вы писали:


KP>Тем же, чем и шареная память – фактом своего существования. Это крайне не безопасная конструкция, которая дается в использование любому желающему. И само собой найдется куча желающий воспользоваться этой конструкцией только для того, что бы написать как привыкли.

А разве есть вообще практические языки без такой возможности? Всегда есть или аналог ансейфа или возможность сишные функции дёргать, что приводит к тому же результату. Но почему-то я не видел жалоб на шарп или джаву, что они ничего не гарантируют раз там можно позвать С код и расстрелять память.

Насчёт "кучи желающих" — мне кажется, что это какая-то страшилка. Говнокод, в том числе опасный, можно писать на любом языке. Ансейв, по моему, как раз удобен тем, что его легче заметить. В том числе, на ревью.

Можно было бы посмотреть проекты хотя бы на гитхабе, но лень, честно говорят. Хотя и интересно насколько такие опасения оправданы. В любом случае, меня больше заботит практическая сторона: с ансейфом можно писать безопасные абстракции, которые язык не предоставляет. Без него оставалось бы только ждать пока это реализуют разработчики языка.


KP>Rust предоставляет кучу дополнительных возможностей выстрелить себе в ногу в самом неожиданном месте

Это с ансейфом или без? Хотелось бы примеры посмотреть. Мне как раз показалось, что без ансейфа таких мест заметно меньше, чем в С++.
Re[4]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 29.04.15 08:54
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Главная фича, из тех "что не выкинули". Но благодаря всемогущему unsafe её крайне легко похерить.

Я тоже давно следил за языком и периодически изменения изначально расстраивали. Но после чтения их аргументации, как правило, соглашался с доводами. Скажем, по зелёным потокам особо не грущу. По моему, язык всё-таки чаще преподносится как "безопасный С/С++" — с этой точки зрения всё правильно сделали.

А похерить можно что угодно и без всякого unsafe.
Re[3]: Rust 1.0, 15 мая этого года :)
От: Cyberax Марс  
Дата: 29.04.15 09:19
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Rust предоставляет кучу дополнительных возможностей выстрелить себе в ногу в самом неожиданном месте причем проигрывая по скорости С++ в 2-3 раза и заставляя писать столько же кода в общем случае

Эээ... А почему?

Rust должен уметь работать со скоростью примерно равной или превосходящей С++. Это не считая нескольких проблемных вещей типа zeroing drop, которые в следующей версии удалят.
Sapienti sat!
Re[4]: Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.04.15 09:27
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Эээ... А почему?

Да а кто его знает?
Re[5]: Rust 1.0, 15 мая этого года :)
От: Cyberax Марс  
Дата: 29.04.15 09:42
Оценка:
Здравствуйте, kaa.python, Вы писали:

C>>Эээ... А почему?

KP>Да а кто его знает?
Заглянул мельком — в паре мест автор пытался быть слишком умным и сделал всё хуже. Например, в http://benchmarksgame.alioth.debian.org/u64q/program.php?test=nbody&lang=rust&id=1 в shift_mut_ref получаем совершенно ненужную аллокацию.
Sapienti sat!
Re[3]: Rust 1.0, 15 мая этого года :)
От: VTT http://vtt.to
Дата: 29.04.15 10:16
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Что значит встроенных? Они не больше "встроены", чем в С++ — так же находятся в стандартной библиотеке.

На сколько я представляю, в Rust реализована дополнительная семантика при работе с (умными) указателями, позволяющая определять многие ошибки по их использованию еще на этапе компиляции. Я не думаю, что это могло бы работать, если бы компилятор просто использовал умные указатели подобно обычным классам из каких-то библиотек. А если они не более встроены, чем в C++, то весь смысл теряется, лучше бы разработчики потратили время на добавление более строгой семантики по работе с указателями и borrowing в C++.

DE>так что "франкенштейн" — это как раз не раст

Никто не спорит, что C++ — это всем франкенштейнам франкенштейн. Однако за 30 лет он доказал свою силу и жизнеспособность. А во что превратится Rust — это еще вопрос. Особенно если учесть, что из других языков он заимствует не только фичи, но и их проблемы. Любимые всеми Undefined Behaviour и dangling pointers тут как тут.

DE>Скажем, для С++ так и нет и вряд ли будет общая система сборки или "менеджер пакетов". В расте оно идёт из коробки.

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

DE>Лично мне раст нравится пока что: неплохой синтаксис

Вот как по мне, так синтаксис в нем не менее безобразен, чем в С++, некоторые конструкции вообще жесть:

static LANGUAGE: &'static str = "Rust";

Единственно отсутствие инклюдов и лаконичное let объявление переменных неизменяемыми по-умолчанию импонирует. Ну и некоторые другие мелочи.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re[4]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 29.04.15 10:48
Оценка:
Здравствуйте, VTT, Вы писали:

VTT>На сколько я представляю, в Rust реализована дополнительная семантика при работе с (умными) указателями

Но это не так. В язык "встроены" только лайфтаймы. А на их основе уже всё работает. Так что никто не мешает писать свои смарт-поинтеры — работать будут аналогично.

VTT>Любимые всеми Undefined Behaviour и dangling pointers тут как тут.

И разумеется будут примеры? Потому что в безопасном коде нам как раз обещают отсутствие этих вещей.

VTT>Общая система сборки, менеджеры пакетов — это хорошо, но если язык наберет популярность, то наверняка найдется масса желающих ликвидировать фатальный недостаток.

Дык, в С++ этот недостаток "ликвидирован", в итоге у нас есть autotools, CMake, SCons, Qbs и много других. Для библиотек так толком ничего общего и не придумали. Прекрасно понимаю, что и без этого жить можно, но обучение оно облегчает, да и потом удобно.

VTT>Вот как по мне, так синтаксис в нем не менее безобразен, чем в С++, некоторые конструкции вообще жесть:

Долго искал пример? Статики часто в коде видеть не придётся. Вроде, есть предложение упростить синтаксис для них, а именно добавить вывод типов. Тогда будет просто:
static LANGUAGE = "Rust";


Ещё то, что (практически) всё является выражением тоже весьма удобно.

Что действительно "страшно" выглядит — так это макросы.
Re[5]: Rust 1.0, 15 мая этого года :)
От: VTT http://vtt.to
Дата: 29.04.15 11:35
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Потому что в безопасном коде нам как раз обещают отсутствие этих вещей.

Скорее в Rust безопасным называется тот код, в котором эти вещи удается предотвратить.

DE>Долго искал пример?

Этот пример из официального руководства.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re[6]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 29.04.15 11:43
Оценка:
Здравствуйте, VTT, Вы писали:

VTT>Скорее в Rust безопасным называется тот код, в котором эти вещи удается предотвратить.

Дык, там написано "Type checking provides the guarantee that these issues are never caused by safe code". То есть как раз то, что я и написал — в безопасном (без использования unsafe блоков) не будет никакого УБ и "висячих ссылок".

VTT>Этот пример из официального руководства.

В курсе, но это не та вещь, которой будешь часто пользоваться. У меня тоже пару придирок есть, например, в дженериках с where на тип приходится ссылаться три раза. Но на мой взгляд, всё это мелочи.
Re[3]: Rust 1.0, 15 мая этого года :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.04.15 16:25
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Вопрос на засыпку — что делает вот этот макрос: https://github.com/gfx-rs/gfx_macros/blob/master/src/shader_param.rs ?


Запутанно. Но это, скорее, из-за недоработанных технологий. Они там АСТ вручную разбирают. Уровень плинтуса.

C>Со сложностью, в принципе, не всё так плохо. Но вот уход в процедурные макросы ("compiler extensions") и прочие края — это уже верная смерть для языка.


Несогласен. Пользователей языка никто не заставляет ими пользоваться. Правда только, то что код макросов запутанный.

C>А ещё ведь хотят добавить и HKT — вообще полная Скала получится.


Что такое HKT?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Rust 1.0, 15 мая этого года :)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 30.04.15 12:45
Оценка:
Здравствуйте, VladD2, Вы писали:

C>>А ещё ведь хотят добавить и HKT — вообще полная Скала получится.


VD>Что такое HKT?


Higher-Kinded Types. Когда параметр шаблона/генерика тоже шаблон/генерик (неинстанцированный).
Re[2]: Rust 1.0, 15 мая этого года :)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 30.04.15 12:51
Оценка:
Здравствуйте, VTT, Вы писали:

VTT> Я не вижу никаких основополагающих принципов, способных сделать из кучки разноплановых фич (по большей части уже в лучшем виде реализованных в других языках) под новым соусом синтаксисом нечто большее. Как C/C++ разработчик, я могу сказать, что наличие в языке встроенных умных указателей меня вовсе не прельщает. Ведь память — это далеко не единственный ресурс, а умные указатели — не единственный способ контроля за памятью. В Rust к тому же все равно придется иметь дело с зоопарком С/С++ библиотек и системных API, о порядке владения сущностями из которых компилятор не будет иметь ни малейшего понятия, а никаких средств для описания такого рода вещей язык не предусматривает.


Напрасно ты так. Все же встроенный borrow checker и завязанное на него все-все — это очень большой шаг вперед (или вбок) от других языков. Он и для ресурсов, и для канкарренси пригождается, обеспечивая намного больше статических гарантий, чем умные указатели. Читать-вдохновляться тут:
http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html

А умные указатели там наоборот источник проблем, могут приводить к ликам, как и в С++.
Re[5]: Rust 1.0, 15 мая этого года :)
От: mrTwister Россия  
Дата: 30.04.15 19:07
Оценка: +3
Здравствуйте, kaa.python, Вы писали:

KP>Я подчеркнул главное. Сложные – ну не надо писать. unsafe – ну не надо использовать. Шаренная память – ну используйте отправку сообщений вместо. При этом доподлинно известно, что если что-то можно сделать через жопу, то очень многие разработчики выберут именно этот путь. А потом уже будет "теория разбитых окон" в действии. На C++ годами, даже скорее десятилетиями, вырабатывали правильный подход к разработке. А в случае с новым языком, будут сплошной поход по граблям, благо грабли разложены и готовы к работе


Не факт. В C#, например, unsafe крайне редко используется на практике.
лэт ми спик фром май харт
Re[3]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 01.05.15 11:19
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>А умные указатели там наоборот источник проблем, могут приводить к ликам, как и в С++.

Тут "указатели" с подсчётом ссылок имеются в виду или что?
Потому что в расте несколько другая терминология, чем в С++.
Re[3]: Rust 1.0, 15 мая этого года :)
От: VTT http://vtt.to
Дата: 01.05.15 15:45
Оценка: +1
Здравствуйте, D. Mon, Вы писали:

DM>Все же встроенный borrow checker и завязанное на него все-все — это очень большой шаг вперед (или вбок) от других языков.


Никто не спорит, что borrow checker — интересная и (потенциально) полезная концепция. Однако необходимость регулярно вылезать за рамки safe кода, взаимодействуя с разными системными API и сторонними библиотеками, потенциально может сводить на нет все преимущества от дополнительных статических проверок. Еще мне совсем не понятно, что именно будет происходить на границах safe-unsafe? Вдруг там будет 100500 рантайм проверок — получим тормоза, или наоборот, никаких рантайм проверок — получим еще более сложные в нахождении баги, чем в C++. Язык конечно новый, но примеров и статей по нему явно не хватает для получения полной картины. Причем те, что есть — стремительно устаревают (когда я интересовался им в предыдущий раз синтаксис с указателями был какой-то другой, и шла речь про отдельные кучи для разных потоков или что-то подобное). Ну и сугубо позитивный тон, полное отсутствие контрпримеров или упоминания потенциальных проблем очень настораживает.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re[4]: Rust 1.0, 15 мая этого года :)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 02.05.15 01:29
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DM>>А умные указатели там наоборот источник проблем, могут приводить к ликам, как и в С++.

DE>Тут "указатели" с подсчётом ссылок имеются в виду или что?

Да, именно они. Вот тут длинный пост про утечки с ними:
http://smallcultfollowing.com/babysteps/blog/2015/04/29/on-reference-counting-and-leaks/

GC они выбросили, борьба с циклическими ссылками теперь на совести программиста, а это ненадежно.
Re[4]: Rust 1.0, 15 мая этого года :)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 02.05.15 01:41
Оценка:
Здравствуйте, VTT, Вы писали:

VTT>Никто не спорит, что borrow checker — интересная и (потенциально) полезная концепция. Однако необходимость регулярно вылезать за рамки safe кода, взаимодействуя с разными системными API и сторонними библиотеками, потенциально может сводить на нет все преимущества от дополнительных статических проверок.


Да, этот вопрос с системными API и сторонними библиотеками — вечный источник проблем, разрушающий стеклянные замки сборщиков мусора, умных указателей и пр. Я только в одном месте видел достойное решение — описание дополнительной семантики системных и библиотечных вызовов на языке доказательств в ATS.

VTT>Еще мне совсем не понятно, что именно будет происходить на границах safe-unsafe? Вдруг там будет 100500 рантайм проверок — получим тормоза, или наоборот, никаких рантайм проверок — получим еще более сложные в нахождении баги, чем в C++.


Как я понял, в Расте принято делать для этого маленькие кусочки unsafe, безопасность поведения которых оценивать на глазок, а снаружи они имеют safe интерфейс, и из основной программы уже используются безопасно. При условии, конечно, что внутри кусочка корректность была оценена верно. Лишних рантайм проверок не делают, и на 100% от багов не защищены.
Re[4]: Rust 1.0, 15 мая этого года :)
От: Cyberax Марс  
Дата: 02.05.15 02:13
Оценка:
Здравствуйте, VladD2, Вы писали:

C>>Вопрос на засыпку — что делает вот этот макрос: https://github.com/gfx-rs/gfx_macros/blob/master/src/shader_param.rs ?

VD>Запутанно. Но это, скорее, из-за недоработанных технологий. Они там АСТ вручную разбирают. Уровень плинтуса.
У них есть и макросы на квазицитировании, но они специально обрезанные.

C>>Со сложностью, в принципе, не всё так плохо. Но вот уход в процедурные макросы ("compiler extensions") и прочие края — это уже верная смерть для языка.

VD>Несогласен. Пользователей языка никто не заставляет ими пользоваться. Правда только, то что код макросов запутанный.
Проблема в том, что потом неминуемо придётся отлаживать код, который написали Кумары Брахмабухалсамы после прочтения книги "Современное программирование на Rust++".

C>>А ещё ведь хотят добавить и HKT — вообще полная Скала получится.

VD>Что такое HKT?
Возможность делать фабрики _типов_.
Sapienti sat!
Re[5]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 02.05.15 12:02
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Да, именно они. Вот тут длинный пост про утечки с ними:

DM>http://smallcultfollowing.com/babysteps/blog/2015/04/29/on-reference-counting-and-leaks/

DM>GC они выбросили, борьба с циклическими ссылками теперь на совести программиста, а это ненадежно.

В курсе, статью по ссылке читал, она действительно неплоха.
Сказать хотел немного другое: в С++ у нас есть именно смарт-поинтеры в которые можно поместить что-то отличное от указателей, но это не слишком удобно и редко практикуется. В расте же отдельно отдельно тип для размещения в хипе, отдельно тип для подсчёта ссылок.
Re[5]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 02.05.15 12:05
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Проблема в том, что потом неминуемо придётся отлаживать код, который написали Кумары Брахмабухалсамы после прочтения книги "Современное программирование на Rust++".

Я не уверен, что это проблема. Вон в С++ буст пишут, по идее, не индусы, но разбираться там (особенно в некоторых местах) то ещё "удовольствие". Тем не менее, в большинстве случаев, он "просто работает" и в потроха лезть не надо.
И наоборот — "традиционный говнокод", с которым приходилось дело иметь, редко изобиловал "новомодными фичами".
Re[5]: Rust 1.0, 15 мая этого года :)
От: uncommon Ниоткуда  
Дата: 02.05.15 20:00
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

VTT>>Вот как по мне, так синтаксис в нем не менее безобразен, чем в С++, некоторые конструкции вообще жесть:

DE>Долго искал пример? Статики часто в коде видеть не придётся. Вроде, есть предложение упростить синтаксис для них, а именно добавить вывод типов. Тогда будет просто:
DE>
DE>static LANGUAGE = "Rust";
DE>


Напротив, строковые константы встречаются достаточно часто. Вот мне интересно. Вроде уже и релиз через пару недель, а такие базовые фичи только на стадии "есть предложение".
Re[6]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 02.05.15 20:32
Оценка:
Здравствуйте, uncommon, Вы писали:

U>Напротив, строковые константы встречаются достаточно часто. Вот мне интересно. Вроде уже и релиз через пару недель, а такие базовые фичи только на стадии "есть предложение".

Просто строковые константы выглядят вот так:
let language = "Rust";

Ничего ужасного. А статик — это немного другое.

А насчёт релиза — такие вещи можно потом сделать и не поломать совместимость, вполне логично, что решили отложить. Ведь это просто сахар.
Так-то у них даже нет дефолтных аргументов для функций или функций с переменным количеством аргументов. По моему, это более нужные фичи. Но так релиз можно бесконечно откладывать.
Re[6]: Rust 1.0, 15 мая этого года :)
От: Cyberax Марс  
Дата: 02.05.15 23:36
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

C>>Проблема в том, что потом неминуемо придётся отлаживать код, который написали Кумары Брахмабухалсамы после прочтения книги "Современное программирование на Rust++".

DE>Я не уверен, что это проблема. Вон в С++ буст пишут, по идее, не индусы, но разбираться там (особенно в некоторых местах) то ещё "удовольствие". Тем не менее, в большинстве случаев, он "просто работает" и в потроха лезть не надо.
Достаточно часто надо было, из-за чего многие и не использовали Буст.
Sapienti sat!
Re[4]: Rust 1.0, 15 мая этого года :)
От: mrTwister Россия  
Дата: 05.05.15 12:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Запутанно. Но это, скорее, из-за недоработанных технологий. Они там АСТ вручную разбирают. Уровень плинтуса.


А может высокий порог входа отпугнет "индусов" от разработки макросов, так что это плюс
лэт ми спик фром май харт
Re: Rust 1.0, 15 мая этого года :)
От: Aleх  
Дата: 06.05.15 00:13
Оценка:
Здравствуйте, kaa.python, Вы писали:

Интересно, а где можно почитать про систему типов в Rust, а то в документации самые интересные главы References and Borrowing, Lifetimes ещё не написаны.
Re[2]: Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 06.05.15 03:23
Оценка:
Здравствуйте, Aleх, Вы писали:

A>Интересно, а где можно почитать про систему типов в Rust, а то в документации самые интересные главы References and Borrowing, Lifetimes ещё не написаны.


Актуального описания я не видел, тут нужно код смотреть. Но проще всего почитать заметки Niko Matsakis, он вроде как главный архитектор/идейный вдохновитель системы типов в Rust. Например вот эту, эту и вот эту.
Re[2]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 06.05.15 12:08
Оценка:
Здравствуйте, Aleх, Вы писали:

A>Интересно, а где можно почитать про систему типов в Rust, а то в документации самые интересные главы References and Borrowing, Lifetimes ещё не написаны.

Прямо сейчас по ссылке вполне себе есть текст. Или подразумевается, что там мало информации?

Помимо предложенных ссылок, можно посмотреть "бета-версию" книги — там информация вполне актуальная, в новом мануале просто расширили и иначе структурировали. Есть ещё книга "Rust by example" — её пишет комьюнити.

Ну и блог можно посмотреть. Например, статья про многопоточность, но там как раз рассказывается как с этим семантика владения помогает.
Re[3]: Rust 1.0, 15 мая этого года :)
От: Aleх  
Дата: 08.05.15 00:04
Оценка:
Здравствуйте, DarkEld3r, Вы писали:
DE>Прямо сейчас по ссылке вполне себе есть текст. Или подразумевается, что там мало информации?
Когда писался пост, текста не было.
Re: Rust 1.0, 15 мая этого года :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.05.15 19:06
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Но не обошлось и без ложки дегтя. Дело в том, что разработчики не осилили зеленые потоки и асинхронную сеть.


Без зеленых потоков при наличии качественного fork/join фреймворка вполне можно обойтись. А вот отсутствие асинхронного IO по нынешним временам — почти приговор.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 17.05.15 02:24
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Без зеленых потоков при наличии качественного fork/join фреймворка вполне можно обойтись. А вот отсутствие асинхронного IO по нынешним временам — почти приговор.


"Всё что мы не успели стабилизировать до 1.0 ушло под нож". Правда есть mio, который на данный момент UNIX-only, но поддержку Windows обещают, хотя для языка уровня Rust это вообще не критичное требование.
Отредактировано 17.05.2015 2:26 kaa.python . Предыдущая версия .
Re[2]: Rust 1.0, 15 мая этого года :)
От: ELazin http://rsdn.ru/forum/prj/6225353.1
Автор: ELazin
Дата: 26.10.15
Дата: 18.05.15 10:08
Оценка:
AVK>А вот отсутствие асинхронного IO по нынешним временам — почти приговор.
Оно на уровне языка должно быть штоле?
IMO, один из лучших асинхронных библиотечных интерфейсов что я видел на данный момент имеется в libmicrohttpd. Там пользователь должен передавать библиотеке callback, который вызвается при accept-е нового клиента, клиент должен реализовывать конечный автомат и правильно реагировать на вызовы этого callback-а (он может быть вызван много раз для одного и того же клиента, например когда пришли post данные и потом для того, чтобы получить response). Это все выглядит страшно (callback-с десятком параметров, AFAIR), но зато позволяет прозрачно переключаться между синхронным и асинхронным режимами работы сервера. А всякие асинхронные языковые расширения (вроде async в C#) такой роскоши не позволяют, библиотеки вроде boost.asio — тоже, там ты либо используешь callback лапшу и одни ф-ии, либо пишешь синхронный код с другими ф-ями. В общем, все правильно делают чуваки, IMO.
Re[2]: Rust 1.0, 15 мая этого года :)
От: ELazin http://rsdn.ru/forum/prj/6225353.1
Автор: ELazin
Дата: 26.10.15
Дата: 18.05.15 10:12
Оценка:
DE>Ну шареная память — ладно, но unsafe чем не угодил? Имхо, совсем без этого язык был бы никому не нужен. Ведь даже FFI через unsafe делается и это выглядит вполне логично.
AFAIK unsafe неугодил тем, что в расте его нужно вызывать неоправданно часто, для того, чтобы обходить ограничения накладываемые системой типов, например intrusive структуры данных сложно без unsafe сделать на нем, могу ошибаться насчет этого, если не прав — поправьте.
Re[3]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 18.05.15 10:26
Оценка:
Здравствуйте, ELazin, Вы писали:

EL>например intrusive структуры данных сложно без unsafe сделать на нем, могу ошибаться насчет этого, если не прав — поправьте.

Да, это так. Но иначе и не получилось бы предоставить имеющиеся гарантии для безопасного кода. Ну а структуры данных можно написать один раз и предоставить к ним безопасный интерфейс.
Re[3]: Rust 1.0, 15 мая этого года :)
От: DemonsInside  
Дата: 18.05.15 10:35
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>"Всё что мы не успели стабилизировать до 1.0 ушло под нож". Правда есть mio, который на данный момент UNIX-only, но поддержку Windows обещают, хотя для языка уровня Rust это вообще не критичное требование.


По отзывам у людей вообще много проблем под Windows. Некоторые мол даже hello world не смогли скомпилировать. У меня под рукой нет Windows, просто интересно, как там обстоят дела с поддержкой Windows платформы?
Re[4]: Rust 1.0, 15 мая этого года :)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 18.05.15 11:29
Оценка: +2
Здравствуйте, DemonsInside, Вы писали:

DI>По отзывам у людей вообще много проблем под Windows. Некоторые мол даже hello world не смогли скомпилировать. У меня под рукой нет Windows, просто интересно, как там обстоят дела с поддержкой Windows платформы?


У меня на Win 8.1 hello world собирается без проблем, причем даже не удивление быстро — за полсекунды. А вот какую-то программку, использующую помимо стандартной библиотеки пару-тройку крейтов с crates.io, собрать уже не получилось, ибо они потянули какие-то сишные зависимости, для их сборки нужен был gcc для 64 бит, а его в моем mingw не оказалось. Т.е. одного инсталлятора с rust-lang (и еще одного с LLVM) явно недостаточно для полноценной работы, нужно еще немного повозиться с настройкой окружения для сборки сишных запчастей.
Re[4]: Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 18.05.15 11:37
Оценка: -3
Здравствуйте, DemonsInside, Вы писали:

DI>По отзывам у людей вообще много проблем под Windows. Некоторые мол даже hello world не смогли скомпилировать.


Ну это скорей всего от того, что они IDE не наши в комплекте. Типичный виндузятник от такого в ступор впадает же
Re[3]: Rust 1.0, 15 мая этого года :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.05.15 12:54
Оценка:
Здравствуйте, ELazin, Вы писали:

AVK>>А вот отсутствие асинхронного IO по нынешним временам — почти приговор.

EL>Оно на уровне языка должно быть штоле?

На уровне языка должна быть удобная асинхронность, а не борьба с ней при помощи этажерки из объектов или лямбд.

EL>Там пользователь должен передавать библиотеке callback, который вызвается при accept-е нового клиента,


Они чуть менее чем все такие.

EL> клиент должен реализовывать конечный автомат и правильно реагировать на вызовы этого callback-а


Автомат руками реализовывать?

EL>Это все выглядит страшно (callback-с десятком параметров, AFAIR),


Вот вот, о том и речь.

EL>А всякие асинхронные языковые расширения (вроде async в C#) такой роскоши не позволяют


Конкретно async в C# (а точнее не async, а TPL, async просто лапшу из кода убирает) это позволяет штатными средствами. Меняешь контекст на синхронный и вперед. Если, конечно, явно не скажешь, что тебе надо в отдельном потоке.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re: Rust 1.0, 15 мая этого года :)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.05.15 02:20
Оценка:
Всего пол месяца после официального релиза языка прошло, а уже доступна первая книга.
Отредактировано 29.05.2015 2:20 kaa.python . Предыдущая версия .
Re[2]: Rust 1.0, 15 мая этого года :)
От: uncommon Ниоткуда  
Дата: 31.05.15 01:02
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Всего пол месяца после официального релиза языка прошло, а уже доступна первая книга.


Книжка — пустышка. Лучше доки с сайта распечатать — и то больше информации наберётся.
Re: Rust 1.0, 15 мая этого года :)
От: Iso12  
Дата: 20.07.15 19:35
Оценка: 12 (3) -1
Здравствуйте, kaa.python, Вы писали:

Microsoft планирует поддержку языка Rust в Visual Studio.
Подробноcти можно почитать здесь.
Re[2]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 21.07.15 09:53
Оценка: +1
Здравствуйте, Iso12, Вы писали:

I>Microsoft планирует поддержку языка Rust в Visual Studio.

I>Подробноcти можно почитать здесь.
По ссылке много бреда, похоже это просто сторонний плагин, а автор почему-то заявляет, что делает майкрософт. А я уже успел удивиться и обрадоваться.
Re[5]: Rust 1.0, 15 мая этого года :)
От: omgOnoz  
Дата: 21.07.15 21:25
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Здравствуйте, kaa.python, Вы писали:


KP>>Главная фича, из тех "что не выкинули". Но благодаря всемогущему unsafe её крайне легко похерить.

DE>Я тоже давно следил за языком и периодически изменения изначально расстраивали. Но после чтения их аргументации, как правило, соглашался с доводами. Скажем, по зелёным потокам особо не грущу. По моему, язык всё-таки чаще преподносится как "безопасный С/С++" — с этой точки зрения всё правильно сделали.

Может тогда лучше С#?
Re[6]: Rust 1.0, 15 мая этого года :)
От: Cyberax Марс  
Дата: 21.07.15 22:55
Оценка:
Здравствуйте, omgOnoz, Вы писали:

O>Может тогда лучше С#?

На C# нельзя переписать OpenSSL, так чтобы он остался бинарно-совместим. На Rust — можно.
Sapienti sat!
Re[6]: Rust 1.0, 15 мая этого года :)
От: DarkEld3r  
Дата: 22.07.15 07:46
Оценка:
Здравствуйте, omgOnoz, Вы писали:

O>Может тогда лучше С#?

Что значит "тогда"? Я в расте не разочаровывался, наоборот кажется, что он идёт в правильном направлении — развивая, в том числе, всякие низкоуровневые вещи.
С# — это совсем другое.
Re[2]: Visual Studio extension for Rust
От: Iso12  
Дата: 26.07.15 13:02
Оценка:
Статью удалили, скорее не договорились или был просто "пустой выхлоп".
Поэтому я просто выложу здесь линки (этот и этот), где можно скачать расширение VS для Rust.
Visual Studio extension for Rust :
1)Поддержка проекта
2)Поддержка синтакса
3)Интегрирование компилятора
Re[4]: Rust 1.0, 15 мая этого года :)
От: red75  
Дата: 23.10.15 12:27
Оценка:
Здравствуйте, DemonsInside, Вы писали:

DI>По отзывам у людей вообще много проблем под Windows. Некоторые мол даже hello world не смогли скомпилировать. У меня под рукой нет Windows, просто интересно, как там обстоят дела с поддержкой Windows платформы?


Есть под Windows кое-какие проблемы, но жить можно, особенно с Rust-msvc-х64. Я, вот, обертку над DX12 сделал. dx12_integration_test
rust
Re[5]: Rust 1.0, 15 мая этого года :)
От: VTT http://vtt.to
Дата: 23.10.15 12:59
Оценка:
Я правильно понимаю, что в репозитории по большей части парсеры для заголовочных файлов и результаты парсинга?
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re[6]: Rust 1.0, 15 мая этого года :)
От: red75  
Дата: 23.10.15 14:35
Оценка:
Здравствуйте, VTT, Вы писали:

VTT>Я правильно понимаю, что в репозитории по большей части парсеры для заголовочных файлов и результаты парсинга?


Исходники готового приложения лежат в https://github.com/red75prime/dxgen/tree/master/src/dxgen/scaffolding/src

Получилось повторить результат 3DMark API Overhead benchmark. 13.6 миллионов вызовов Draw в секунду на GTX 980.
Отредактировано 23.10.2015 14:41 red75 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.