Повестка по ЯП - Rust предпочитать C++
От: Shmj Ниоткуда  
Дата: 26.07.24 16:11
Оценка:
Вот, ранее волю мирового правительства можно было узнавать через Wiki, том числе и русскоязычных статей. Вроде нейтрально должно быть, но на самом деле нет.

Сейчас намного удобнее слушаться белых господ — можно напрямую спросить у GPT.

Вот, по ЯП — прямо сказали не писать на C++ а писать на Rust. И если у GPT что-то спросить системное без указания языка — она выдаст обязательно код на Rust

Притом такая байка продвигается, что Rust делает разрабов счастливыми. Мол все просто и удобно, не то что в дедовском C++. Но по факту вы верите в это? Макросы ужасные, нет простого и понятного ООП. Умные указатели уже давно точно такие есть и в C++ а проверка владения работает топорно.
=сначала спроси у GPT=
Re: Повестка по ЯП - Rust предпочитать C++
От: sergii.p  
Дата: 26.07.24 16:36
Оценка:
Здравствуйте, Shmj, Вы писали:

так, кто у нас теперь будет за rg45?

S>Притом такая байка продвигается, что Rust делает разрабов счастливыми. Мол все просто и удобно, не то что в дедовском C++. Но по факту вы верите в это?


отчего бы не верить? Верю.

S>Макросы ужасные,


ну и не лезте туда. template в C++ тоже мягко говоря не сахар, ну так он 95% разработчиков не нужен.

S>нет простого и понятного ООП.


ООП не нужен

S>Умные указатели уже давно точно такие есть и в C++ а проверка владения работает топорно.


примеры в студию, когда это проверка владения работает топорно.
Re: Повестка по ЯП - Rust предпочитать C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.07.24 16:43
Оценка: +2 :))
Здравствуйте, Shmj, Вы писали:

S>Сейчас намного удобнее слушаться белых господ — можно напрямую спросить у GPT.


Надо же, с тобой мировое правительство прям разговаривает. Давно это с тобой?

S>Притом такая байка продвигается, что Rust делает разрабов счастливыми. Мол все просто и удобно, не то что в дедовском C++. Но по факту вы верите в это? Макросы ужасные, нет простого и понятного ООП. Умные указатели уже давно точно такие есть и в C++ а проверка владения работает топорно.


Я бы рискнул предположить, в нонешние времена язык делает его экосистема. У C++ она ужасная.
Re[2]: Повестка по ЯП - Rust предпочитать C++
От: LaptevVV Россия  
Дата: 26.07.24 16:53
Оценка:
Pzz>Я бы рискнул предположить, в нонешние времена язык делает его экосистема. У C++ она ужасная.
Более того, я б сказал что ее вообще нет!
Есть набор отдельных инструментов сделанный разными людьми.
То ли дело Go — практически из коробки! Это меня просто впечатлило в свое время.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Повестка по ЯП - Rust предпочитать C++
От: vsb Казахстан  
Дата: 26.07.24 16:55
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Притом такая байка продвигается, что Rust делает разрабов счастливыми. Мол все просто и удобно, не то что в дедовском C++. Но по факту вы верите в это? Макросы ужасные, нет простого и понятного ООП. Умные указатели уже давно точно такие есть и в C++ а проверка владения работает топорно.


Просто и удобно в C. Rust это для тех, кому надо код писать без багов. Лично у меня такой потребности нет, мне и с багами нормально. C++ просто не нужен.
Отредактировано 26.07.2024 16:55 vsb . Предыдущая версия .
Re[3]: Повестка по ЯП - Rust предпочитать C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.07.24 16:59
Оценка: +2
Здравствуйте, LaptevVV, Вы писали:

Pzz>>Я бы рискнул предположить, в нонешние времена язык делает его экосистема. У C++ она ужасная.

LVV>Более того, я б сказал что ее вообще нет!

Да, потому что это — архаичная экосистема Си родом из 70-х. Когда основным способом распостранения софтвария было "коллега поделился лентой с архивами".

