The OpenNET Project / Index page

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

Релиз языка программирования Rust 1.4, развиваемого проектом Mozilla

30.10.2015 13:35

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

В новом выпуске представлено более 1200 изменений, которые в основном связаны с небольшими улучшениями и стабилизацией кодовой базы. В стандартной библиотеке 48 API отмечены как стабильные, 8 API переведены в категорию устаревших, 2 API переработаны для увеличения производительности. В пакетном менеджере обеспечен вывод детальной информации об изменениях при выполнении команды "cargo update". Расширена поддержка платформы Windows, при сборке для которой теперь можно использовать 64-разрядный MSVC ABI и штатный компоновщик.

В языке реализованы предложения RFC 1214 по устранению недостатков в системе типов. Для кода не соответствующего новым правилам определения типов обеспечен вывод предупреждений, которые в следующем выпуске будут заменены на вывод ошибок. В состав также приняты изменения RFC 1212, затрагивающие функции чтения строк и допускающие использование как "\r\n", так и "\n" в качестве меток конца строки.

Язык Rust развивается проектом Mozilla и сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. При этом Rust обходится без использования сборщика мусора или runtime, что делает возможным создания на Rust библиотек, которые могут выступать в роли прозрачной замены библиотекам для языка Си. Для распространения библиотек на языке Rust, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик. Для размещения библиотек введён в строй репозиторий crates.io.

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

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


