Посоветуйте пж, не могу определиться: Что лучше начать изучать в 2023, Rust или С++?
Мне для игр, в том числе свои движки поделывать, и с ML баловаться.
Сложноть изучения не имеет значения. Просто как я понимаю, Rust ещё сыроватый и развивается не сказать что очень быстро, а что будет с С++ в дальнейшем хз, вроде как от него потихоньку отказываются или нет?
C/C++
Rust или C++?
Мне ещё 10 лет назад где-то один спец из сервисной службы провайдера говорил, что C++ -- мёртвый язык. А на нём сих пор программы пишут.
Серый Шулык
Есть старые программы, то и поддерживать кто-то должен. Что там си++ , если даже на си поддерживают. И от того, что старый, не значит что он такой тормозной как современные.
вообще не понимаю, кто в здравом уме может выбрать rust.
это специальный язык для пожилых си-программистов, страдающих деменцией.
то есть, им работу с указателями доверить уже нельзя, потому что они сами не в состоянии контролировать свою память, и вообще микроменеджментом заниматься здоровье не позволяет, но как-то надо на жизнь зарабатывать - вот к ним и приставляют занудную няньку, которая следит, чтобы они ещё на этапе разработки вдоволь настрелялись себе в ногу...
это специальный язык для пожилых си-программистов, страдающих деменцией.
то есть, им работу с указателями доверить уже нельзя, потому что они сами не в состоянии контролировать свою память, и вообще микроменеджментом заниматься здоровье не позволяет, но как-то надо на жизнь зарабатывать - вот к ним и приставляют занудную няньку, которая следит, чтобы они ещё на этапе разработки вдоволь настрелялись себе в ногу...
Александр Танасевский
Тяжелый случай. И ведь кто-то может поверить в этот бред.
Баходур Максудов
Реально, очень тяжелый случай, такого откровенного бреда про Rust я еще не слышал.
Изучай азы ассемблера и азы си, а си++ углубленней, тогда уже почти любой язык не так тебе будет страшен. Можно начать вообще с автомата тьюринга допустим https://kpolyakov.spb.ru/prog/turing.htm
Сложность не имеет значения? Уважаемый, вы вообще не представляете, о чем говорите. Rust - это очень интересный язык, но программировать на нем порою бывает необычайно сложно. Начинать его учить как первый язык, на мой взгляд, - это далеко не лучшая идея. Ибо как только вы чуть-чуть отойдете от уровня ХэлоВорда, в гости заглянут Borrow Check и Контроль Времени Жизни. Порою эти вещи выносят мозг с эффективностью, сопоставимой с дробовиком 12 калибра. Приведу наглядный пример: есть такая штука, как связанный список. В простейшем случае его элемент - это какая-то структура, содержащая в себе данные и указатель на следующую такую структуру. Чтобы это работало на C/C++, достаточно написать что-то вроде
Начните изучение с Си, потом переходите к Си++ и только потом, когда немного научитесь этим языкам, пытайтесь подступиться к Rust.
struct Node
{
int data; // Данные, которые мы храним в элементе связанного списка
struct Node* next; // Указатель на следующий элемент
};
На Rust у нас есть две возможности: - Написать примерно то же самое и засунуть всю обработку в unsafe блок
- Если нет желания использовать unsafe блок, то определение узла превратится во что-то типа
use std::rc::Rc;
use std::rc::Weak;
use std::cell::RefCell;
// Введем новый тип данных Link для описания выделенного в куче узла
// чтобы сократить писанину. Rc дает возможость иметь несколько ссылок на
// данные, но все они неизменяемые, а RefCell позволяет внутри себя иметь
// возможность данные изменить
type Link = Rc::;
// Новый тип данных WeakLink нужен для создания и работы с невладеющими
// ссылками на узлы связанного списка
type WeakLink = Weak::;
//-------------------------------------------------------------------
// Элемент (узел) связанного списка
//-------------------------------------------------------------------
struct Node
{
value: T,
next : Option::,
}
//-------------------------------------------------------------------
Обратите внимание на тип Link - чтобы обойти ряд ограничений, которые Rust накладывает на программиста, приходится использовать подобные, весьма нетривиальные конструкции. Это плата за гарантированную безопасность.Начните изучение с Си, потом переходите к Си++ и только потом, когда немного научитесь этим языкам, пытайтесь подступиться к Rust.
Баходур Максудов
Убило, спасибо. Вообще, касаемо нетривиальных конструкций, у сообщества Rust этот мем назван как "Fight The Borrow Checker", что меня иногда забавляет, хоть я и знаю по себе, что это необходимо для более безопасного кода. И касаемо борьбы с заимствованием - еще никогда я не видел более четкого описания этого процесса в виде "дробовика 12 калибра", - я возьму себе на вооружение :)
...в гости заглянут Borrow Check и Контроль Времени Жизни. Порою эти вещи выносят мозг с эффективностью, сопоставимой с дробовиком 12 калибра
Убило, спасибо. Вообще, касаемо нетривиальных конструкций, у сообщества Rust этот мем назван как "Fight The Borrow Checker", что меня иногда забавляет, хоть я и знаю по себе, что это необходимо для более безопасного кода. И касаемо борьбы с заимствованием - еще никогда я не видел более четкого описания этого процесса в виде "дробовика 12 калибра", - я возьму себе на вооружение :)
Похожие вопросы
- Rust или C++?
- Какие из этих книг вы посоветуете прочесть в первую очередь чтобы повысить свои знания в C/C++?
- Задача по C++
- День добрый \[-_-]/ вопрос по вузовскому программированию на си(C)
- Программирование C++ ПРОШУ ПОМОЧЬ!
- Почему создатель Linux Линус Торвальдс называет C++ ужасным языком, а ядро ОС Linux пишется только на Си?
- Задача на C++ (Остатки).
- Сделать перестановку чисел с помощью функции в C++, но у меня получается чепуха
- Задача по c++ на векторы. Часть программы написана. Нужны правки.
- Проблема с указателем в C++