Желающие могут попробовать протащить в linux свою программу, которая зависит от библиотеки, которая не входит в большую часть дистрибутивов линуха. Задолбаетесь, товарищи.

LVV>Есть набор отдельных инструментов сделанный разными людьми.

LVV>То ли дело Go — практически из коробки! Это меня просто впечатлило в свое время.

У Go настоящий парсер настоящего языка входит в стандартную библиотеку. Ровно тот, которым пользуется компилятор. Поэтому всякая мелкая финтифлюшка, которая делает что-нибудь полезне с исходниками, реально понимает, что в них написано. А не пытается угадать с помощью этих, регулярных выражений.
Re[2]: Повестка по ЯП - Rust предпочитать C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.07.24 17:01
Оценка:
Здравствуйте, vsb, Вы писали:

S>>Притом такая байка продвигается, что Rust делает разрабов счастливыми. Мол все просто и удобно, не то что в дедовском C++. Но по факту вы верите в это? Макросы ужасные, нет простого и понятного ООП. Умные указатели уже давно точно такие есть и в C++ а проверка владения работает топорно.


vsb>Просто и удобно в C. Rust это для тех, кому надо код писать без багов. Лично у меня такой потребности нет, мне и с багами нормально. C++ просто не нужен.


Как человек, написавший в разных проектах с полдюжины разных реализаций HTTP, скажу, что нет, в Си неудобно. Задалбывает очень HTTP писать.
Re[3]: Повестка по ЯП - Rust предпочитать C++
От: vsb Казахстан  
Дата: 26.07.24 17:03
Оценка:
Здравствуйте, Pzz, Вы писали:

S>>>Притом такая байка продвигается, что Rust делает разрабов счастливыми. Мол все просто и удобно, не то что в дедовском C++. Но по факту вы верите в это? Макросы ужасные, нет простого и понятного ООП. Умные указатели уже давно точно такие есть и в C++ а проверка владения работает топорно.


vsb>>Просто и удобно в C. Rust это для тех, кому надо код писать без багов. Лично у меня такой потребности нет, мне и с багами нормально. C++ просто не нужен.


Pzz>Как человек, написавший в разных проектах с полдюжины разных реализаций HTTP, скажу, что нет, в Си неудобно. Задалбывает очень HTTP писать.


Почему? Могу только предположить, что из-за отвратительной стандартной библиотеки. Но вроде есть библиотеки получше?
Re[2]: Повестка по ЯП - Rust предпочитать C++
От: Alekzander Россия  
Дата: 26.07.24 17:08
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Я бы рискнул предположить, в нонешние времена язык делает его экосистема. У C++ она ужасная.


Что такое "экосистема C++"?
Re[4]: Повестка по ЯП - Rust предпочитать C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.07.24 17:09
Оценка:
Здравствуйте, vsb, Вы писали:

Pzz>>Как человек, написавший в разных проектах с полдюжины разных реализаций HTTP, скажу, что нет, в Си неудобно. Задалбывает очень HTTP писать.


vsb>Почему? Могу только предположить, что из-за отвратительной стандартной библиотеки. Но вроде есть библиотеки получше?


Ну во-первых, не очень-то есть. А во-вторых, они имеют тенденцию очень подминать проект под себя.

Дело не только в стандартной библиотеке. Вся экосистема очень не очень. Начиная прам со сборки. Чтобы собрать программу, надо написать программу для сборки программы на каком-нибудь левом языке, типа Makefile, Cmake и т.п.

Особенно круто становится, когда в одной программе встречаются запчасти разного происхождения, с разными идеями о том, как их собирать. Или когда целевая платформа не какая-то одна, а зоопарк разных.
Re[3]: Повестка по ЯП - Rust предпочитать C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.07.24 17:10
Оценка:
Здравствуйте, Alekzander, Вы писали:

Pzz>>Я бы рискнул предположить, в нонешние времена язык делает его экосистема. У C++ она ужасная.


A>Что такое "экосистема C++"?


