LINUX.ORG.RU

Rust 1.4

 ,


2

5

29 октября вышла очередная версия языка программирования Rust, разрабатываемого Mozilla совместно с сообществом.

Rust — язык общего назначения, компилируемый и мультипарадигменный, позиционируется как альтернатива С/С++.

Основные изменения:

  • ~1200 исправлений.
  • Поддержка двух ABI (Application Binary Interface), кроме привычного GNU toolchain добавлена поддержка 64-bit MSVC ABI.
  • Компилятор более не использует morestack.
  • Значительные изменения в стандартной библиотеке.
  • Улучшено поведение ассоциированных типов.

Следующий релиз намечен на 10 декабря 2015.

Релиз 1.4 на Github

>>> Подробности

Следующий релиз намечен на 10 декабря 2015.

Хахахахахахахахахаха :-)

anonymous ()

Что сломали на этот раз?

Deleted ()
Ответ на: комментарий от bitfroster

Тем временем вышел Nim 0.12. Может кто лучше про него, а не про эту ржавчину новость запилит?

Xroft ★★ ()
Ответ на: комментарий от Xroft

Сейчас уже есть достаточно просто и непросто хороших языков. Ни nim, ни Rust не несут ничего принципиально нового и как исследовательские проекты не годятся. Поэтому следует рассматривать их с точки зрения пользы. Для чего нужен Rust ясно --- на нём хотят переписать Мозиллу и в перспективе МозиллОС. Они считают, что смогут повысить качество браузера по сравнению с вариантом, написанным на крестах. Для чего нужен nim?

Vudod ★★★★★ ()
Последнее исправление: Vudod (всего исправлений: 2)
Ответ на: комментарий от Vudod

А какие языки несут что-то принципиально новое? Red?

Xroft ★★ ()

автокомплит уже работает?

umren ★★★★★ ()
Ответ на: комментарий от DarkEld3r

Вроде бы сначала они собирались чаще релизиться, а теперь сроки растягиваются.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от Xroft

Тем временем вышел Nim 0.12. Может кто лучше про него, а не про эту ржавчину новость запилит?

Чего с этим nim все так носятся? Разве это не поделие для хипстеров и маргиналов?

Gu4 ()
Ответ на: комментарий от anonymous

Правильно, это поделие самих этих хипстеров и маргиналов непонятно для кого.

anonymous ()
Ответ на: комментарий от Gu4

Чего с этим nim все так носятся? Разве это не поделие для хипстеров и маргиналов?

Потому что из Go получился кусок Go-вна, а потребность в быстром простом и компилируемом языке не исчезла.

Xroft ★★ ()

