Состоялся (http://blog.rust-lang.org/2015/08/06/Rust-1.2.html) выпуск языка программирования Rust 1.2 (http://www.rust-lang.org), развиваемого проектом Mozilla, обеспечивающего (http://www.opennet.me/opennews/art.shtml?num=42241) автоматическое управление памятью и предоставляюшего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (http://www.opennet.me/opennews/art.shtml?num=36576), написанный (https://github.com/servo/servo/) на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).
В новой версии продолжена работа по оптимизации производительности, значительно ускорен процесс компиляции и представлены наработки по обеспечению распараллеливания сборки на многоядерных системах (добавлена опция "-C codegen-units=число потоков"). Например, сборка hyper теперь выполняется на 16% быстрее, html5ever - на 62%, regex - на 32%, rust-encoding на 35%. Генерация кода в параллельном режиме на четырёхядерном компьютере даёт ускорение ещё на 33%. Ограничением параллельного режима сборки является невозможность использования некоторых режимов оптимизации, что ограничивает его применение промежуточными и отладочными сборками.Проведена значительная оптимизация производительности пакетного менеджера Cargo, например, время сборки пакета с движком Servo удалось сократить в 10 раз. В Cargo также добавлена поддержка совместно используемых целевых директорий, в которых кэшируются типовые для разных пакетов зависимости, что позволяет дополнительно существенно сократить время сборки сложных проектов.
В языке завершена реализация типов динамически изменяемого размера (DST (http://smallcultfollowing.com/babysteps/blog/2014/01/05/dst-.../), dynamically-sized type), позволяющих создавать указатели (Rc) на элементы массивов и объекты, динамически адаптирующиеся к изменениям в их структуре. Кроме сборки с применением инструментария GNU в Rust реализована возможность компиляции с использованием MSVC (Microsoft Visual C) и прямого связывания кода на языке Rust с кодом, собранным в MSVC.
URL: http://blog.rust-lang.org/2015/08/06/Rust-1.2.html
Новость: http://www.opennet.me/opennews/art.shtml?num=42751
Скоро маркетологов Firefox на него перебросят и через год мы дождемся Rust 9.
Вы так говорите, как будто это что-то плохое.
Файрфоксу на пользу явно не пошло
Как будто что-то есть хорошее. Раньше можно было сразу понять по обновлению мажорных и минорных цифр "масштаб" работ сделанных к релизу, но маркетологи в IT и программировании подобно колхозникам в Эрмитаже. Поэтому когда версия нумеруется в соответствии с примитивизмом маркетологов, то они нас с вами сводят к взаимодейстию на их примитивный уровень. Вероятно вы не понимаете что в этом плохого, возможно даже что вам колхозный примитивизм представлении предлагаемый маркетологами ближе, роднее, но не все такие.PS: Не нужно оглядываться на неучей, а то можно упасть в средневековье.
в rust первая цифра - мажорная (большой масштаб работ, обновляется раз в несколько лет), вторая - минорная (небольшой масштаб работ, обновляется раз в пару месяцев). Не благодарите.
> Не благодарите.Чукча не читатель.
А когда нумерацией занимается ИТ-отдел, то возникают перлы вроде:"В к/ф Терминатор была ОС версии 4, а у нас только 3. Хочу 4!"
Это про ядро Линукс, если кто не понял.
"Чё-то давно у нас номер версии не менялся. Мы уже 2 года баги правим, изменений внесли туеву кучу, а номер не растёт. Давайте чтоли перейдём с 8.2.хххх на 8.3.хххх"
Это про 1С.
Сидишь и думаешь: вот клоуны....
Сложность линукса стала настолько высокой (не в плохом смысле, это нормально), что такие же по масштабу радикальные изменения, как были 0->1 и 1->2 уже практически невозможны. Посему ведро давно уже де факто стало полуроллингом, а мажорная цыфирка "2" просто потеряла смысл.
Про 1С не могу сказать ничего, возможно, там ситуация как раз этим и отличается (то бишь, есть потенциальная возможность радикально сломать совместимость).Но ты, клован, не привык включать башку перед комментированием, и поэтому все не перестаешь сравнивать теплое с мягким.
Мне прочитать тебе лекцию как снижают сложность?Там на первом месте будет переход от монолитного ядра к пико-ядру с модульностью и динамическим связыванием. Всё как в лучших образцах ОС нашего времени, т.е. как в W10.
> пико-ядру
> как в W10.Казалось бы, причем тут десяточка и пико-ядро?
Ну хоть вику подправили и засудили и у себя на страничке прибрались:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff...).aspx
Или как-то догадались запатентовать "пико-ядро" в своем варианте (а то, что другие не в курсе М$шной терминологии -- исключительно их проблемы) :)
>Мне прочитать тебе лекцию как снижают сложность?Ну попробуй, вместе посмеемся. Сейчас это очень острый вопрос, и тот, кто предложит научно обоснованную методологию управления сложностью, гарантированно снищет себе славу в мире вычислительной техники. Если у тебя есть ответ, то где же твои публикации в журналах и заслуженная ACM award, клован?
>Там на первом месте будет переход от монолитного ядра к пико-ядру с модульностью и динамическим связыванием
Угу, понятно. Дилетант и в этом вопросе. Но лекцию все равно прочитай, больно уж мне тоску разогнать охота.
>Всё как в лучших образцах ОС нашего времени, т.е. как в W10.
По части архитектурной сложности шипдошс является одним из худших образцов нашего времени.
Клоун негодует - значит все хорошо! А вот если бы нахваливал ...
Да в общем-то похeр, хоть он негодует, хоть нахваливает...Почему вам не все равно? Хотите об этом поговорить?
Был бы психоаналитиком, зарабатывал бы миллионы...
> Почему вам не все равно?Почему вам не все равно, что мне что-то не все равно?
Хотите об этом поговорить? Так установите божественный emacs и введите:
M-x doctor
> I am the psychotherapist. Please, describe your problems. Each time you are finished talking, type RET twice..
> Был бы психоаналитиком, зарабатывал бы миллионы...Хорошо, что не уточнили, миллионы чего именно :)
> Скоро маркетологов Firefox на него перебросят и через год мы дождемся Rust
> 9.Ыыыы,
Rust 0.9 9 Jan 2014
Rust 1.0 15 May 2015
Rust 1.2 8 Aug 2015суде по трем точкам на графике... уже
> что такое семантическое версионирование
> Скоро маркетологов Firefox на него перебросят и через год мы дождемся Rust
> 9.Вряд ли. Тут даже в долгосрочной перспективе особой отдачи не предвидится - по сравнению с другими проектами мозиллы. Так что маркетолухам раст не интересен.
В свете последних новостей, фраза «развиваемого проектом Mozilla» как-то перестаёт вызывать положительные эмоции. )
Думаешь, канпелятор стучит на тебя собирателям подноготных?
Скорее есть сомнения в адекватности принимающих решения
> Думаешь, канпелятор стучит на тебя собирателям подноготных?Не, речь о новости про PDF.js =)
Процесс разработки открыт, исходники на Github, ключевые разработчики доступны в IRC, смотри, проверяй, спрашивай что непонятно и что не так. Мозилловцы проводят лекции в ВУЗах США о RUST, обеспечивая интерес со стороны перспективной молодежи. Приложение на RUST примерно в 2 раза быстрее и в 3 раза меньше потребляет памяти чем на JAVA. Вполне достойный и перспективный проект развиваемый Мозиллой.
Java ? Отличный пример для сравнения компилируемого и "эмулируемого языка", а что в тестах по C\C++ ?
примерно одинаковая производительность в сравнении с C++
http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...
Неправда. Rust и GO в среднем на уровне Java и по скорости. Что делает их ненужными с учетом того что под Java миллиарды разных либ, а под Rust ноль целых ноль десятых :(Самое главное - есть множество примеров, когда простая программа на си в 4-5 раз быстрее программы Java, но есть сложная программа на Java которая быстрее в те же 4-5 раз, чем прога на СИ (например смотрим бенчмарки проекта boofcv, который местами сильно быстрее сишного openCV.
Ну и не редкость, когда есть большая-большая программа на Java и вообще нет аналогов на Си. Ибо не осилили.
Хреново капитанишь - у тебя тут смешались в кучу кони, люди и залпы башенных орудий.Во-первых, если оно таки шустрее джавы до определённого размера, то либы наверняка появятся с учётом того, что писать проще, чем на сях. а для Go их, в общем-то, уже немало. И это в любом случае самостоятельная ниша.
Во-вторых, на среднем/большом софте скорость Rust пока никто не проверял. Когда/если допишут Servo - будет пример среднего размера.
В-третьих, что большой софт на сях не пишут - чистая правда. Но тут и по скорости не сравнишь, так как не с чем.
Ну а насчёт boofcv/opencv пусть выскажется тот, кто в курсе ситуации, бенчмарк на сайте boofcv (и коментарии к нему) менее оптимистичен, чем вы. Но пока я не видел вообще ни одного случая, чтобы джава-приложение было лучше по производительности, тем более в разы, с сишными аналогами - когда они есть.
> Неправда. Rust и GO в среднем по больнице на уровне Java и по скорости.
> Что делает их ненужными с учетом того что под JavaFixed.
Сразу видно жабистов - есть Жаба, а все остальное не нужно!А то, что ГЦ при одинаковой скорости работы вкушает "в среднем" в 1.5х - 2х раза больше рамы (это еще очень оптимистично) мы скромно умолчим ;)
Ну и
http://www.techempower.com/benchmarks/#section=data-r10&hw=p...
Не видно что-то отрыва 3-х кратного отрыва Жабы.
А кто-нибудь может в двух словах объяснить что такое "типы динамически изменяемого размера"? Что это, почему их только сейчас реализовали, есть ли аналоги в других языках и т.д.?
В D2 точно есть. Я решал простецкую задачу на d2 и как раз применял массив с динамически изменяемым размером
char data[0];
То есть аналог std::vector, но при этом plain old data, без указателей на хип чтоли?
> То есть аналог std::vector, но при этом plain old data, без указателей
> на хип чтоли?Все то, для чего нельзя "вывести" размер еще во время компилирования.
ЗЫ: я другой аноним.
Все-таки хотелось бы подробностей. А то одна статья от создателей фичи, я ее давно еще читал но ничего особо не понял.
Если на хабре вам ответят скопайте ссылочку сюда. :)
Да похоже придется с этой статьей разбираться еще раз самому:)
Проще всего - спросите на reddit в раздел /r/rust, если английским владеете. Там товарищи вам объяснят, для чего это нужно.
[T] - массив объектов типа T, то есть не вектор, в котором указатель на память, размер и вместимость, а просто объекты один за одним. По скорости он такой же как и обычный массив (быстрее вектора).
А также так званые "Trait objects", любой тип который реализует указанный Trait (dynamic dispatch).Больше здесь: http://smallcultfollowing.com/babysteps/blog/2014/01/05/dst-.../
Недавно обновился пакет, предоставляющий операции сериализации/десер.ии в Rust(serde), где заметно возросла производительность. По тестам самого основного разработчика теперь быстрее чем rapidjson(С++) на 10%:https://erickt.github.io/blog/2015/08/07/serde-0-dot-5-0-man.../
https://github.com/serde-rs/serde
https://github.com/miloyip/rapidjson