В двух словах и не объяснить. Но опытные ребята, они меня поняли.
Re[5]: Повестка по ЯП - Rust предпочитать C++
От: vsb Казахстан  
Дата: 26.07.24 17:15
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Дело не только в стандартной библиотеке. Вся экосистема очень не очень. Начиная прам со сборки. Чтобы собрать программу, надо написать программу для сборки программы на каком-нибудь левом языке, типа Makefile, Cmake и т.п.


А где не так?

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


Запчасти это зло. Надо всё писать самому, а не превращать програмирование в какое-то склеивание готовых модулей на скотче и синей изоленте. Есть исключения, которые самому писать слишком сложно, но зачастую это просто страх неизвестности. Я вот сейчас пишу USB-стек и там всё очень просто, я боялся это делать, т.к. у меня было некое представление о том, что этим только боги занимаются, но реально там всё в железе реализовано, от программиста нужны простейшие обработчики, мелочь по сути. Да, стек не универсальный, так мне и не надо универсальный.
Re[6]: Повестка по ЯП - Rust предпочитать C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.07.24 17:21
Оценка:
Здравствуйте, vsb, Вы писали:

Pzz>>Дело не только в стандартной библиотеке. Вся экосистема очень не очень. Начиная прам со сборки. Чтобы собрать программу, надо написать программу для сборки программы на каком-нибудь левом языке, типа Makefile, Cmake и т.п.


vsb>А где не так?


Go, вроде бы Rust.

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


vsb>Запчасти это зло. Надо всё писать самому, а не превращать програмирование в какое-то склеивание готовых модулей на скотче и синей изоленте.


Надо. Но где-то после пятого раза начинает очень задалбывать HTTP опять писать

vsb>Я вот сейчас пишу USB-стек и там всё очень просто, я боялся это делать, т.к. у меня было некое представление о том, что этим только боги занимаются, но реально там всё в железе реализовано, от программиста нужны простейшие обработчики, мелочь по сути. Да, стек не универсальный, так мне и не надо универсальный.


Настоящее веселье у тебя начнется, когда из-за багов в железе, которые от тебя не зависят, у тебя что-нибудь будет не работать. А в соседнем линухе (или венде) будет работать.

А так-то да, пока по спецификации пишешь и железо ту же самую версию спецификации читало, что и ты, все выглядит просто
Re[4]: Повестка по ЯП - Rust предпочитать C++
От: Alekzander Россия  
Дата: 26.07.24 17:22
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>>>Я бы рискнул предположить, в нонешние времена язык делает его экосистема. У C++ она ужасная.


A>>Что такое "экосистема C++"?


Pzz>В двух словах и не объяснить. Но опытные ребята, они меня поняли.


У меня в голове есть своё представление об "экосистеме C++". Хотелось бы понять, насколько оно совпадает с твоим.

Если нам не нравится одно и то же, это хорошо. Если разные вещи, это зависит. А если тебе не нравится как раз то, что нравится мне, это совсем плохо.

Про что ты? Про стандартную библиотеку? Что программисты на нём токсики? Или что нет npm?
Re: Повестка по ЯП - Rust предпочитать C++
От: qqqqq  
Дата: 26.07.24 17:24
Оценка: 2 (1)
Много назад некие супер-умы указали: все серьезное и надежное надо обязательно писать на Аде. И что? На самом деле те, кто повелся, в результате все равно через много лет ушли на C/C++ по многим причинам в том числе и потому, что Ада уж очень специфическая, библиотек мало, поддержка мало где есть, да самих прогеров, знакомых с ней на уровне писания кода а не читания книг, почти нет. Да и сам язык УГ. Ну их комитеты еще ковырялись в языке и синтаксе его, выдали новую Аду и еще вроде одну, добавили ооп! Но в целом хрень же.
Rust пока представляет собой Аду версия 2.0. Те же крики ах и ох! Но у Ады хоть компиляторы коммерческие были (по цене амтомобиля) а здесь что? Судя по всему у Rust есть только какая то вещь в прогрессе. Интересно поддержка компилятора хоть есть или типа — пиши вопрос в интернет может кто-то знает почему не компилится или медленно или еще что? Может когда-то Rust и взлетит но сейчас похоже он еще и не на взлетной полосе.
Re[7]: Повестка по ЯП - Rust предпочитать C++
От: dsorokin Россия  
Дата: 26.07.24 18:02
Оценка: 1 (1)
Здравствуйте, Pzz, Вы писали:

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