С thread::scoped таки проблему решили, как я понял, но из std всё равно убрали. А жаль. Вообще разрабы перегибают порой, (напр., выкинутый rand). А с select! всё тянут и тянут =(.

loyd ()
Ответ на: комментарий от Vudod

Для чего нужен Rust ясно --- на нём хотят переписать Мозиллу и в перспективе МозиллОС. Они считают, что смогут повысить качество браузера по сравнению с вариантом, написанным на крестах.

Смелые надежды на фоне ~1200 дефектов с версии 1.3 (т.е. давно стабильной) компилятора языка, который не такой навороченный как кресты.

UPD: сходил по ссылке:

About 1200 patches were landed in this release.

- бейте ОПа.

asaw ★★★★★ ()
Последнее исправление: asaw (всего исправлений: 1)
Ответ на: комментарий от Xroft

Чего с этим nim все так носятся? Разве это не поделие для хипстеров и маргиналов?

Потому что из Go получился кусок Go-вна, а потребность в быстром простом и компилируемом языке не исчезла.

Серьезно? Почему тогда на Go пишут работающие проекты (например, Docker), а nim дальше слухов о том, какой он великолепный не идет?

Gu4 ()
Ответ на: комментарий от Gu4

Потому что в Go вложили кучу бабла, и от него куча народу плюется, а Nim еще не дорос до версии 1.0, а на нем уже кучу всего написано. Опять смотрите проекты на github'e.

Думаю с релизом 1.0 он не плохо стартанет.

Xroft ★★ ()
Ответ на: комментарий от Vudod

Ни nim, ни Rust не несут ничего принципиально нового и как исследовательские проекты не годятся

Ну лайфтаймы, конечно, не в расте впервые появились, но он хотя бы «относительно известен». А значит и больше шансов повлиять на «мейнстрим».

DarkEld3r ★★★★★ ()
Ответ на: комментарий от Virtuos86

Вроде бы сначала они собирались чаще релизиться, а теперь сроки растягиваются.

А почему растягиваются, кстати? Или это не объясняется?

DarkEld3r ★★★★★ ()
Ответ на: комментарий от loyd

напр., выкинутый rand

В смысле его из стандартной библиотеки убрали и предлагают сторонние реализации использовать?

DarkEld3r ★★★★★ ()
Ответ на: комментарий от DarkEld3r

Угу. В стандартной библиотеке нет генератора псевдорандомных чисел ><

loyd ()

Rust — язык общего назначения, компилируемый и мультипарадигменный, позиционируется как альтернатива С/С++.

Неужели действительно альтернатива С/С++? Кто-то пробовал писать на нём что-то серьёзное? Какие впечатления?

bbk123 ★★★★★ ()
Ответ на: комментарий от Gu4

на Go пишут работающие проекты (например, Docker)

Пишут говно на говне. На чём его ещё писать?

anonymous ()
Ответ на: комментарий от Vudod

Rust
ничего принципиально нового

Он пытается нести прогрессивные идеи Cyclone'а в массы. Или ты предлагаешь вместо него использовать исследовательский и неподдерживаемый Cyclone?

anonymous ()
Ответ на: комментарий от Virtuos86

Раз в шесть недель, как и обещали. У тебя в школе что по математике?

anonymous ()
Ответ на: комментарий от bbk123

Из серьёзного всякие servo смотреть надо, ну и стандартную библиотеку. Сам написал обёртку над v4l2 и контроллер для гексапода. Из плюсов: компилятор очень строгий, поначалу писать сложно — постоянно ругается. Заставляет задумываться там, где в сях/крестах прокатывал подход «да ладно, никто так не сделает». Из минусов: много нужного сейчас unstable, например select!, ну и, конечно, экосистема пока слабовата.

loyd ()
Ответ на: комментарий от Xroft

Там всё равно, вроде, ничего особо интересного. Всякая косметика типа «miliseconds переименован в milliseconds». А срач по поводу можно устроить и здесь. Могу даже начать.

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

anonymous ()
Ответ на: комментарий от Xroft

Nim это какое-то недоразумение вообще. Go - это такой модный php / basic нового времени.

А Nim - это про что? С многословным синтаксисом, который криво натянули на слямзенную откуда только можно и без особой системы семантику.

На питон похоже, но во-первых, питон уже хоть как-то устоялся, во-вторых: нафига нужен ещё один питон?

Ну вот плакать же хочется: http://rosettacode.org/wiki/Sorting_algorithms/Quicksort#Nim

anonymous ()
Ответ на: комментарий от DarkEld3r

В Паскале и Фортране уже много лет динамически выделяемые переменные типа массивов и объектов, объявленные как локальные, автоматически удаляются при завершении функции/процедуры. И безо всякого сборщика мусора в его классическом понимании.

А потом приходят сишники и начинают рассказывать, как важно чистить за собою память.

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

И, наконец, приодят продвинутые писатели на Ржавчине и говорят нам: вот, смотрите, никакого явного сборщика, а память, гляди как ты, не течёт. А то мы не знали.

Vudod ★★★★★ ()
Ответ на: комментарий от Vudod

Да ты прям всем глаза раскрыл. Все срочно насилуем стек, одной процедуры хватит каждой домохозяйке.

«У нас в СССР нет еврейского вопроса. Евреи есть, а вопроса нет.» :)

Legioner ★★★★★ ()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Vudod

И, наконец, приодят продвинутые писатели на Ржавчине и говорят нам: вот, смотрите, никакого явного сборщика, а память, гляди как ты, не течёт

Я тебя, наверное, удивлю, но раст он не про то, что «память не течёт». Это вполне может быть даже в «безопасном коде». А про «memory safety».

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

DarkEld3r ★★★★★ ()
Ответ на: комментарий от Vudod

