The OpenNET Project / Index page

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



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

Оглавление

Выпуск языка программирования Rust 1.54, opennews (??), 29-Июл-21, (0) [смотреть все]

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


129. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:22 
Если постараться, на Rust можно написать код который будет куда хуже того что вы привели. Много кто из новичков жалуется не неочевидность trait-ов. Библиотеки, в том числе стандартная, имеет тенденцию раскрывать потенциал структур через trait-ы, например используя `std::fs::File` нужно ещё `std::io::{Read, Write}` подключить. Обращу ваше внимание что они даже не в одном модуле находятся. И эта же ситуация возникает повсеместно во всех crate-ах, это уложняет понимание библитек без хорошой документации. В целом, ко всему есть доступ, но путаница всё равно возникает.

Ещё можно критиковать Rust за сырость и относительно частые deprecation. На С++ можно использовать последнюю версию GCC\Clang и просто ставить `std=c++11` или какую либо ещё версию, обновляется ли rustc\cargo если ставишь override на старую версию не знаю. Тот же С++ с нами уже очень давно, много проблем уже обросли костылями.

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

325. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Ordu (ok), 30-Июл-21, 13:25 
> Обращу ваше внимание что они даже не в одном модуле находятся.

В генерируемой документации есть ссылки на все трейты типа. Ты можешь вниз прокрутить, или в боковой панели посмотреть. И им не надо находиться здесь: что такое трейт Read, Write, я знаю и так. Когда используешь крейт постоянно (например std) все основные трейты его знаешь, иногда реализуешь их не консультируясь с документацией на тему того, как там в точности выглядит декларация методов. В std таких грядка -- Read, Write, Iterator, PartialEq, PartialOrd ... Их запоминаешь со временем примерно так же, как в C++ запоминаешь как перегружать те или иные операторы, и пишешь заголовок int operator+(чётотам) не консультируясь с документацией.

> это уложняет понимание библитек без хорошой документации.

Да. Но без документации разобраться сложно с библитекой на любом языке. В расте же есть гарантия документации -- может быть плохой документации, если разработчик не озаботился, но по-крайней мере иерархический html, с модулями, типами, с трейтами типов, и всякой прочей информацией ты получишь. Этим может заниматься IDE, наверное, выводя всю информацию о типах, но я пользуюсь сгенерённой документацией. Потому как не нашёл способ сделать всё это удобно в emacs -- всплывающие кстати и некстати подсказки я пробовал, мне они мешают. Может можно сделать, чтобы отдельная панель была для отображения структурированной информации, но emacs не дружит с мышью, её поддержка сделана через привычное для emacs'а место костылями, поэтому я предпочитаю браузер.

> Библиотеки, в том числе стандартная, имеет тенденцию раскрывать потенциал структур через trait-ы, например используя `std::fs::File` нужно ещё `std::io::{Read, Write}` подключить.

Да, это раздражает иногда. В качестве обходного манёвра библиотеки часто предоставляют модуль prelude, который можно импортировать все трейты сразу. Хотя я предпочитаю без этого: когда вручную импортируешь трейт за трейтом, особенно из новой для себя библиотеки, лучше понимаешь происходящее. Потом, когда происходящее стало понятно, можно и prelude импортировать.

> На С++ можно использовать последнюю версию GCC\Clang и просто ставить `std=c++11` или какую либо ещё версию, обновляется ли rustc\cargo если ставишь override на старую версию не знаю.

В расте есть эдишны. Edition 2015, Edition 2018, и тут на подходе Edition 2021. Ты можешь использовать распоследний компилятор с любым эдишном.

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

512. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 31-Июл-21, 11:01 
Не знаю, может меня не так поняли, я Rust пользуюсь, относительно, давно. Критика была не вида "в Rust нету .." а, скорее, "хотелось бы чтобы было ..". Я понимаю, что к Rust можно привыкнуть, или, как минимум, попытаться. Да и то что я им пользуюсь никак не умоляет факт наличия косяков, ну прям совсем.
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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