Pzz>>>Дело не только в стандартной библиотеке. Вся экосистема очень не очень. Начиная прам со сборки. Чтобы собрать программу, надо написать программу для сборки программы на каком-нибудь левом языке, типа Makefile, Cmake и т.п.


vsb>>А где не так?


Pzz>Go, вроде бы Rust.


Палка о двух концах. Это, конечно, удобно, когда все зависимости подтягиваются сами, и когда все собирается само лишь по одной волшебной команде "cargo build --release" — как будто произносишь волшебное заклинание, когда "оно само". Офигенно круто! Слов просто нет! Для неофитов самое то, чтобы привлечь, заинтриговать!

Однако если так подумать, то тут сильная завязка на единую точку отказа, на бутылочное горлышко — удаленный сервер crates.io, который находится в неконтролируемой враждебной стране. Поэтому в час X вся эта красивая хрень может запросто перестать работать. Вопрос стоит не в том, произойдет ли это? Вопрос состоит в том, когда это произойдет?

Есть зеркалирование, но насколько оно распространенно? И насколько оно удобно? Насколько оно действительно защищает?

По своему это даже хорошо, что в плюсовых проектах часто зависимости таскают с собой или берут из дистрибутива. Неудобно, конечно, но надежнее.

А так, Rust как язык мне очень нравится. Тем более, мне как хаскелисту с опытом на языках ФП, в том числе, с коммерческим опытом.

Тут еще один момент. Насколько проекты Rust соберутся на компьютерах с маленьким ОЗУ? Сильно сомневаюсь, что соберутся. Правда, на С++ программы с большим количеством шаблонов тоже не соберутся, но если брать базовый язык, то шансы есть, что программа на C++ вполне соберется на компьютере с малым количеством ОЗУ — это наследие технологий родом из 70-х. Насколько актуально это в 2024 году — да фиг знает!

И еще один момент. Шаблоны компилятор C++ толком и не проверяет — это by-design, так было задумано. А вот Rust обобщенный код проверяет. За это Rust особенно ценю. С обобщенным кодом в Rust работать много-много проще, просто в разы!
Re[8]: Повестка по ЯП - Rust предпочитать C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.07.24 18:09
Оценка:
Здравствуйте, dsorokin, Вы писали:

D>Однако если так подумать, то тут сильная завязка на единую точку отказа, на бутылочное горлышко — удаленный сервер crates.io, который находится в неконтролируемой враждебной стране. Поэтому в час X вся эта красивая хрень может запросто перестать работать. Вопрос стоит не в том, произойдет ли это? Вопрос состоит в том, когда это произойдет?


А в rust еще не завезли vendoring, как в Go?

D>Есть зеркалирование, но насколько оно распространенно? И насколько оно удобно? Насколько оно действительно защищает?


Ну, в любом нормальном проекте, "официальная", автоматизированная сборка будет делаться на компьютере, не подключенном к сети. Т.е., какое-то локальное кеширование внешних репозиториев так или иначе предусмотрено.

D>Тут еще один момент. Насколько проекты Rust соберутся на компьютерах с маленьким ОЗУ? Сильно сомневаюсь, что соберутся. Правда, на С++ программы с большим количеством шаблонов тоже не соберутся, но если брать базовый язык, то шансы есть, что программа на C++ вполне соберется на компьютере с малым количеством ОЗУ — это наследие технологий родом из 70-х. Насколько актуально это в 2024 году — да фиг знает!


