URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 90712
[ Назад ]

Исходное сообщение
"Выпуск языка программирования Rust 0.7, развиваемого проекто..."

Отправлено opennews , 04-Июл-13 10:17 
Разработчики из проекта Mozilla представили (https://mail.mozilla.org/pipermail/rust-dev/2013-July/004667... релиз Rust 0.7 (http://www.rust-lang.org/), экспериментального языка программирования со строгой типизацией, сфокусированного на безопасной работе с памятью и обеспечению высокого параллелизма выполнения заданий (возможность порождать тысячи и даже миллионы подпроцессов). Исходные тексты проекта распространяются (https://github.com/mozilla/rust/) под лицензией MIT.  Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (http://www.opennet.me/opennews/art.shtml?num=36576), написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

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

С момента прошлого выпуска внесено около 2000 изменений. В отличие от прошлых выпусков, которые главным образом были нацелены на усовершенствование синтаксиса и элементов языка, при подготовке версии 0.7 основная работа была сфокусирована на расширении стандартной библиотеки функций. Из изменений (https://github.com/mozilla/rust/wiki/Doc-detailed-release-no... также отмечается новая реализация системы проверки заимствованных указателей и новый модуль итератор (std::iterator), заменивший собой  ruby-подобные внутренние итераторы, вместо которых теперь используются тип Iterator, напоминающий внешние итераторы в стиле  Java.


Базовые возможности языка:


-  Ориентация на безопасность:


-  Аккуратная работа с памятью - никаких нулевых и потерянных указателей. Автоматическое управление памятью;

-  Контроль изменчивости. Объекты неизменяемы (Immutable) по умолчанию;

-  Безопасность динамического выполнения: обработка сбоев, исключения, ведение лога, RAII / dtors;

-  Typestate: возможность определения сложных инвариантов, контролирующих структуры данных.

-  Ориентация на параллельность и эффективность кода:


-  Явный контроль памяти, контролирование схемы распределения памяти;

-  Крайне легкие задачи, формируемые в виде сопрограмм. Лёгкость в порождении тысяч и миллионов подпроцессов;

-  Итераторы стека (фактически лямбда-блоки без распределения кучи);

-  Статическая, нативная компиляция с созданием исполняемых файлов ELF, PE, Mach-o;

-  Прямой и простой интерфейс для кода на языке Си;

-  Ориентация на практическое применение:


-   Мультипарадигмальный, функциональный, императивно-процедурный, объектно-ориентированный, поддерживающий параллельную actor-модель;

-  Функции первого класса с биндингами;

-  Нет номинальных типов (http://en.wikipedia.org/wiki/Nominative_type_system) или иерархии типов;

-  Мультиплатформенный, поддерживается Windows, Linux, Mac OS X, *BSD;

-  Хранение строк в UTF8, разнообразие низкоуровневых типов;

-  Работает с существующими нативными наборами инструментов: GDB, Valgrind, Shark и т.д.;

-  Практическая возможность нарушения правил: возможность игнорирования правил безопасности, если чётко указано, когда и как их нарушать.


URL: https://mail.mozilla.org/pipermail/rust-dev/2013-July/004667...
Новость: http://www.opennet.me/opennews/art.shtml?num=37354


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Тот самый аноним , 04-Июл-13 10:17 
зачем?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 18:05 
Присоединяюсь к вопросу. В чём был фатальный недостаток других языков?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 05-Июл-13 04:33 
Вот опять троллишки прибежали, кушать хотят, ждут кто накормит

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 23:00 
Патаму что

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено beerseller , 04-Июл-13 10:24 
А биндинги для тулкитов будут? Или такого в планах нету и они будут изобретать свой с б. и ж.?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 12:56 
Пусть изобретут. Жалко чтоли?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Grammar Nazi , 04-Июл-13 13:14 
что ли, ёпта

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 12:59 
https://github.com/ktvoelker/GtkRust
только оно похоже сдохло от ненужности

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Kodir , 04-Июл-13 16:36 
В что в вашем сокращении прячется под "ж."? :))

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 20:17 
Судя по описанию, он хорошо подойдёт для написания логических движков с последующим прокидыванием API на C; сейчас так иногда поступают с C++, пишут внутри логику и прокидывают ориентированный на задачу API в сишный хедер.

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


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено анон , 04-Июл-13 10:33 
Отличная новость. Думаю через лет 5 будет популярным.

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено vitalif , 04-Июл-13 10:55 
Не знаю, язык разрывной по-моему.

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 11:10 
> язык Rust напоминает C++

А что еще должен напоминать нормальный, вменяемый язык программирования? Не Pascal/Delphi же, в самом деле.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено FedeX , 04-Июл-13 12:50 
у тролля какая-то попоболь по поводу Паскаля? это лечится

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 14:23 
Изоляцией Паскаля от людей?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Пингвино , 04-Июл-13 17:21 
Скорее изоляцией школьников от общества.

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 12:52 
делфи не язык программирования.
Да Паскаль

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 14:30 
> делфи не язык программирования.
> Да Паскаль

Косани Википедию, умник. "Delphi — императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal".


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 07-Июл-13 08:16 
он такой же язык программирования как и php

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 12:57 
Delphi не язык, это среда, а язык Object Pascal.
зы, паскаль отличный язык для обучения программированию и понимания строгой логики

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 14:32 
> Delphi не язык, это среда, а язык Object Pascal.
> зы, паскаль отличный язык для обучения программированию и понимания строгой логики

ага, и привязыванию к маздаю суровыми нитками


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено FedeX , 04-Июл-13 14:57 
А такие диалекты паскаля как Free Pascal, GNU Pascal, TNT Pascal, Oxygene etc.., позволяющие писать на паскале практически под любые платформы?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 15:26 
Это не диалект, а компиляторы

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено FedeX , 04-Июл-13 15:34 
это диалекты, для которых существуют соответствующие компиляторы.. согласен позволяют писать кроссплатформенно именно компиляторы

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Клыкастый , 04-Июл-13 15:08 
object pascal. реализован также в virtual pascal (os2,win32)
и free pascal (bsd,linux & others)
fpc кроме всех других преимуществ жив и развивается.
на паскакале (fpc) в частности написана толковая hedgewars.

"Выпуск языка программирования Rust 0.7, развиваемого..."
Отправлено arisu , 04-Июл-13 19:08 
> Delphi не язык, это среда, а язык Object Pascal.

нет, начиная с версии 7, емнип, Delphi — это и название языка тоже.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Crazy Alex , 04-Июл-13 15:11 
Врут, там сходство сичто внешнее.

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Пингвино , 04-Июл-13 17:22 
> А что еще должен напоминать нормальный, вменяемый язык программирования? Не Pascal/Delphi
> же, в самом деле.

Конечно же Lisp.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 11:45 
Аналог Go?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено некто , 04-Июл-13 16:14 
Go - для серверной части, а Rust разрабатывается в первую очередь для ресурсоемких десктоп приложений, вроде браузеров и игр. Сейчас эту нишу целиком и полностью занимает C++, а хотелось бы иметь альтернативу. По-моему, Rust - очень интересный проект у него есть всё, что нужно для счастья: строгая типизация, нативная компиляция, параллелизация, поддержка ФП, автоматическое управление памяти.

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено FedeX , 04-Июл-13 16:19 
> Go - для серверной части, а Rust разрабатывается в первую очередь для
> ресурсоемких десктоп приложений, вроде браузеров и игр. Сейчас эту нишу целиком
> и полностью занимает C++, а хотелось бы иметь альтернативу. По-моему, Rust
> - очень интересный проект у него есть всё, что нужно для
> счастья: строгая типизация, нативная компиляция, параллелизация, поддержка ФП, автоматическое
> управление памяти.

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


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено некто , 04-Июл-13 16:34 
> для ресурсоемких десктоп приложений ничто не мешает его использовать

http://benchmarksgame.alioth.debian.org/u32/benchmark.php?te...
По производительности Go медленнее Java.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено FedeX , 04-Июл-13 16:59 
>По производительности Go медленнее Java.

Слишком громкое заявление - там во многих тестах Java 7 и С/С++ рвет, так что не считается... И с Ржавчиной там тестов нет


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Пингвино , 04-Июл-13 17:24 
> Слишком громкое заявление - там во многих тестах Java 7 и С/С++
> рвет, так что не считается... И с Ржавчиной там тестов нет

Сударь, это происходит только на примитивных тестах. Как только начинаются тяжелые вычисления или активная работа с памятью, то Java оказаывается позади планеты


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено FedeX , 04-Июл-13 18:20 
>Сударь, это происходит только на примитивных тестах. Как только начинаются тяжелые вычисления или активная работа с памятью, то Java оказаывается позади планеты

Так и я о том же.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Dmitry77 , 05-Июл-13 00:15 
А что значит "тяжелые вычисления", которые по видимому в простых тестах не воспроизвести?

По поводу пямяти:
В есть возможность напрямую управлять памятью.
http://mishadoff.github.io/blog/java-magic-part-4-sun-dot-mi...
Если очень нужно - можно воспользовать.

Недостаток java в другом.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено некто , 04-Июл-13 18:35 
> там во многих тестах Java 7 и С/С++ рвет, так что не считается

Где рвет? Сам придумал? C++ проигрывает Java только на одном тесте и разница там незначитальная.

В тестах же Go vs Java/C++ разница очень заметная. У вас есть тесты говорящие об обратном?


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 05-Июл-13 05:34 
> По производительности Go медленнее Java.

Эти тесты почти никто не оптимизировал, в отличие от тестов для java. И да, вот пример, где го близок по производительности к C++: http://blog.golang.org/profiling-go-programs


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 07-Июл-13 08:20 
>> для ресурсоемких десктоп приложений ничто не мешает его использовать
> http://benchmarksgame.alioth.debian.org/u32/benchmark.php?te...
> По производительности Go медленнее Java.

перестаньте верить этому бенчмарку,он не то что далек от реальности, он просто насыщен ложью.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено FedeX , 04-Июл-13 16:16 
схожесть есть, но не большая

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено 123 , 04-Июл-13 20:39 
Go несомненно лучше

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 05-Июл-13 05:23 
К сожалению, го не может в генерики.

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено robux , 04-Июл-13 12:36 
К чёрту болтовню, покажите код! (с)

p.s. Пример кода, точнее. А я вам скажу - хороший это язык, или говно.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 13:31 
fn main() {
    let nums = [0, 1, 2, 3];
    let noms = ["Tim", "Eston", "Aaron", "Ben"];

    let mut evens = nums.iter().filter(|&x| x % 2 == 0);

    for evens.advance |&num| {
        do spawn {
            let msg = fmt!("%s says hello from a lightweight thread!",
                           noms[num]);
            println(msg);
        }
    }
}


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 13:32 
>По структуре язык Rust напоминает C++

И еще basic


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 14:34 
>>По структуре язык Rust напоминает C++
> И еще basic

Это как надо не владеть предметом, чтобы в сабже усмотреть похожесть на Basic.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Клыкастый , 04-Июл-13 15:10 
> Это как надо не владеть предметом, чтобы в сабже усмотреть похожесть на Basic.

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


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Aleks Revo , 04-Июл-13 23:19 
нужно просто не знать, что оператор let есть не только в бейсике. Просто больше в голову ничего не приходит, что здесь ещё можно найти бейсикоподобного? ))

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено robux , 04-Июл-13 17:31 
> fn main() {
> nums.iter().filter(|&x| x % 2 == 0);
> fmt!("%s says hello from a lightweight thread!", noms[num]);
> do spawn {
> }   }   }

