Rust как замена C++
От: Shmj Ниоткуда  
Дата: 08.12.19 13:14
Оценка: -2 :))) :)
Стоит ли обратить внимание на Rust?

Пророчат что это язык для написания безбажных ядер операционных систем и т.д.
Re: Rust как замена C++
От: Михaил  
Дата: 08.12.19 14:15
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Стоит ли обратить внимание на Rust?


S>Пророчат что это язык для написания безбажных ядер операционных систем и т.д.


Имхо, в ближайшие лет 5-10 все как было на C/C++, так и останется. Пока какие-то компании не начнут вливать деньги в популяризацию (как эппл делает со свифтом и гугл с котлином, например).
Кстати, любопытно, есть ли в природе серьезные low level проекты на расте? Встречал его только в файрфоксе.
Re: Rust как замена C++
От: msorc Грузия  
Дата: 08.12.19 15:32
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Стоит ли обратить внимание на Rust?


А ты с какой целью интересуешься? Чего хочешь получить в итоге, обратив внимание на Rust?

S>Пророчат что это язык для написания безбажных ядер операционных систем и т.д.


Кто? Где? Ссылки.
Re[2]: Rust как замена C++
От: L.K. Марс  
Дата: 08.12.19 16:02
Оценка: +1 :)
M>А ты с какой целью интересуешься? Чего хочешь получить в итоге, обратив внимание на Rust?

Написать новую серьёзную ОС
Автор: Shmj
Дата: 12.09.19
.
Re: Rust как замена C++
От: dsorokin Россия  
Дата: 09.12.19 03:17
Оценка: 2 (2) +3
Здравствуйте, Shmj, Вы писали:

S>Стоит ли обратить внимание на Rust?


Язык определенно того стоит, даже если ты не будешь никогда писать на нем.

Rust — это такая любопытная смесь языков С и Haskell. Одновременно системный язык без сборщика мусора, но где довольно много общих вещей с Haskell. Взять те же классы типов, которые в Rust более известны как трейты. Классы типов — это, вообще, один из трех основных столпов языка Haskell (наряду с ФП и очень простым базовым языком, к которому сводится сам Haskell). Классы типов красной чертой проходят по всему дизайну этих обоих языков. В то же время, в Rust нет сборщика мусора, и в текущей реализации довольно простое и эффективное представление объектов в памяти, т.е. уровень языка позволяет писать системные вещи.

Где Rust может быть эффективнее C++ при исполнении кода? В своих экспериментах я обнаружил прелюбопытную вещь. В Rust крайне эффективно реализовано перемещение объектов, которое обычно сводится к простому побитовому копированию небольшого заголовка (handle) объекта из стека, это часто всего несколько байт. Такое быстрое перемещение особенно становится важным, если вы начнете широко использовать комбинаторы, например, для асинхронного программирования. Комбинаторы — это по сути вложенные функции. И там как раз важно, чтобы быстро работало перемещение объектов при создании новых замыканий.

И меня, честно говоря, удивило, что в таких задачах Rust может по скорости исполнения кода дать фору такому маститому и титулованному жеребцу как C++. Это объясняется тем, что семантика перемещения в C++, мягко говоря, сложнее, и там есть нетривиальные моменты, связанные с тем, что код в C++ должен по возможности быть безопасным относительно исключений. Поэтому даже банальное перемещение объекта по конструктору, который не помечен как noexcept, будет много дороже, чем перемещение объекта в замыкание в языке Rust. Просто в Rust исключений, кроме паники, по сути больше и нет. И в Rust здесь не платят за то, что не используют. Более того, Rust не вызывает деструктор для уже перемещенного объекта, т.е. не выполняет лишнюю работу, которую делает C++, для которого еще нужно "обнулить" перемещенный объект, чтобы для такого объекта отработал деструктор.

Я привел лишь частный пример. Безусловно можно найти вещи, которые будут эффективнее и проще в С++, но далеко не все так однозначно, как обычно бывает в жизни.

