The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск языка программирования Rust 1.1, развиваемого проектом Mozilla

26.06.2015 10:29

Спустя месяц с момента публикации первого стабильного релиза доступен выпуск языка программирования Rust 1.1, развиваемого проектом Mozilla, обеспечивающего автоматическое управление памятью и предоставляюшего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo, написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

Одним из главных приоритетов в разработке новой версии была оптимизации времени сборки. В итоге, по сравнению с выпуском 1.0 удалось добиться увеличения скорости сборки на 32%. Из других изменений отмечается улучшение сообщений об ошибках на этапе компиляции - большинство ошибок теперь снабжены дополнительными пояснениями (выводятся при указании опции "--explain"), отражающими причины возникновения проблемы. Добавлен новый API std::fs, предоставляющий функции для взаимодействия с файловой системой. Добавлена поддержка стандартной Си-библиотеки musl, которую можно использовать вместо Glibc в Linux, в том числе для формирования компактных статических сборок без внешних зависимостей. В пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик, добавлена возможность сборки пакета с передачей произвольных флагов компилятору rustc.

Одновременно заявлено о начале бета-тестирования выпуска Rust 1.2, в котором ещё на 30% ускорен процесс компиляции и представлены наработки по обеспеспечению распараллеливания сборки на многоядерных системах. Проведена оптимизация производительности пакетного менеджера Cargo, некоторые операции в котором удалось ускорить в 10 раз. Добавлена поддержка сборки при помощи MSVC (Microsoft Visual C).

  1. Главная ссылка к новости (http://blog.rust-lang.org/2015...)
  2. OpenNews: Увидел свет язык программирования Rust 1.0
  3. OpenNews: Выпуск языка программирования Rust 0.12, развиваемого проектом Mozilla
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42504-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (60) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:42, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    есть какая-либо хорошая IDE с поддержкой RUST ?
     
     
  • 2.3, Аноним (-), 10:47, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Буквально в соседней новости - Atom 1.0. Боюсь, что пока это самое близкое что есть к понятию IDE.
     
  • 2.4, Аноним (-), 10:58, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +9 +/
    gnu/emacs
     
  • 2.5, Аноним (-), 11:03, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://reangdblog.blogspot.com/2015/04/emacs-ide-rust.html
     
  • 2.6, Аноним (-), 11:07, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как насчёт сначала научиться писать код, а потом уже думать о продуктивности?
     
     
  • 3.8, Аноним (-), 11:16, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > Как насчёт сначала научиться писать код, а потом уже думать о продуктивности?

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

     
  • 3.23, Аноним (-), 13:19, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Многие уже научились писать код. Это не сложно, слов не очень много надо помнить.
     
     
  • 4.24, Аноним (-), 13:34, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > слов не очень много надо помнить.

    Эксперты дельфей и прочих вижуалбейсиков с вами не согласны!

     
  • 2.13, Аноним (-), 11:55, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Пока что https://github.com/RustDT/RustDT предоставляет что-то более-менее рабочее (отладка с gdb работает).
     
     
  • 3.33, Аноним (-), 17:22, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    попробывал - не плохо. Реально gdb, автодополнение, подсветка синтаксиса/ошибок работают (есть поддержка racer-а). Можно удобно переходить в исходники стандартных библиотечных конструкций из кода.
     
     
  • 4.45, тоже Аноним (ok), 19:53, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > попробывал - не плохо

    Попробывал - плохо!
    Попробовал - неплохо!

     
  • 2.15, Аноним (-), 12:05, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Официальный(тм) плагин для vim (подсветка и корректность синтаксиса). https://github.com/rust-lang/rust.vim
     
     
  • 3.17, Нанобот (ok), 12:31, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    вот только это не IDE
     
     
  • 4.18, Аноним (-), 12:38, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    SATA ? =)
     

  • 1.2, Аноним (-), 10:42, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Си-библиотеки musl, которую можно использовать вместо Glibc в Linux

    самое бестолковое название libc-библиотеке

     
     
  • 2.41, mapron (ok), 18:27, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Да зря вы так. Хорошая она. Вон WRT на нее перешли. Еще бы MMU-less была поддержка, то тогда вообще uclibc в топку. А так пока приходится грызть^W пользовать последний.
     

  • 1.7, Аноним (-), 11:08, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    так что они собираются делать с thread::scoped? Был же хороший RFC, как реализовать это без риска порчи памяти, но воз и ныне там
     
     
  • 2.10, Аноним (-), 11:35, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а можно поподробнее?
     
     
  • 3.16, Аноним (-), 12:22, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/rust-lang/rust/issues/24292 - суть проблемы
    http://smallcultfollowing.com/babysteps/blog/2015/04/29/on-reference-counting - подробное объяснение
     

  • 1.9, уке (?), 11:21, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если кто-то хочет потыкать его палочкой. И если этот кто-то уже не простреливает свою ногу плюсами, тогда можно и не тыкать. Внезапно, синтаксис не совпадает с семантикой. Язык сложный.
     
     
  • 2.11, anonymous (??), 11:42, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/

    > Если кто-то хочет потыкать его палочкой. И если этот кто-то уже не простреливает свою ногу плюсами, тогда можно и не тыкать. Внезапно, синтаксис не совпадает с семантикой. Язык сложный.

    Пруфы...

    Особенно для "синтаксис не совпадает с семантикой".

     
  • 2.12, RazrFalcon (ok), 11:55, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сложнее плюсов?
     
     
  • 3.19, Аноним (-), 12:40, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    если писать хелловорды с одними примитивными типами и не думая ни о какой модели памяти, то раст гораздо сложнее плюсов. В остальных случаях - даже проще, потому что куча ошибок ловится еще на этапе компиляции.
     
  • 3.20, ADMIN (?), 12:41, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Плюсы могут быть просты, как 5 копеек - скажем, их сложность начинается от pure C и до бесконечности, с прочтением всяких толстых томов страуструпа и александреску. Сложность нужна, чтобы следовать хорошим паттернам и не отстреливать себе органы. Раст, хачкель и прочие хорошие языки отличаются тем, что сразу отсекают всю простоту, например возможность сравнивать тёплое с мягким, присваивать овец баранам и так далее.
     
     
  • 4.21, погромист на хачкеле (?), 13:03, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >хачкель

    проиграл в голос

     
     
  • 5.26, Аноним (-), 13:50, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >>хачкель
    > проиграл в голос

    Никто с тобой не играл.

     
  • 4.25, Crazy Alex (ok), 13:43, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Сложность плюсов заключается в том, что это мета-язык. А для конкретного проекта надо выбирать предпочтительный стиль написания и исходя из этого выбирать, какие возможности использовать.

    Вторая, ещё большая сложность плюсов - в том, что о них болтают те, кто даже С++11 не освоил, а судит по стандартам почти 20-летней давности. Хотя даже тот стандарт не даёт сравнивать тёплое с мягким - если вы, конечно, на плюсах пишете, а не взяли по ошибке плюсовый компилятор для сишного кода.

     
     
  • 5.34, Аноним (-), 17:24, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не только это, но в целом плюсы не так сложны если за тебя уже выбрали архитектуру приложения и она удачная.
     
     
  • 6.53, Аноним (-), 13:06, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    так же и RUST и любой язык программирования
     
  • 2.14, Аноним (-), 12:03, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > синтаксис не совпадает с семантикой

    А нефиг сравнивать переменные, когда у них разные типы.

     

  • 1.22, Аноним (-), 13:16, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Неделю назад же 1.0 был?
    Надо Поттерингу systemd на Rust переписать. Что один, что другой раз в неделю обновляются...
     
     
  • 2.27, Аноним (-), 14:11, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Неделю назад же 1.0 был?
    > Надо Поттерингу systemd на Rust переписать. Что один, что другой раз в
    > неделю обновляются...

    А еще лучше -- возглавить разработку Rust!
    Глядишь, через месяц и версии более менее серьезные выйдут (хотя бы 30 плюс, а то единичка -- даже не смешно!). И фичи в языке нормальные появятся -- типа встроенной ИДЕ, ФС и бутманагера!


     
     
  • 3.36, Аноним (-), 17:59, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Надо Поттерингу systemd на Rust переписать.
    >А еще лучше -- возглавить разработку Rust!

    Хм ... и что получится? SysteRust ? :)

     
     
  • 4.37, Аноним (-), 18:11, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > и что получится?

    Ржавый Systemd, вестимо.

     
  • 3.48, spanasik (ok), 23:02, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В качестве процедур язык будет порождать сразу целые ОС!
     
  • 2.50, vn971 (ok), 12:14, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем писать то чего вы не знаете? Это же попросту распространение сплетен. Самодисциплина -- хорошая всё же иногда штука.

    Релиз Rust-1.0 тем временем состоялся 15 мая этого года.
    http://blog.rust-lang.org/2015/05/15/Rust-1.0.html

     

  • 1.28, YetAnotherOnanym (ok), 14:37, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > без использования сборщика мусора и runtime

    А "без runtime" - это как?

     
     
  • 2.29, Andrey Mitrofanov (?), 14:54, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> без использования сборщика мусора и runtime
    > А "без runtime" - это как?

    У них эта мантра в контексте(*), а новости он менее угадываем. Копипасты (с новости про 1.0) стирают границы! Причем там контекст не "без" а про "для ... не обязательны".

    *-Какая-то фигня в носу про линковку с Си-кодом - http://blog.rust-lang.org/2015/04/24/Rust-Once-Run-Everywhere.html#c-talking-

     
  • 2.30, Аноним (-), 14:56, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А "без runtime" - это как?

    Ну, типа, можно при надобности обойтись без шахмат с библиотекаршами и запилить стремительный домкрат^W^W самодостаточный код, типа ядра или драйвера -- что, как бы, сделать на  жабе или питоне несколько затруднительно ;)


     
  • 2.51, vn971 (ok), 12:15, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Грубо говоря, без VM (обслуживающей виртуальной машины).

    Т.е. rust-программы компилятся напрямую в нативный код, безо всяких интерпретаторов, VM для сбора мусора и т.д.

     
  • 2.54, Аноним (-), 13:16, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А "без runtime" - это как?

    Ну вот так. Только генерация кода по тому что ты написал в программе. Без вызовов в внешние либы. А для совсем системных вещей (ядра, бутлоадеры, драйвера, микроконтроллеры, ...) - еще и без динамического выделения памяти.

    На си запросто пишут даже boot loader, стартующий проц из состояния "вокруг ничего не работает, даже DRAM еще недоступна". При этом си - генерит код. По тому что написал програмер. Но никаких вызовов в внешние либы не делается, динамическое выделение памяти никто не делает. В сях обычно "все лишнее" можно послать в пень ключом -nostdlib (запрещает линковать стандартные либы без явного на то пожелания). Внезапно, рантайм не является чем-то обязательным. Это только наивные хипстеры не в курсе.

     

  • 1.31, Аноним (-), 15:56, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    C++ Software Developer
    Уровень зарплаты
    Город
    Требуемый опыт работы
    от 550 000 до 850 000 руб.
    Москва
     
     
  • 2.32, Аноним (-), 15:58, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем тратить время на изучение очередного (само)убийцы С++?
     
     
  • 3.55, Аноним (-), 13:18, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем тратить время на изучение очередного (само)убийцы С++?

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

     
  • 2.35, anonymous (??), 17:42, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В месяц? И как это соотносится с зарплатой по другим языкам?
     
     
  • 3.56, Аноним (-), 13:19, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > В месяц? И как это соотносится с зарплатой по другим языкам?

    С Rust даже сравнить не выйдет, будет деление на ноль. За отсутствием вакансий.

     
     
  • 4.58, Аноним (-), 20:41, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну почему же, уже сейчас в мозиллу можно идти, особенно если есть опыт с другими языками программирования.

    А в целом, если посмотреть на то что с RUST идет анализатор кода из коробки, которые для C/C++ стоят в тыс долларов и то что багов меньше будет идти на продакшен даже после начального/среднего уровня программиста, есть у него потенциал для выбора в качестве языка разработки в проектах.

     
  • 2.38, Аноним (-), 18:12, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А прочитать описание этой вакансии перед вбросом сюда можно было? Там вообще-то указано, что требуется разработчик для переезда в Лондон и зарплата в рублях приведена чисто для галочки.

    Ну и по самой вакансии и личному моему опыту. Имея за плечами 6 лет опыта разработки распределённых систем на С++, в Лондоне можно спокойно рассчитывать на общую зарплату в 100-120 тысяч фунтов в год. При этом не стоит забывать, что тут заплаты всегда указываются до уплаты налогов.

     
     
  • 3.44, Аноним (-), 19:36, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну 50-60к фунтов тоже не плохо
     

  • 1.39, нонейм (?), 18:13, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ура
    наконец пошли шлепать стабильные версии руста и перестали постоянно ломать совместимость
    хотя с такими темпами видать скоро 2.0 не за горами а к концу года и третий нашлепают
     
     
  • 2.52, vn971 (ok), 12:18, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Новые релизы выпускаются раз в 6 месяцев. Т.е., их ещё 4 штуки будет до нового года. Честно говоря думаю что не успеют накопить достаточно крупных изменений чтобы 2.0 выпускать, думаю скорее будет 1.5.
     

  • 1.40, Владимир (??), 18:24, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "Since the Rust compiler is written in Rust, it must be built by a
    precompiled "snapshot" version of itself"
    Для сборки из безысходников, нужно иметь уже собранный бинарь.

    Жаль, пополнил ряды не C-компилируемых компиляторов после g++ и Clang.
    Меж тем при запуске configure в отсутствие rustc в системе ничего не говорит. Надеется позже вытянуть компилер по сети. Т.е. если вы решите собрать компилятор оффлайн - имейте в виду.

     
     
  • 2.46, Crazy Alex (ok), 22:54, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А на кой оно C-компилируемое, в чём преимущество? Если считаешь, что делаешь хороший язык - логично использовать его преимущества при разработке компилятора.
     
     
  • 3.57, Аноним (-), 13:20, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А на кой оно C-компилируемое, в чём преимущество? Если считаешь, что делаешь
    > хороший язык - логично использовать его преимущества при разработке компилятора.

    Более того, неспособность языка собрать самого себя - как бы намекает... :)

     
     
  • 4.59, Crazy Alex (ok), 21:02, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Да ни на что она не намекает. Могут приоритеты другими быть, язык может конкретно для компилятора не очень подходить... много чего бывает. Например, те же дишники только сейчас собрались перебираться на компилятор, написанный на D, когда он достаточно стабилизировался и собрались люди, умеющие на нём писать - и умеющие писать компиляторы.
     

  • 1.42, Аноним (-), 19:28, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вы меня конечно извините, но я попридираюсь.

    > средства для высокого параллелизма выполнения заданий

    Легковесные потоки оттуда выпилили почти год назад. Теперь там есть только обычные потоки ОС, и ни о каком высоком параллелизме речи идти не может (ну не выше, чем в других языках без GIL).

    > пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик

    Клик чем и куда?

     
  • 1.43, Аноним (-), 19:34, 26/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    каждый дро4ет как он хочет, а мы дро4им на crystal-lang
     
     
  • 2.47, Crazy Alex (ok), 22:58, 26/06/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Няша, да. Судя по примерчику на головной странице можно не объявлять переменные? Ок, в мусорку сразу, раз на примере других учиться авторы не хотят. Правда, зачем - ведь в перле и JS "use strict;" просто так, для развлечения сделали.
     

  • 1.60, Аноним (-), 21:14, 27/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    http://benchmarksgame.alioth.debian.org/u64/compare.php?lang=java&lang2=rust

    При средне одинаковом количестве строк кода, JAVA, если сравнивать с тем же на RUST:
    в 2 раза дольше выполняет приложение
    в 3 раза больше использует памяти

     
     
  • 2.61, Аноним (-), 23:05, 27/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > http://benchmarksgame.alioth.debian.org/u64/compare.php?lang=java&lang2=rust&
    > При средне одинаковом количестве строк кода, JAVA, если сравнивать с тем же

    Это теперь раст идет сразу после си и плюсов. А еще пару дней назад был наравне с джавой ;)

    И, хотя полезность таких микробенчей под вопросом -- неплохо.

    > Rust действительно безопасный, но, к сожалению, далеко не быстрый. По скорости на момент написания[24.04.15 прим. анонима] этих строк Rust сравним с Java, Go и Haskell:

    (это из бложика очередного "знатока-анализатора", ссылку приводить не хочу -- тут достаточно загуглить или поискать обсуждение-вброс на ЛОРе)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру