Спустя месяц с момента публикации (http://www.opennet.me/opennews/art.shtml?num=42241) первого стабильного релиза доступен (http://blog.rust-lang.org/2015/06/25/Rust-1.1.html) выпуск языка программирования Rust 1.1 (http://www.rust-lang.org), развиваемого проектом Mozilla, обеспечивающего автоматическое управление памятью и предоставляюшего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (http://www.opennet.me/opennews/art.shtml?num=36576), написанный (https://github.com/servo/servo/) на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).Одним из главных приоритетов в разработке новой версии была оптимизации времени сборки. В итоге, по сравнению с выпуском 1.0 удалось добиться увеличения скорости сборки на 32%. Из других изменений (https://github.com/rust-lang/rust/blob/master/RELEASES.md#ve...) отмечается улучшение сообщений об ошибках на этапе компиляции - большинство ошибок теперь снабжены дополнительными пояснениями (выводятся при указании опции "--explain"), отражающими причины возникновения проблемы. Добавлен новый API std::fs, предоставляющий функции для взаимодействия с файловой системой. Добавлена поддержка стандартной Си-библиотеки musl, которую можно использовать вместо Glibc в Linux, в том числе для формирования компактных статических сборок без внешних зависимостей. В пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик, добавлена возможность сборки пакета с передачей произвольных флагов компилятору rustc.
Одновремекнно заявлено о начале бета-тестирования выпуска Rust 1.2, в котором ещё на 30% ускорен процесс компиляции и представлены наработки по обеспеспечению распараллеливания сборки на многоядерных системах. Проведена оптимизация производительности пакетного менеджера Cargo, некоторые операции в котором удалось ускорить в 10 раз. Добавлена поддержка сборки при помощи MSVC (Microsoft Visual C).
URL: http://blog.rust-lang.org/2015/06/25/Rust-1.1.html
Новость: http://www.opennet.me/opennews/art.shtml?num=42504
есть какая-либо хорошая IDE с поддержкой RUST ?
Буквально в соседней новости - Atom 1.0. Боюсь, что пока это самое близкое что есть к понятию IDE.
gnu/emacs
http://reangdblog.blogspot.com/2015/04/emacs-ide-rust.html
Как насчёт сначала научиться писать код, а потом уже думать о продуктивности?
> Как насчёт сначала научиться писать код, а потом уже думать о продуктивности?Пробовать язык намного удобнее, имея нормальную подсветку и автодополнение хотя бы по стандартной библиотеке. Продуктивность применима не только к разработке, но и к обучению
Многие уже научились писать код. Это не сложно, слов не очень много надо помнить.
> слов не очень много надо помнить.Эксперты дельфей и прочих вижуалбейсиков с вами не согласны!
Пока что https://github.com/RustDT/RustDT предоставляет что-то более-менее рабочее (отладка с gdb работает).
попробывал - не плохо. Реально gdb, автодополнение, подсветка синтаксиса/ошибок работают (есть поддержка racer-а). Можно удобно переходить в исходники стандартных библиотечных конструкций из кода.
> попробывал - не плохоПопробывал - плохо!
Попробовал - неплохо!
Официальный(тм) плагин для vim (подсветка и корректность синтаксиса). https://github.com/rust-lang/rust.vim
вот только это не IDE
SATA ? =)
> Си-библиотеки musl, которую можно использовать вместо Glibc в Linuxсамое бестолковое название libc-библиотеке
Да зря вы так. Хорошая она. Вон WRT на нее перешли. Еще бы MMU-less была поддержка, то тогда вообще uclibc в топку. А так пока приходится грызть^W пользовать последний.
так что они собираются делать с thread::scoped? Был же хороший RFC, как реализовать это без риска порчи памяти, но воз и ныне там
а можно поподробнее?
https://github.com/rust-lang/rust/issues/24292 - суть проблемы
http://smallcultfollowing.com/babysteps/blog/2015/04/29/on-r.../ - подробное объяснение
Если кто-то хочет потыкать его палочкой. И если этот кто-то уже не простреливает свою ногу плюсами, тогда можно и не тыкать. Внезапно, синтаксис не совпадает с семантикой. Язык сложный.
> Если кто-то хочет потыкать его палочкой. И если этот кто-то уже не простреливает свою ногу плюсами, тогда можно и не тыкать. Внезапно, синтаксис не совпадает с семантикой. Язык сложный.Пруфы...
Особенно для "синтаксис не совпадает с семантикой".
Сложнее плюсов?
если писать хелловорды с одними примитивными типами и не думая ни о какой модели памяти, то раст гораздо сложнее плюсов. В остальных случаях - даже проще, потому что куча ошибок ловится еще на этапе компиляции.
Плюсы могут быть просты, как 5 копеек - скажем, их сложность начинается от pure C и до бесконечности, с прочтением всяких толстых томов страуструпа и александреску. Сложность нужна, чтобы следовать хорошим паттернам и не отстреливать себе органы. Раст, хачкель и прочие хорошие языки отличаются тем, что сразу отсекают всю простоту, например возможность сравнивать тёплое с мягким, присваивать овец баранам и так далее.
>хачкельпроиграл в голос
>>хачкель
> проиграл в голосНикто с тобой не играл.
Сложность плюсов заключается в том, что это мета-язык. А для конкретного проекта надо выбирать предпочтительный стиль написания и исходя из этого выбирать, какие возможности использовать.Вторая, ещё большая сложность плюсов - в том, что о них болтают те, кто даже С++11 не освоил, а судит по стандартам почти 20-летней давности. Хотя даже тот стандарт не даёт сравнивать тёплое с мягким - если вы, конечно, на плюсах пишете, а не взяли по ошибке плюсовый компилятор для сишного кода.
Не только это, но в целом плюсы не так сложны если за тебя уже выбрали архитектуру приложения и она удачная.
так же и RUST и любой язык программирования
> синтаксис не совпадает с семантикойА нефиг сравнивать переменные, когда у них разные типы.
Неделю назад же 1.0 был?
Надо Поттерингу systemd на Rust переписать. Что один, что другой раз в неделю обновляются...
> Неделю назад же 1.0 был?
> Надо Поттерингу systemd на Rust переписать. Что один, что другой раз в
> неделю обновляются...А еще лучше -- возглавить разработку Rust!
Глядишь, через месяц и версии более менее серьезные выйдут (хотя бы 30 плюс, а то единичка -- даже не смешно!). И фичи в языке нормальные появятся -- типа встроенной ИДЕ, ФС и бутманагера!
>> Надо Поттерингу systemd на Rust переписать.
>А еще лучше -- возглавить разработку Rust!Хм ... и что получится? SysteRust ? :)
> и что получится?Ржавый Systemd, вестимо.
В качестве процедур язык будет порождать сразу целые ОС!
Зачем писать то чего вы не знаете? Это же попросту распространение сплетен. Самодисциплина -- хорошая всё же иногда штука.Релиз Rust-1.0 тем временем состоялся 15 мая этого года.
http://blog.rust-lang.org/2015/05/15/Rust-1.0.html
> без использования сборщика мусора и runtimeА "без runtime" - это как?
>> без использования сборщика мусора и runtime
> А "без runtime" - это как?У них эта мантра в контексте(*), а новости он менее угадываем. Копипасты (с новости про 1.0) стирают границы! Причем там контекст не "без" а про "для ... не обязательны".
*-Какая-то фигня в носу про линковку с Си-кодом - http://blog.rust-lang.org/2015/04/24/Rust-Once-Run-Everywher...
> А "без runtime" - это как?Ну, типа, можно при надобности обойтись без шахмат с библиотекаршами и запилить стремительный домкрат^W^W самодостаточный код, типа ядра или драйвера -- что, как бы, сделать на жабе или питоне несколько затруднительно ;)
Грубо говоря, без VM (обслуживающей виртуальной машины).Т.е. rust-программы компилятся напрямую в нативный код, безо всяких интерпретаторов, VM для сбора мусора и т.д.
> А "без runtime" - это как?Ну вот так. Только генерация кода по тому что ты написал в программе. Без вызовов в внешние либы. А для совсем системных вещей (ядра, бутлоадеры, драйвера, микроконтроллеры, ...) - еще и без динамического выделения памяти.
На си запросто пишут даже boot loader, стартующий проц из состояния "вокруг ничего не работает, даже DRAM еще недоступна". При этом си - генерит код. По тому что написал програмер. Но никаких вызовов в внешние либы не делается, динамическое выделение памяти никто не делает. В сях обычно "все лишнее" можно послать в пень ключом -nostdlib (запрещает линковать стандартные либы без явного на то пожелания). Внезапно, рантайм не является чем-то обязательным. Это только наивные хипстеры не в курсе.
C++ Software Developer
Уровень зарплаты
Город
Требуемый опыт работы
от 550 000 до 850 000 руб.
Москва
Зачем тратить время на изучение очередного (само)убийцы С++?
> Зачем тратить время на изучение очередного (само)убийцы С++?Так там не убийца си++, а си++. Он с нами будет еще долго и поэтому тратить на него время смысл - имеет. Если хочется кодить что-то уже достаточно большое, но чтобы оно все еще работало круто и быстро, вызывая лютую боль пониже спины у жабистов и прочих бидонистов. Собственно за это плюсовикам и платят. Нормально в принципе платят.
В месяц? И как это соотносится с зарплатой по другим языкам?
> В месяц? И как это соотносится с зарплатой по другим языкам?С Rust даже сравнить не выйдет, будет деление на ноль. За отсутствием вакансий.
Ну почему же, уже сейчас в мозиллу можно идти, особенно если есть опыт с другими языками программирования.А в целом, если посмотреть на то что с RUST идет анализатор кода из коробки, которые для C/C++ стоят в тыс долларов и то что багов меньше будет идти на продакшен даже после начального/среднего уровня программиста, есть у него потенциал для выбора в качестве языка разработки в проектах.
А прочитать описание этой вакансии перед вбросом сюда можно было? Там вообще-то указано, что требуется разработчик для переезда в Лондон и зарплата в рублях приведена чисто для галочки.Ну и по самой вакансии и личному моему опыту. Имея за плечами 6 лет опыта разработки распределённых систем на С++, в Лондоне можно спокойно рассчитывать на общую зарплату в 100-120 тысяч фунтов в год. При этом не стоит забывать, что тут заплаты всегда указываются до уплаты налогов.
Ну 50-60к фунтов тоже не плохо
Ура
наконец пошли шлепать стабильные версии руста и перестали постоянно ломать совместимость
хотя с такими темпами видать скоро 2.0 не за горами а к концу года и третий нашлепают
Новые релизы выпускаются раз в 6 месяцев. Т.е., их ещё 4 штуки будет до нового года. Честно говоря думаю что не успеют накопить достаточно крупных изменений чтобы 2.0 выпускать, думаю скорее будет 1.5.
"Since the Rust compiler is written in Rust, it must be built by a
precompiled "snapshot" version of itself"
Для сборки из безысходников, нужно иметь уже собранный бинарь.Жаль, пополнил ряды не C-компилируемых компиляторов после g++ и Clang.
Меж тем при запуске configure в отсутствие rustc в системе ничего не говорит. Надеется позже вытянуть компилер по сети. Т.е. если вы решите собрать компилятор оффлайн - имейте в виду.
А на кой оно C-компилируемое, в чём преимущество? Если считаешь, что делаешь хороший язык - логично использовать его преимущества при разработке компилятора.
> А на кой оно C-компилируемое, в чём преимущество? Если считаешь, что делаешь
> хороший язык - логично использовать его преимущества при разработке компилятора.Более того, неспособность языка собрать самого себя - как бы намекает... :)
Да ни на что она не намекает. Могут приоритеты другими быть, язык может конкретно для компилятора не очень подходить... много чего бывает. Например, те же дишники только сейчас собрались перебираться на компилятор, написанный на D, когда он достаточно стабилизировался и собрались люди, умеющие на нём писать - и умеющие писать компиляторы.
Вы меня конечно извините, но я попридираюсь.> средства для высокого параллелизма выполнения заданий
Легковесные потоки оттуда выпилили почти год назад. Теперь там есть только обычные потоки ОС, и ни о каком высоком параллелизме речи идти не может (ну не выше, чем в других языках без GIL).
> пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик
Клик чем и куда?
каждый дро4ет как он хочет, а мы дро4им на crystal-lang
Няша, да. Судя по примерчику на головной странице можно не объявлять переменные? Ок, в мусорку сразу, раз на примере других учиться авторы не хотят. Правда, зачем - ведь в перле и JS "use strict;" просто так, для развлечения сделали.
http://benchmarksgame.alioth.debian.org/u64/compare.php?lang...При средне одинаковом количестве строк кода, JAVA, если сравнивать с тем же на RUST:
в 2 раза дольше выполняет приложение
в 3 раза больше использует памяти
> http://benchmarksgame.alioth.debian.org/u64/compare.php?lang...
> При средне одинаковом количестве строк кода, JAVA, если сравнивать с тем жеЭто теперь раст идет сразу после си и плюсов. А еще пару дней назад был наравне с джавой ;)
И, хотя полезность таких микробенчей под вопросом -- неплохо.
> Rust действительно безопасный, но, к сожалению, далеко не быстрый. По скорости на момент написания[24.04.15 прим. анонима] этих строк Rust сравним с Java, Go и Haskell:
(это из бложика очередного "знатока-анализатора", ссылку приводить не хочу -- тут достаточно загуглить или поискать обсуждение-вброс на ЛОРе)