7 ms·
Blanket statements like this just show that people don’t understand why people stuck with a language. I worked in C/C++ for a long time, though it’s been a whi
by physicsguy 4y ago
Blanket statements like this just show that people don’t understand why people stuck with a language.
I worked in C/C++ for a long time, though it’s been a while now. I just went to look at whether Rust had any bindings for MPI. It does - rsmpi. But they’re not fully implemented, and only support a restricted subset of MPI implementations which are pretty much the latest versions. Some others might work, but it is not explicitly tested against them. Without that, there’s a whole class of distributed applications that you’d be ill advised to write in Rust using that library, because it’s such a fundamentally core library for distributed applications, which needs to be compiled differently and with specific versions to handle the specialist interconnects on HPC systems. If you only support the latest versions, your code is not very portable to other machines.
- fsloth 4y agoGenerally - yes. But in this case, if you happen to be the CTO of Azure I imagine funds would be available to implement the missing components in Rust ecosystem for projects you lobby to be critical.
- resonious 4y agoCalling C code from Rust directly is not too hard. Yes, you will have to write some unsafe code, but it's better than 100% of your codebase being unsafe (assuming you buy into the idea that Rust's safety features help).
- IshKebab 4y agoI don't think anyone's saying there aren't specific areas where you might need to use another language. You pretty much have to use Python if you want to use ML, or Typescript if you want to do web stuff. But if you do have the freedom to choose, then I don't see why anyone would really pick C++ over Rust at this point.
- lbriner 4y agoI agree. It's like when MS tell everyone just to "upgrade to dotnet 6" or 7 or whatever! Most of us don't have the funding, skills, time, priority to rewrite all of our old web forms apps even if we wanted to. Who is going to pay to rewrite the app that only earns us $10K a year? Even if we did decide that Rust is great, do we immediately expect our C++ senior devs to produce the same quality code in a language they have only just learned? Are we going to recruit some confident youngsters who possibly know Rust but haven't been burned enough times to be pragmatic when implementing it in the wild. Do we want to rely on a new language that ticks lots of boxes but also lacks the understanding/support and battle-testedness of C++?
- dan_mctree 4y ago>I agree. It's like when MS tell everyone just to "upgrade to dotnet 6" or 7 or whatever! The amount of global manhours MS is throwing down the drain by constantly ending support for their versions must be absolutely staggering. Updates are often far from trivial, and they expect everyone to keep up with their fast upgrades and tiny support windows? Long term support is only 3 years, are you kidding me?
- metaltyphoon 4y ago> Updates are often far from trivial No, they are actually trivial starting from 3.1/5/6 exactly because of the work they have put in.
- dan_mctree 4y agoThat's great for those already there. For those of us still partially stuck on .Net Framework it is anything but trivial. And sure, upgrading from .Net 5 to 6 was trivial, but do you really anticipate it will now finally remain stable for eternity? Give it two or three minor versions and they'll have come up with something else to break 90% of your dependencies.
- M2Ys4U 4y ago>Most of us don't have the funding, skills, time, priority to rewrite all of our old web forms apps even if we wanted to. Who is going to pay to rewrite the app that only earns us $10K a year? He's not suggesting rewriting anything. He explicitly said "it's time to halt starting any new projects in C/C++" (emphasis mine) C/C++ isn't going away, old C/C++ things can remain as old C/C++ things.
- heeen2 4y agohttps://www.areweguiyet.com/ https://www.areweguiyet.com/ Until rust catches up with some meaningful feature set that Qt provides starting a GUI project in rust is probably going to be painful.
- pas 4y agoMost GUI apps don't need what Qt provides though. They mostly need stability and cross-platform support, so ... they should start with something like Tauri or Sciter, and if there is something they need natively they will be in a much better situation to pick their poison. https://github.com/tauri-apps/tauri https://github.com/tauri-apps/tauri uses OS provided WebView https://github.com/sciter-sdk/rust-sciter https://github.com/sciter-sdk/rust-sciter uses Sciter
- LtWorf 4y ago> They mostly need stability and cross-platform support But Qt provides that… tauri has exactly 1 release, that was done 4 days ago. sciter has done no release in over a year, and has 6 releases total. It would be completely insane to pick either of those instead of Qt.
- pas 4y agoFighting the problems of Qt bindings, Qt, Qt's build system to me is just not worth it. If someone is a Qt and C++ expert, then maybe, but it still seems like an uphill battle compared to web stuff, which to me seems better supported on all platforms.
- LtWorf 4y agoIf you can use webstuff, clearly it wasn't a problem that involved c++ or rust in any way.
- pas 4y ago... why? Using a cross-platform backend + UI stack seems like a best of both worlds. ~5 years ago we developed a kiosk for car washes (you could buy a membership online, then use the QR code, but it had also devices to accept coins and banknotes), backend was Rust, frontend was Angular (the kiosk ran Firefox kiosk on a touch screen, and there was even a tablet at the counter that ran an app that was a bundled webview basically). It worked well on different devices in different sizes, updates were as simple as "yes restart the thing". Interestingly we had a C++ project shortly before that (number crunching for music recognition, so not really something that you'd do without a high performance language). We picked Rust for the next one because it seemed easier to implement the state machine required to manage the connected devices & clients in it than in Python. I absolutely don't miss C++ or Qt (or PyQt, or MOS files, CMakeLists.txt shudder)
- zoomablemind 4y agoMoreover, when stating about "new projects", it's too easy to forget that these new projects often start in an existing environment which includes in-house and external libs to integrate with and likely some in-house expertise and engineering skill that goes with it. So offering these shops to consider Rust or any other "it's better" language is similar to Enterprise Java push back in time, which simply turned local weed gardens into weed prairies with even wilder variety. Meanwhile considering safe practices and features of whatever modern C++ is a normal and indeed organic process for such organizations, be it for new or supporting the existing projects. As for starting an "independent" new project, well, that's a whole new story. I guess the choice would still rely on the need and availability of external components for it. Ah, least we forget about the costs!