У rust-овского компилятора backend-ом работает LLVM. Как и у половины C++-ных компиляторов. Так что полагаю, требования к сборочному компьютеру у них плюс-минус сравнимые.

Да и что есть компьютер с маленьким ОЗУ? 8 гигов — это маленькое или не маленькое? А 16?
Re[7]: Повестка по ЯП - Rust предпочитать C++
От: vsb Казахстан  
Дата: 26.07.24 18:17
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>>>Дело не только в стандартной библиотеке. Вся экосистема очень не очень. Начиная прам со сборки. Чтобы собрать программу, надо написать программу для сборки программы на каком-нибудь левом языке, типа Makefile, Cmake и т.п.


vsb>>А где не так?


Pzz>Go, вроде бы Rust.


На Go по-моему любой нетривиальный проект собирается через make. По крайней мере я таких видел достаточно.

Сам компилятор:

To build the Go distribution, run

$ cd src
$ ./all.bash


На Rust открыл инструкцию для сборки: https://github.com/rust-lang/rust/blob/master/INSTALL.md

./configure
./x.py build


Ну в общем такое...

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

vsb>>Я вот сейчас пишу USB-стек и там всё очень просто, я боялся это делать, т.к. у меня было некое представление о том, что этим только боги занимаются, но реально там всё в железе реализовано, от программиста нужны простейшие обработчики, мелочь по сути. Да, стек не универсальный, так мне и не надо универсальный.


Pzz>Настоящее веселье у тебя начнется, когда из-за багов в железе, которые от тебя не зависят, у тебя что-нибудь будет не работать. А в соседнем линухе (или венде) будет работать.


Всё может быть, но возможность эта гипотетическая.

А вот реальная ситуация. Товарищ написал прошивку, как раз используя библиотеку. В итоге под виндой она работала глючно. Вытаскиваешь девайс из порта, вставляешь заново — винда его не видит, он как бы зависает. Вставляешь в другой порт — видит (симптомы могу путать, это пару лет назад было, но примерно так), потом по таймауту там чего-то отлипало. Как чинить — не понятно, ну точней понятно — лезть в USB-анализатор и исходники библиотеки и всё дебажить, но это как бы сложно... Когда весь код для работы с USB это полторы тысячи строк в одном файле, из которых половина это константы дескрипторов и логгирование, тут уже попроще, можно и подебажить.

Ну и баги железа, как правило, в Errata есть, по крайней мере если железо достаточно старое. Почитать несложно.
Отредактировано 26.07.2024 18:19 vsb . Предыдущая версия . Еще …
Отредактировано 26.07.2024 18:17 vsb . Предыдущая версия .
Re[8]: Повестка по ЯП - Rust предпочитать C++
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.07.24 18:49
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>А вот реальная ситуация. Товарищ написал прошивку, как раз используя библиотеку. В итоге под виндой она работала глючно. Вытаскиваешь девайс из порта, вставляешь заново — винда его не видит, он как бы зависает. Вставляешь в другой порт — видит (симптомы могу путать, это пару лет назад было, но примерно так), потом по таймауту там чего-то отлипало. Как чинить — не понятно, ну точней понятно — лезть в USB-анализатор и исходники библиотеки и всё дебажить, но это как бы сложно... Когда весь код для работы с USB это полторы тысячи строк в одном файле, из которых половина это константы дескрипторов и логгирование, тут уже попроще, можно и подебажить.


Не, я не критикую твое решение сделать все руками. Просто, хм, сложности не в этом. А сейчас — ну почему бы и не сделать себе приятное?

vsb>Ну и баги железа, как правило, в Errata есть, по крайней мере если железо достаточно старое. Почитать несложно.


Ты много работал с железом?
Re: Повестка по ЯП - Rust предпочитать C++
От: T4r4sB Россия  
Дата: 26.07.24 18:58
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вот, по ЯП — прямо сказали не писать на C++ а писать на Rust.


Хорошо, не буду больше. Как только появится 100% замена используемого мной фреймворка — вот сразу.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.