Ребята, не хочется вас огорчать... но:
1) "fn".. пипец, чтоб не как у всех, а почему бы не "f"?
2) зачем эти пустые скобки?!
3) зачем точка с запятой в конце каждой строки?!
4) зачем этот повисший в воздухе "do"?!
5) зачем эти уродские фигурные скобки?!

Зачем всё это "великолепие" в высокоуровневом языке?
Еще бы строчки нумеровали как в бейсике и картина была бы полной! ))

Короче еще один С++ с блэкджеком и шлюхами...


"Выпуск языка программирования Rust 0.7, развиваемого..."
Отправлено arisu , 04-Июл-13 19:11 
ок, разрешаю тебе никогда не использовать rust. теперь ты можешь спать спокойно.

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Максгом , 04-Июл-13 12:39 
Чем оно отличается от "D"?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Прохожий , 04-Июл-13 13:25 
- А это лучше, чем крепдешин?
- Не знаю, не пил... (с) анек

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 13:36 
Идеологией. D - это системной программирование с сильным уклоном в обобщённое и мета-программирование, Rust - это программирование  высоко-нагруженых и многопоточных серверных приложений.

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено некто , 04-Июл-13 16:27 
> Rust - это программирование  высоко-нагруженых и многопоточных
> серверных приложений.