Обсуждение (52) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 15:34, 30/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >>В состав также приняты изменения RFC 1212, затрагивающие функции чтения строк и допускающие использование как "\\r\\n", так и "\\n" в качестве меток конца строки.

    Скоро компилятор будет добавлять BING-bar в бинарники?

     
     
  • 2.7, Аноним (-), 16:16, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В HTTP и SMTP, очевидно, BING-bar'ы уже доба- ох черт!
     

  • 1.4, Аноним (-), 15:36, 30/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п.

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

     
     
  • 2.9, Аноним (-), 17:39, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Да можно, но дерзайте вполне себе нормальный язык, местами даже проще чем c++.
     
     
  • 3.15, Аноним (-), 18:11, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    можно будет использовать тогда когда Servo нормально на нём запилят, а то пока лидирует среди языков тока по скорости клепания версий.
     
     
  • 4.20, Анончик (?), 18:30, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не скажите, ещё он уделывает С++ и Fortran по скорости: https://benchmarksgame.alioth.debian.org/u64q/which-programs-are-fastest.html
     
     
  • 5.27, Ptomaine (?), 19:50, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Нефига он не быстрее С++! Как раз на графике видно, что С++ идёт сразу за С и только потом Rust и далее Ada 2005
     
     
  • 6.29, Аноним (-), 21:19, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В С++ из-за указателей часть оптимизаций со стороны компилятора применить не всегда возможно. У rust'а в этом смысле гораздо больше потенциал.
     
     
  • 7.36, Аноним (-), 22:59, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле потенциал, который не реализован? Ну как в C++ :)
     
  • 7.47, Вареник (?), 03:42, 01/11/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Подсунуть "потенциал" как реализованный и якобы доказанный бенчмарком факт - сильно...

    Так же как утверждения что Rust защищает от ошибок, типа переполнений, потом выясняется что только от элементарных, которые в C++ и так сразу ловятся статическими анализаторами.

     
     
  • 8.50, Roo2AT7d (ok), 09:44, 01/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А статические анализаторы прям всемогущи Загляни в чендж лог любого из них - ср... текст свёрнут, показать
     
  • 6.38, Программер (?), 11:23, 31/10/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    1) Там для Вас внизу есть сноска почему на графике RUST идет по скорости сразу же после C.
    http://portal.acm.org/citation.cfm?id=5666.5673

    2) по "нераскрытому потенциалу" скорости RUST на графиках:
    https://alioth.debian.org/tracker/?atid=413122&group_id=100815&func=browse
    почти месяц стоят в очереди новые версии програм для тестов дающие прибавку в скорости, в своих категориях, в пределах 20%.

     

  • 1.8, Аноним (-), 17:39, 30/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Странный язык. Синтаксис уродлив, продуктивность низкая, зато память безопасна. Похож на уродца с единственной перекачанной мышцой. Вспоминается Charger из L4D2
     
     
  • 2.10, Аноним (-), 17:43, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Странный язык. Синтаксис уродлив, продуктивность низкая, зато память безопасна.

    Вот у си или явы да уродливый синтаксис, а тут просто непривычный для большинства.  Многим нажеться синтаксис Erlang уродливым хотя это далеко не так и по лаконичности он уделает и си и яву, и даже питон.

     
     
  • 3.22, qwerty (??), 18:36, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Ваш Erlang тот ещё уродец, локаничность != красота. А вот Basic и Pascal да, это языки.
     
     
  • 4.41, Аноним (-), 14:58, 31/10/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    learn you a D for great good!
     
  • 2.21, ... (?), 18:32, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    "Синтаксис уродлив" - очень субъективно, люди и на brainfuck пишут.
    "продуктивность низкая" - в каких попугаях продуктивность измеряли?
    "память безопасна. Похож на уродца с единственной перекачанной мышцой." - если модель работы с памятью, это все что вы знаете о rust, то возможно вам не стоит отвлекаться от L4D2 ради написания своих отзывов о нем?
     
     
  • 3.42, Аноним (-), 15:02, 31/10/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >  люди и на brainfuck пишут

    И как, много написали?

    > не стоит отвлекаться от L4D2

    Маловато высокомерия!

     
  • 2.23, Ан (??), 18:40, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Это откуда у вас сведения что продуктивность низкая? Балабол?
     
  • 2.30, Аноним (-), 21:20, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле язык очень четкий и легкий
     
  • 2.31, Аноним (-), 21:25, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Основное назначение языка - писать такой код, который через статический анализ можно максимально оптимизировать и обезопасить. Да, это требует соблюдения дополнительного ряда правил со стороны программиста. Зато он может быть уверен что скомпилированное приложение никогда не упадет и будет по скорости превосходить реализацию на с++ (возможно не сейчас, а в будущем, по ряду оптимизаций g++ пока превосходит).
     
     
  • 3.34, Аноним (-), 22:37, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Упадет при выходе за границы типов, заодно и поломает что-нибудь, т.к. в релизе по умолчанию проверки отключены, а с ними медленно.
     
     
  • 4.35, Аноним (-), 22:40, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > поломает что-нибудь

    а затем
    > Упадет

     
  • 3.48, Вареник (?), 03:49, 01/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Зато он может быть уверен что
    > скомпилированное приложение никогда не упадет

    Ложная уверенность фанатов что новые безопасные грабли спасут от логических ошибок и сценариев фейла - только ухудшит качество.

     
     
  • 4.51, Aleks Revo (ok), 18:27, 01/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ты там как, уже хоть одну компилируемую программу написал? ))
     
  • 2.40, Crazy Alex (ok), 13:00, 31/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ладно синтаксис - но семантика у него точно уродливая, со всеми боксингами и пришибленной системой типов.
     
     
  • 3.46, Программер (?), 21:28, 31/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >>пришибленной системой типов

    в чем заключается "пришибленность системы типов" RUST?

     
     
  • 4.49, Crazy Alex (ok), 04:55, 01/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Да во всём. Хилые пользовательские типы. Неопределённость лейаута структуры. Вся шиза с прибитым к языку ownership. Отсутствие приличного метапрограммирования. Отсутствие приличного ООП. Правда, от глупостей вроде структурной системы типов ушли - и то хлеб.

    А в целом Rust больше всего похож на очередного кадавра a-la Scala, с попыткой функциональщину вырядить в приличные одежды, чтобы на неё не сразу плевались.

    Правильная система типов  - это D. Мощное метапрограммирование, разделение классов и структур, всё, что можно, делается в библиотеке (и, соответственно, пользователь может реализовать своё не хуже), "стандартное" ООП в полном объёме плюс свои плюшки вроде alias this (в том числе UFCS, который мозилловцы спёрли - и правильно, хорошая штука), и так далее, и  тому подобное.

     
     
  • 5.52, Aleks Revo (ok), 18:45, 01/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Хилые пользовательские типы.

    В чём заключается «хилость»? Что сложно сделать такого, что было бы просто в альтернативах?

    > Вся шиза с прибитым к языку ownership.

    Для желающих и умеющих стрелять себе в ногу — секция unsafe.

    И опять же, в свете Rust отсутствие в языках средств управления ownership - выглядит уже не меньшей шизой.

    > Отсутствие приличного ООП.

    Крупные и успешные проекты, написанные на неООП языках, являются прямым подтверждением того, что отсутствие ООП, прибитого к языку, — это не всегда минус.

    Ну и чередование фраз «приличный ООП» и «стандартный ООП» выдают почти религиозную субъективность, которая железобетонно подтверждается фразой про «функциональщину».

     
  • 5.56, Аноним (-), 11:21, 02/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Что для вас "Правильная система типов"?
    Зачем разделять классы и структуры, если всё это просто типы?
    Система типов Rust строже следует теориям (https://en.wikipedia.org/wiki/Substructural_type_system). Просто в Rust все абстракции подразумевают, что всё ещё есть память, которой надо управлять, и все абстракции вокруг неё и крутятся (потому что системное программирование).
     

  • 1.11, Манюнин гусь (?), 17:58, 30/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    *зачем* столько языков?
     
     
  • 2.25, Аноним (-), 19:09, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    АПВС? Ты и так ни одного не знаешь, теперь будешь не знать на один больше. :-)
     
  • 2.26, nc (ok), 19:26, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Затем чтобы ламерам жизнь медом не казалась.
     
  • 2.28, Ordu (ok), 20:02, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чтобы было из чего выбирать. И ведь, что характерно, сколько не придумали, а всё равно нет идеального. Я до сих пор не могу выбрать какой-нибудь язык, указать на него и сказать, что он лучший, и других мне не надо. У каждого языка какой-нибудь фатальный недостаток. А то и не один.
     
     
  • 3.55, freehck (ok), 09:57, 02/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да... Вот бы мощь лиспа совместить с выводом типов, как в ocaml/haskell. Никто, кстати, не смотрел ещё на typed/racket?
     
  • 2.32, Аноним (-), 21:26, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Аналогов Rust'а нет, не в той теме задаешь этот вопрос.
     

  • 1.12, Манюнин гусь (?), 18:03, 30/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    абсолютно всё можно написать на Фортране...
     
     
  • 2.14, pkdr (ok), 18:09, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    ...а фортран программу можно написать на любом языке программирования.
     
     
  • 3.16, Манюнин гусь (?), 18:13, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    накой их плодить?
     
     
  • 4.53, Aleks Revo (ok), 18:46, 01/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > накой их плодить?

    Дык, не плоди ))

     
  • 2.17, Tav (ok), 18:17, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Абсолютно всё можно написать на любом Тьюринг-полном языке, но «остерегайтесь трясин Тьюринга, в которых можно сделать всё, но ничего интересного нельзя сделать просто» (Алан Перлис).
     
  • 2.18, Аноним (-), 18:17, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если бы сообщество рулило, то к 2020 году ядро Линукс уже полностью было-бы переписано на питоне. Только Линус (временно) и Гугл (глобально) не дадут этому случится. Потому что Гугл всё-таки нанимает программистов НА РАБОТУ ЗА ДЕНЬГИ и предъявляет к ним требования при отборе.
     
     
  • 3.19, Манюнин гусь (?), 18:20, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    на каком из питонов?
    (рукалицо)
     
  • 3.33, Аноним (-), 21:29, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да, и грузилось бы ядрышко несколько суток и требовало бы несколько сот гигов оперативки, а после загрузки стабильно выдавало бы кернел паник. Пускай сообщество сначала разберется с менеджером приложений убунты.
     
     
  • 4.37, Аноним (-), 23:05, 30/10/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Да питон это не ОС, это база данных со вменяемым языком запросов :)
     
     
  • 5.39, Ordu (ok), 11:32, 31/10/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ещё что-нибудь расскажи. Очень интересно.
     

  • 1.43, Аноним (-), 16:30, 31/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > средства для высокого параллелизма выполнения заданий

    Да сколько можно это повторять? Там обычные потоки, как и в любом другом языке (кроме питона).

     
     
  • 2.45, Аноним (-), 18:46, 31/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Потоки то обычные, однако взаимодействуешь ты с ними под бдительным присмотром компилятора.
     

  • 1.44, Аноним (-), 18:20, 31/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Rust поддерживает смесь императивных процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование и модель акторов, а также обобщённое программирование и метапрограммирование, в статических и динамических стилях.

    Где там функциональное программирование и модель акторов?

     
     
  • 2.54, Aleks Revo (ok), 18:48, 01/11/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Rust поддерживает смесь императивных процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование и модель акторов, а также обобщённое программирование и метапрограммирование, в статических и динамических стилях.
    > Где там функциональное программирование и модель акторов?

    Спроси у Crazy Alex чуть выше - он тебе расскажет много тёплых слов ))

     
  • 2.57, Аноним (-), 11:28, 02/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Функциональное программирование уже встроено в язык. Просто запрети себе присваивание и нигде не используй mut.
    Модель акторов - в библиотеках.
     
     
  • 3.58, Аноним (-), 14:20, 02/11/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Системы типов как System F нет, которая присутствует в том же Ocaml, оптимизации хвостовой рекурсии нет. Модели акторов в стандартной библиотеке нет. "Вечносырой" компилятор.
    Так лучше C++ использовать.
     

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



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

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