The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск языка программирования Rust 1.40, opennews (??), 23-Дек-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


51. "Выпуск языка программирования Rust 1.40"  +6 +/
Сообщение от Аноним (51), 23-Дек-19, 13:42 
Во-первых, Rust - это не то чтобы улучшенный C++ (частично, конечно, это так). Скорее это прагматичный Haskell и Rust имеет более консистентный дизайн, чем плюсы. Язык избавлен от легаси и имеет довольно целостную экосистему, достаточно элегантно решая при этом множество проблем других языков.

Во-вторых, все плохие практики разработки на низкоуровневом языке в Rust отключены по умолчанию (мутабельность, прямое управление памятью и т.д.). Благодаря этому ты не можешь накосячить случайно, а там, где ты хочешь сделать что-то стремное, ты должен явно об этом сказать компилятору - дальше, если что-то пойдет не так, ты сам себе злобный Буратино. Более того, оказалось, что 99% процентов кода можно легко написать на безопасном подмножестве Rust, так еще и дизайн кода выйдет лучше просто за счет соблюдения ограничений safe-подмножества Rust. Кроме того, соблюдая ограничения, нацеленные на обеспечение безопасности работы с памятью, ты еще и бесплатно получаешь потокобезопасность, которую, насколько я знаю, другие существующие языки предоставить не могут.

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

Благодаря этим качествам в низкоуровневое программирования становится гораздо легче вкатиться новичкам (предполагаю, что это главная и тщательно скрываемая причина хейта к Rust - он подрывает элитарный флёр C/C++ разработчиков, ведь теперь даже любой JS-дев может при достаточных усилиях написать эффективный безопасный низкоуровневый код и не страдать).

Синтаксис не слишком чистый, с этим спорить не стану. Но это не то чтобы самое главное в языке. Мне плюсовый синтаксис подавно не нравится, уж лучше чистый C, чем плюсы.

Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

55. "Выпуск языка программирования Rust 1.40"  –1 +/
Сообщение от Аноним (5), 23-Дек-19, 13:50 
Сам себе противоречишь вначале синтаксис конфетка, в последнем абзаце констатация унылости
Ответить | Правка | Наверх | Cообщить модератору

69. "Выпуск языка программирования Rust 1.40"  +2 +/
Сообщение от Аноним (51), 23-Дек-19, 14:05 
Я скорее говорил о системе типов, чем о синтаксисе, когда перечислял достоинства. Не путайте одно с другим.
Ответить | Правка | Наверх | Cообщить модератору

84. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (5), 23-Дек-19, 14:18 
Классный дизайн и отсутсвие легаси это не про синтаксис? Почему тогда если можно было создать офигенный ЯП без легаси создали гомункула от которого кровь стынет в жилах?
Ответить | Правка | Наверх | Cообщить модератору

110. "Выпуск языка программирования Rust 1.40"  +1 +/
Сообщение от Аноним (51), 23-Дек-19, 14:44 
Вкусовщина, конечно, но про "кровь стынет в жилах" никак не соглашусь. Я лишь сказал, что синтаксис не слишком чистый. Тем не менее, он и не ужасный. Наоборот, есть много приятных деталей. Та же философия everything is expression зачастую позволяет решать некоторые задачи более элегантно.