Вы что-то напутали, Rust создается как замена C++ для разработки движка браузера.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Crazy Alex , 04-Июл-13 15:38 
Общей направленностью на ФП, императивным он скорее прикидывается. Хитрозакрученной системой типов. В D она довольно проста для понимания.

Еще - рестриктивностью. В D просто "опасные" части языка выделены в отдельное подмножество, но в принципе если очень надо - можно сделать всё, в том числе явно поломать встроенные проверки (и это специально проектировалось так, чтобы это можно было легко изолировать и легко грепать). Rust обхода защит не дает в принципе.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 16:19 
>императивным он скорее прикидывается

Лолшто? Rust императивнее некуда.

>Хитрозакрученной системой типов

Ты о чем вообще? Система типов простая, как топор. Кайнды только есть еще.

>Rust обхода защит не дает в принципе.

Про unsafe почитый что ли.
На, погляди, как он не дает https://github.com/charliesome/rustboot


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Crazy Alex , 04-Июл-13 17:04 
Да, насчет функциональности я погорячился. Хотя душок сильный - вон, в мануале все возможные примеры - из функциональщины. Опять же - let, дефолтная иммутабельность, отсутсвие нормального (сишного) for...

Система типов - кроме кайндов есть еще виды боксинга, пачка разных указателей, рекурсивные типы (зачем, когда это обычными указателями делается?), зато нет нормальных классов и модификаторов видимости.

блоки unsafe - это хорошо, а толку? Поноценный unsafe cast где? Только ассемблер призывать, как в вашем примере?

А еще, кстати, очень не понравилось то, что они не любят общепринятые обозначения. Textual type вместо string, traits вместо templates и тому подобное.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 12:51 
от СИ там только скобочки, все остальное - унылое гавгно

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 14:35 
> от СИ там только скобочки, все остальное - унылое гавгно

+1


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено qwerty , 04-Июл-13 12:55 
Rust In Peace

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Doris , 04-Июл-13 14:34 
Чем оно лучше D? ( http://dlang.ru ) ?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Vernat , 04-Июл-13 16:02 
Тем что активно пилится? И тем что его подхватила большая компания?

"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 16:22 
> Чем оно лучше D? ( http://dlang.ru ) ?

Отсутствием дэнглин поинтеров, например.


"Выпуск языка программирования Rust 0.7, развиваемого проекто..."
Отправлено Аноним , 04-Июл-13 22:08 
Матрешка в матрешке, пожиратель озу