S>Пророчат что это язык для написания безбажных ядер операционных систем и т.д.


Безбажных?! Идиллия. Такого не бывает, и никогда не будет. Главный источник ошибок в программе — это сам человек, его логические ошибки, взаимное недопонимание, незнание и прочие вещи, хотя от каких-то ошибок язык и может спасать.
Re: Rust как замена C++
От: varenikAA  
Дата: 09.12.19 03:40
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Стоит ли обратить внимание на Rust?


S>Пророчат что это язык для написания безбажных ядер операционных систем и т.д.


Пока (уже два года) наблюдаю мелкие баги в ФФ. Не боги баги дебажат.
Что принципиально нового в расте? усложнение синтакса в надежде защититься от случайного кирпича на голову?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Rust как замена C++
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 09.12.19 03:45
Оценка:
Здравствуйте, dsorokin, Вы писали:

D>Язык определенно того стоит, даже если ты не будешь никогда писать на нем.

D>Rust — это такая любопытная смесь языков С и Haskell.

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

D>И меня, честно говоря, удивило, что в таких задачах Rust может по скорости исполнения кода дать фору такому маститому и титулованному жеребцу как C++.


Разве что на синтетических примерах, но на "фору" это никак не тянет

По большому счету оба языка хреново сочетаются с современными трендами разработки, когда надо и быстро и с разумным достаточным качеством.
Отредактировано 09.12.2019 5:15 kaa.python . Предыдущая версия . Еще …
Отредактировано 09.12.2019 5:10 kaa.python . Предыдущая версия .
Отредактировано 09.12.2019 5:09 kaa.python . Предыдущая версия .
Отредактировано 09.12.2019 5:08 kaa.python . Предыдущая версия .
Re: Rust как замена C++
От: Kolesiki  
Дата: 09.12.19 04:49
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Стоит ли обратить внимание на Rust?


Я б не стал. Мне интуиция подсказывает! Первый взгляд на язык должен восхищать. А когда я взглянул на Ржавого, недоумённо почесал затылок и подумал — нафиг надо?...

S>Пророчат что это язык для написания безбажных ядер операционных систем и т.д.


Так пророчит кто — промоутеры? Из тех, кто реально пишет "безбажные ОС", хочет кто-нть эту Ржу?
Re[3]: Rust как замена C++
От: dsorokin Россия  
Дата: 09.12.19 07:43
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, dsorokin, Вы писали:


D>>И меня, честно говоря, удивило, что в таких задачах Rust может по скорости исполнения кода дать фору такому маститому и титулованному жеребцу как C++.


KP>Разве что на синтетических примерах, но на "фору" это никак не тянет


Я имел в виду вполне конкретный тип задач. Среднестатистическому программисту они известны больше под видом асинхронных вычислений, но далеко ими не исчерпываются. Скажем, вычисление std::future из C++ и вычисление Future из Rust. Пример комбинатора в C++: then. Его более близкая к первоосновам форма в Rust: and_then.

Это все вокруг монад. Вот, на этих вполне конкретных вещах Rust имеет преимущество.
Re[2]: Rust как замена C++
От: elmal  
Дата: 09.12.19 09:15
Оценка: +2
Здравствуйте, Kolesiki, Вы писали:

K>Я б не стал. Мне интуиция подсказывает! Первый взгляд на язык должен восхищать. А когда я взглянул на Ржавого, недоумённо почесал затылок и подумал — нафиг надо?...

А что не так с первым взглядом? Нормальная модульность и система сборки сразу, zero costs abstractions, автоматические проверки косяков при компиляции, отсутствие сборщика мусора и низкоуровневость, вменяемый синтаксис, пофикшен косяк с null. По мне — просто охрененный язык там, где нужна низкоуровневость, где максимальные требования к быстродействию, объему памяти и т.д.
Re: Rust как замена C++
От: dsorokin Россия  
Дата: 09.12.19 11:32
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Стоит ли обратить внимание на Rust?


