6 ms·
Yeah, that's a no from me. I'm a full time C++ dev and every time I code in Rust it is harder for me to switch back. The author has pointed to some issues regar
by Kelteseth 3y ago
Yeah, that's a no from me. I'm a full time C++ dev and every time I code in Rust it is harder for me to switch back. The author has pointed to some issues regarding performance. In the end, you can always rewrite your code to generate other/better assembly, if you really need the speed. I would argue Rust is so much more that just Rust itself. Like many others after noted, it is not only the language, but the whole ecosystem and oh boy is cargo a joy to use. Yes, CMake works ok with vcpkg, but good luck integrating something that is not CMake. Code style, build script/system and different bugs from different compilers do not make my life easier. In addition, we still have old features we cannot repair because of ABI. It is an endless mess.
- skywal_l 3y agorustup target add wasm32-unknown-unknown cargo build --target wasm32-unknown-unknown rustup target add x86_64-unknown-linux-musl cargo build --target x86_64-unknown-linux-musl rustup target add x86_64-pc-windows-gnu cargo build --target x86_64-pc-windows-gnu Boom, killer feature right there.
- sapiogram 3y agoWell, sometimes. God help you if your project needs to use TLS, for instance.
- synergy20 3y agothere is another key difference between rust and c++, rust by default bundles its stdlib into the executable, which make each executable kind of a static binary, they add up fast. c++ uses shared libraries, smaller in size for the whole system, and, you can upgrade a library separately too. on embedded systems where storage space is restricted, rust is simply a no-go.
- skywal_l 3y agoUse LTO if that's a problem. [profile.release] # A profile to try to minimize the size panic = "abort" # Abort on Panic strip = true opt-level = "z" # Optimize For Size lto = true # Enable Link Time Optimization (LTO) codegen-units = 1 # Reduce Parallel Code Generation Units to Increase Optimization
- synergy20 3y agoit helps, I tried 'how to make rust the minimal in size', but still, it's like 10x of the size comparing to c++ with shared libraries.
- steveklabnik 3y agoYou absolutely can get Rust codegen down to as small as you’d ever need: https://news.ycombinator.com/item?id=34032824 https://news.ycombinator.com/item?id=34032824
- synergy20 3y agothat's for MCU and yes, as it does not use rust's stdlib. there are lots of embedded systems that run with glibc or musl shared libraries, if rust is used there, it will blow up the storage space with just a few executables due to the static stdlibs.
- steveklabnik 3y agoI don’t understand why techniques valid in small spaces aren’t also valid in slightly larger spaces. If you don’t have the budget for the standard library, don’t use it. If you somehow have the budget for glibc and not the rust standard library, call into glibc instead of the rust standard library.
- synergy20 3y agoglibc can be shared by 20 c executables. rust stdlib will be bundled with those 20 rust executables, they blow up quickly. mcu does not use stdlib of rust, it uses no-std, c++ has its own nonstdlib as well, on mcu they're similar.
- steveklabnik 3y agoYes, I understand what you're saying. I am saying that if you find yourself in that situation, don't use the Rust standard library. Your Rust programs can share glibc with your C programs just fine. This isn't a disqualifying situation for Rust. Heck, when you use the Rust standard library, dynamically linking to glibc is the norm!
- simon_void 3y ago
- eternityforest 3y agoFlash storage is getting cheap. There is some places where it matters.... but on everything else.... I am really not a fan of dynamic linking. Linux has proven for a very long time that if you have 100 programs, and they each have 100 dependencies, you'll probably see an occasional issue related to incompatibility. It seems like it's suited to the mindset of unique systems maintained by sysadmins, with every app being a part of the system, quite possibly built locally just for your task. The modern way seems to be disposable installs that cab be recreated automatically if some probably-not-worth-fixing thing happens, made of reusable multipurpose software made by people who have never heard of your application, and a bit of local code, which might be intended to someday become one of those mega-frameworks. Even windows used to always have hassles with some visual C++ runtime or other. Although the standard library of C isn't a big issue since it's not in the habit of breaking things, but I'd imagine Rust might want to make bigger changes since it's so new.
- ostenning 3y agoAll embedded applications and libraries can be declared with no_std, removing the std dependency and heap allocation. Shared libraries are also possible.
- synergy20 3y agowell without stdlib, there is not much I can do on non-mcu devices it's like I have c++ but no libstdc++ for a smart tv device development
- hdjdkdbdbe 3y agoYou have the ability to remove the stdlib if needed...
- hdjdkdbdbe 3y agoRecovered c++ dev here. I started with rust in 2016 and never looked back!! I started in my own time and even back then it was superior... People like c++ for the language features... I dislike it because of all the defensive programming one must do....