Ни nim, ни Rust не несут ничего принципиально нового и как исследовательские проекты не годятся.

Не знаю про Nim, но Rust - это как минимум отчасти исследовательский проект: https://github.com/rust-lang/rfcs/pull/1214

tailgunner ★★★★★ ()
Ответ на: комментарий от anonymous

Да хоть поперёк. А я не говорю хуже/лучше. Я спрашиваю: нафига козе баян?

Нафига ещё один язык, в котором все то же самое, что и в его многочисленных донорах-предшественниках, только теперь с «перламутровыми пуговицами».

Я понимаю, зачем нужен Go: быстрый в освоении, статический, с выводом типов, многопоточный - мечта, если есть армия взаимозаменяемых не шибко умных кодеров. Зачем нужен Idris, несмотря на «вам чо, хаскеля мало?!» Даже сабж - версии к третьей он, возможно, избавится от мусора и выкристализуется во что-то сильно хорошее, наконец станет альтернативой Си.

А вот это безликое недоразумение по имени Nim - вот оно зачем?

anonymous ()
Ответ на: комментарий от anonymous

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

Алгоритмом быстрой сортировки никого не удивить, так что я смотрю прежде всего на лаконичность. Смотрю ржавый код или код на Go - никаких претензий. Смотрю код на nim - как будто в паскаль вляпался (*).

Nim - синтаксическая помойка, при том, что ничего нового в семантике в нём нет.

* Кстати, не знал: «Initially, the Nim compiler was written in Pascal». Ну тоды понятно, чутьё не обманешь.

anonymous ()

Crystal

Crystal интересный проект. Взяли приятный синтаксис и идеи Руби, добавили строгую типизацию и компиляцию в native код. Сделано как LLVM backend. Получилась очень годная вещь. Тесты производительности показывают выигрыш с тем же Go на 30-50%.

https://github.com/manastech/crystal

anonymous ()
Ответ на: комментарий от Legioner

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

Vudod ★★★★★ ()
Ответ на: комментарий от DarkEld3r

Я тебя, наверное, удивлю, но раст он не про то, что «память не течёт». Это вполне может быть даже в «безопасном коде». А про «memory safety».

«memory safety» значит безопасность/сохранность памяти. Что, конечно, подразумевает также и необходимость контроля, что один объект не пытается залезть в область памяти другого. Но если не пользоваться напрямую указателями и арифметикою над ними, не ясно, как такое можно совершить.

Vudod ★★★★★ ()
Последнее исправление: Vudod (всего исправлений: 2)
Ответ на: комментарий от Xroft

Тем временем вышел Nim 0.12. Может кто лучше про него, а не про эту ржавчину новость запилит?

Этот мир и так переполнен ущербными ЯП, зачем увеличивать энтропию популяризуя еще один из многих?

foror ★★★ ()
Ответ на: комментарий от loyd

Угу. В стандартной библиотеке нет генератора псевдорандомных чисел ><

вот это жесть.. я на это кстати напоролся в Rust 1.1 еще, думал «внесут»

ну реально, если вдуматься это просто эпический фейл

umren ★★★★★ ()
Ответ на: комментарий от loyd

Я в курсе, просто негодую, что его в стдлибе нету и видимо будет нескоро, настолько коровый функционал, которого нет в стдлиб.

umren ★★★★★ ()
Ответ на: комментарий от anonymous

По математике всегда было «5».

Вроде

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

Virtuos86 ★★★★★ ()
Ответ на: комментарий от umren

Я в курсе, просто негодую, что его в стдлибе нету и видимо будет нескоро, настолько коровый функционал, которого нет в стдлиб.

А вам генератор для каких целей: для криптографии, медленный и «высококачественный», или для моделирования, быстрый и с возможностью воспроизведения последовательности? Вот сформулируйте требования и подключите самый нужный. Традиция включать в стандартные библиотеки языков генераторы по умолчанию, поощряющая их бездумное использование некомпетентными разработчиками, привела не к одной уязвимости, и ещё не к одной приведёт.

Если вам быстрый и воспроизводимый, то вихря Мерсенна существет 100500 реализаций. Если для криптографический — надёжно сгенерировать качественную последовательность в пространстве пользователя всё равно нельзя, используйте /dev/random.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.