Информация об изменениях

Сообщение Re[7]: Повестка по ЯП - Rust предпочитать C++ от 26.07.2024 18:17

Изменено 26.07.2024 18:19 vsb

Re[7]: Повестка по ЯП - Rust предпочитать C++
Здравствуйте, 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 это полторы тысячи строк в одном файле, из которых половина это константы дескрипторов и логгирование, тут уже попроще, можно и подебажить.
Re[7]: Повестка по ЯП - Rust предпочитать C++
Здравствуйте, 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 есть, по крайней мере если железо достаточно старое. Почитать несложно.