Отвечая на главный вопрос, заданный в теме, нет, лично для меня Rust заменить не может C++ по той простой причине, что Rust не поддерживается на Эльбрусах. Show stopper как он есть.
Re[3]: Rust как замена C++
От: Anton Batenev Россия https://github.com/abbat
Дата: 09.12.19 20:45
Оценка: +1 -2
Здравствуйте, elmal, Вы писали:

e> А что не так с первым взглядом?


На первый взгляд этот язык пытается решать несуществующую проблему в ущерб реальным инженерным задачам.
github.com/abbat
Re: Rust как замена C++
От: tehKosh  
Дата: 14.12.19 00:15
Оценка:
В 2009 году, когда бравые ребята из мозиллы начали переписывать свой браузер на раст, их браузер занимал >20% рынка. Сегодня firefox занимает <10% рынка.
Кстати, тот же маневр они проворачивают уже не в первый раз: в 90е точно так же решили переписать нетскейп навигатов заново, но при этом вообще потеряли рынок. С 80% процентов упали до нескольких процентов.
Re: Rust как замена C++
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 14.12.19 10:43
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Пророчат что это язык для написания безбажных ядер операционных систем и т.д.


Переписывать всё с нуля очень дорого, а смысла никакого. Я точно так же могу утверждать, что в ближайшем будущем все ядра ОС, драйвера, прикладные приложения будут переписаны на Brainfuck, у него великое будущее. Но в реальности лидеров вряд ли удастся потеснить, они будут пребывать на вершине в течении десятилетий.
Re[3]: Rust как замена C++
От: Mamut Швеция http://dmitriid.com
Дата: 14.12.19 11:03
Оценка:
E>А что не так с первым взглядом? Нормальная модульность

Вот что-что, а модульность там ненормальная.

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


dmitriid.comGitHubLinkedIn
Re: Rust как замена C++
От: l33thaxor  
Дата: 15.12.19 05:59
Оценка: -2
Здравствуйте, Shmj, Вы писали:

На Раст сейчас валят хипстеры с Руби. Они пишут на Расте свои веб фреймвоки, потому что это единственное, что они умеют делать. Квалификация этих хипстеров, как известно, немногим выше ПХП и Джава скриптеров. Системщики на Раст не особо большое внимание обращают. Поэтому будущее у Раста в системном программировании под вопросом. Ну, а для веба он тоже на самом деле не годится. Сильно низкоуровневый. Ни в ту, ни в другую нишу он не вписывается.
Re[4]: Rust как замена C++
От: DarkEld3r  
Дата: 16.12.19 16:45
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Вместо того, чтобы определять модуль в самом файле, модуль определяется, а потом импортируется в вызывающем файле.

Если бы файл требовалось начинать чем-то вроде Module name, то было бы лучше?

Я всё-таки считаю, что модуль определяется в файле, просто неявно. А mod name этот модуль импортирует, но не определяет.
Re[4]: Rust как замена C++
От: elmal  
Дата: 16.12.19 17:00
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Вот что-что, а модульность там ненормальная.

Для меня нормальная . Как в современной Java .
Re[5]: Rust как замена C++
От: Mamut Швеция http://dmitriid.com
Дата: 16.12.19 17:23
Оценка:
DE>Я всё-таки считаю, что модуль определяется в файле, просто неявно. А mod name этот модуль импортирует, но не определяет.

Зачем нужен mod name тогда? import "название файла" и вперед.


dmitriid.comGitHubLinkedIn
Re: Rust как замена C++
От: techgl  
Дата: 16.12.19 18:55
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Стоит ли обратить внимание на Rust?


S>Пророчат что это язык для написания безбажных ядер операционных систем и т.д.


Вот интересное сравнение производительности, где Rust обходит C++ на нескольких (не всех) задачах. Интересен он тем, что во-первых, используются неэквивалентные подходы (зачем в первой задаче OpenMP, например), во-вторых код на Rust использует unsafe, что как бы намекает. Думаю, если правильно переписать решения на C++, то порядок будет наведен.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.