Меня лично смущает лишь обилие спецсимволов ('!?$), но к этому привыкаешь, потому что они играют важную роль. Ну и зря они притянули как есть синтаксис дженериков с угловыми скобками - без type алиасов сложные выражения с дженериками читать сложно.

Ответить | Правка | Наверх | Cообщить модератору

119. "Выпуск языка программирования Rust 1.40"  +1 +/
Сообщение от Аноним (5), 23-Дек-19, 14:49 
Отсутствие нормального ООП не смущает?

Кровь стынет в жилах на полном серьезе, он же совершенно не читаем

Ответить | Правка | Наверх | Cообщить модератору

127. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (51), 23-Дек-19, 14:57 
ООП в расте реализовано в полной мере, кроме наследования типов. Разделение поведения производится посредством типажей (трейтов), которые можно имплементировать для разных типов или даже сделать generic blanket имплементацию для множества типов, удовлетворяющих определенным условиям. Наследования же нет совершенно намеренно. Причина - наследование многими считается антипаттерном, в том числе создателем Java:

https://www.javaworld.com/article/2073649/why-extends-is-evi...

> If you could do Java over again, what would you change?
> I'd leave out classes
> Кровь стынет в жилах на полном серьезе, он же совершенно не читаем

Ну, тогда язык не для вас. У меня ничего не стынет и все читаю. Зачем желчь попусту пускать?

Ответить | Правка | Наверх | Cообщить модератору

145. "Выпуск языка программирования Rust 1.40"  –1 +/
Сообщение от Аноним (5), 23-Дек-19, 15:16 
Как код повторно используете?
Ответить | Правка | Наверх | Cообщить модератору

153. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Andrey Mitrofanov_N0 (??), 23-Дек-19, 15:26 
> Как код повторно используете?

Сказали ж т-те:  трейты в крейтах!  Ч-чо не понятоно-то?77

Ответить | Правка | Наверх | Cообщить модератору

166. "Выпуск языка программирования Rust 1.40"  –1 +/
Сообщение от Аноним (5), 23-Дек-19, 15:32 
Я непонял, а полиформизм?
Ответить | Правка | Наверх | Cообщить модератору

180. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (51), 23-Дек-19, 15:50 
Полиморфизм на уровне трейтов. Причем, благодаря опциональному динамическому диспатчингу можно, например, даже создать массив из объектов разных типов, но имплементирующих указанные трейты.
Ответить | Правка | Наверх | Cообщить модератору

191. "Выпуск языка программирования Rust 1.40"  –1 +/
Сообщение от Аноним (5), 23-Дек-19, 16:13 
Класс мало было прототипов JavaScript которые таки перепилили в классы, теперь залупень в виде трейтов, боже мой куда мы катимся
Ответить | Правка | Наверх | Cообщить модератору

199. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Andrey Mitrofanov_N0 (??), 23-Дек-19, 16:36 
> Я непонял, а полиформизм?

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

Ответить | Правка | К родителю #166 | Наверх | Cообщить модератору

464. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (464), 26-Дек-19, 02:05 
Кхм. Полиморфизм в ООП -- это только одна из разновидностей полиморфизма, полиморфизм подтипов.
Ответить | Правка | К родителю #166 | Наверх | Cообщить модератору

63. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Урри (?), 23-Дек-19, 13:57 
> ведь теперь даже любой JS-дев может при достаточных усилиях написать эффективный безопасный низкоуровневый код и не страдать

А-ХА-ХА-ХА-ХА-ХА-ХА-ХА-ХА!

Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

70. "Выпуск языка программирования Rust 1.40"  +1 +/
Сообщение от Аноним (51), 23-Дек-19, 14:06 
Собственно, реакция, подтверждающая мои слова.
Ответить | Правка | Наверх | Cообщить модератору

77. "Выпуск языка программирования Rust 1.40"  +1 +/
Сообщение от Урри (?), 23-Дек-19, 14:11 
Собственно, реакция, подтверждающая мой громкий хохот.

Эффект Даннинга-Крюгера во всей своей красе.

Ответить | Правка | Наверх | Cообщить модератору

81. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (51), 23-Дек-19, 14:14 
Как скажете.
Ответить | Правка | Наверх | Cообщить модератору

111. "Выпуск языка программирования Rust 1.40"  +2 +/
Сообщение от Урри (?), 23-Дек-19, 14:44 
Да, в данном случае именно как скажу - ибо чтобы писать "эффективный безопасный низкоуровневый код" надо уметь программировать и понимать, что ты делаешь; а не иметь "правильный" инструмент.

Это как чтобы делать "эффективную и безопасную операцию на селезенке" надо иметь хирургическую практику, знать что такое селезенка, как она функционирует, как функционирует весь организм, что можно и что нельзя с ней делать.

Вы же сейчас открытым текстом заявили, что любой дворник может делать операции на селезенке, если ему дать умный скальпель, который не позволяет делать некоторые ошибки (например, не позволяет взять себя не той стороной).

Ответить | Правка | Наверх | Cообщить модератору

135. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (51), 23-Дек-19, 15:03 
Во-первых, я сказал "при достаточном количестве усилий". Для этого JS-деву придется хотя бы понять разницу между стеком и кучей. Но по крайней мере, он сможет это сделать не потратив годы на развитие навыка уклонения от подводных камней C/C++. Тем не менее, я совершенно не имел в виду, что код такого дева будет также хорош и эффективен, как код настоящего системного программиста, получившего неоднократное посттравматическое расстройство после работы с C/C++.

> Вы же сейчас открытым текстом заявили, что любой дворник может делать операции на селезенке, если ему дать умный скальпель, который не позволяет делать некоторые ошибки (например, не позволяет взять себя не той стороной).

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

Ответить | Правка | Наверх | Cообщить модератору

158. "Выпуск языка программирования Rust 1.40"  +3 +/
Сообщение от Урри (?), 23-Дек-19, 15:28 
> Для этого JS-деву придется хотя бы понять разницу между стеком и кучей.

Для того, чтобы научиться программировать JS-деву надо не "хотя бы понять разницу", а учиться программировать. И точка.


> не выкладывая огромные деньги медицинским картелям.

Вкупе с JS выше это утверждение выглядит довольно органично. Это ничего, что хирурги овладевают профессией очень долго и очень сложно?

Ответить | Правка | Наверх | Cообщить модератору

186. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (51), 23-Дек-19, 16:07 
> Для того, чтобы научиться программировать JS-деву надо не "хотя бы понять разницу", а учиться программировать.

Не спорю, только считаю, что с Rust у него это получится проще.

> Вкупе с JS выше это утверждение выглядит довольно органично.

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

Ответить | Правка | Наверх | Cообщить модератору

362. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Урри (?), 24-Дек-19, 13:41 
> Не спорю, только считаю, что с Rust у него это получится проще.

С питоном - проще. С С или Паскалем - тоже проще. С Растом - однозначно нет.

> А ваши рассуждения отдают банальным консерватизмом

Жаль, что у вас сложилось такое мнение. Я никакого повода этому не давал; более того, выше я кому-то писал что очень люблю C#, хотя писать на нем сейчас нечего.

Ответить | Правка | Наверх | Cообщить модератору

402. "Выпуск языка программирования Rust 1.40"  +1 +/
Сообщение от Аноним (51), 24-Дек-19, 22:02 
> С питоном - проще. С С или Паскалем - тоже проще. С Растом - однозначно нет.

Мы ведь говорили об эффективном по потреблению вычислительных ресурсов надежном коде. С Python, при всех его достоинствах, такой код написать нельзя. Python защитит от UB, но динамическая типизация подарит вам океан других сложностей, не говоря уж о производительности и потреблении памяти. С прост, но вообще ни от чего не защитит, а навык написания дойстойного кода на C требует немалой практики.

Rust же имеет далеко не единственный механизм обеспечения надежности кода, помимо borrow checker. В Rust нет null (уже минус огромный класс фатальных и поразительно часто встречающихся ошибок). В Rust нет исключений, неявно нарушающих поток управления и не дающих разработчику понять, что вообще может произойти, когда он вызовает ту или иную функцию. Благодаря концепции владения, RAII в Rust позволяет достигать великолепных гарантий. Например, вы можете быть уверены, что открытый вами файл будет закрыт в любом случае, где бы не завершилось его время жизни, даже если поток запаниковал - при этом от вас не требуется ничего. И это на самом деле только вершина айсберга.

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

Люди обращаются к простым высокоуровневым языкам не потому, что не могут осились C/C++, а потому, что не желают страдать и учиться ходить по канату над озером из лавы, жонглируя бананами. Из-за этого в мире на сегодняшний день целая гора ужасно неэффективного кода, потребляющего чудовищные ресурсы ради тривиальных задач. С другой стороны, с каждым годом в системном софте накапилвается все больше и больше ошибок и уязвимостей в силу дефектов проектирования C/C++. Rust имеет все возможности, чтобы это изменить: в мире станет больше низкоуровневого кода, а сам он станет надежнее. А в ответ только насмешки и мелочные поиски любых надуманных недостатков.

Ответить | Правка | Наверх | Cообщить модератору

189. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (189), 23-Дек-19, 16:12 
Дак и говорится о том, что теперь ему придётся потратить напорядок меньше усилий на обучение.

мимо

Ответить | Правка | К родителю #158 | Наверх | Cообщить модератору

137. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Тита_М (?), 23-Дек-19, 15:06 
Но согласись, что если тот же хирург будет "вооружён" специальным режущим прибором, который хотя бы компенсирует тремор, то эффективность операций повысится.
Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

405. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Илья (??), 24-Дек-19, 23:01 
> Это как чтобы делать "эффективную и безопасную операцию на селезенке" надо иметь хирургическую практику, знать что такое селезенка, как она функционирует, как функционирует весь организм, что можно и что нельзя с ней делать.

Я слаб в бестолковых сравнениях, Я правильно понял, что вы имели в виду следующее:

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

?

Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

122. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (5), 23-Дек-19, 14:52 
При всей высокоуровневости JavaScript, нужно признать что язык ацки упоротый в отличии от питона и руби, C++ от мира веба
Ответить | Правка | К родителю #63 | Наверх | Cообщить модератору

136. "Выпуск языка программирования Rust 1.40"  +1 +/
Сообщение от Урри (?), 23-Дек-19, 15:04 
Щас вас макаки захейтят. Это же единственный язык, который они знают, а значит объективно посмотреть на дизайн они в принципе не могут.

JavaScript действительно имеет худший дизайн из всего мейнстрима.

Ответить | Правка | Наверх | Cообщить модератору

170. "Выпуск языка программирования Rust 1.40"  –1 +/
Сообщение от Аноним (5), 23-Дек-19, 15:40 
То шо они могут на JS вывести alert ниче не значит, там API умом тронешься и тебе мультимедиа, и звук, и 2d, и 3d, и DOM, и websocket, и webworker, и столько всего шо смело заявляю JS быдлокодоустойчивый язык
Ответить | Правка | Наверх | Cообщить модератору

66. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (5), 23-Дек-19, 14:00 
Нравится синтаксис С но не нравится C++? Ну ты петросян, а ниче шо у них один синтаксис на двоих?
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

72. "Выпуск языка программирования Rust 1.40"  –1 +/
Сообщение от Аноним (51), 23-Дек-19, 14:07 
> уж лучше чистый C
> чистый

Вдумывайтесь, когда читаете, пожалуйста.

Ответить | Правка | Наверх | Cообщить модератору

86. "Выпуск языка программирования Rust 1.40"  +/
Сообщение от Аноним (5), 23-Дек-19, 14:19 
C99 грязный? или что тебя смущает?
Ответить | Правка | Наверх | Cообщить модератору

288. "Выпуск языка программирования Rust 1.40"  –2 +/
Сообщение от Ретроград (?), 23-Дек-19, 20:46 
На словах про консистентный дизайн подавился бутербродом. Не неси больше такой чуши, кто-нибудь и умереть может ненароком. На что уж C++ свалка, но ржа даже его переплюнула. На секундочку, плюсы стандартизируются комитетом профессионалов. У раста же нет вообще никакого ни стандарта, ни общего документа, ни-фи-га. Есть пачка противоречащих друг другу RFC, за которые хрен пойми кто когда-то проголосовал. В итоге мы имеем стабильный компилятор, в котором половина доступных фич доступны через фич-гейты, которых в стабильном компиляторе нет (хотя на самом деле они есть и используются, но как будто бы их там нет - само по себе ситуация идиотская и говорит об уровне "консистентного дизайна"). Да блин, язык системного программирования БЕЗ МОДЕЛИ ПАМЯТИ спустя десять лет (!!!) разработки - это очень, очень сильно.
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

317. "Выпуск языка программирования Rust 1.40"  +3 +/
Сообщение от Аноним (317), 23-Дек-19, 22:30 
> У раста же нет вообще никакого ни стандарта, ни общего документа, ни-фи-га

https://doc.rust-lang.org/reference/index.html

Язык C. Год рождения: 1972. Год появления первого официального стандарта: 1989. Год включения модели памяти в стандрат: 2011.

Язык C++. Год рождения: 1985. Год появления первого стандарта: 1998. Год включения модели памяти в стандрат: 2011.

Язык Rust. Год рождения (первая стабильная версия): 2015.

Основная причина, зачем С и C++ нужна была модель памяти состоит в том, что до ее появления многопточность в этих языках была попросту некорректной. В Rust даже без готовой модели памяти (над которой сейчас работают профессионалы с PhD) многопоточность находится на фундаментально ином уровне корректности, чем тот, какой когда-либо сможет позволить себе C или С++.

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

Извините, но выпад довольно дешевый.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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