Live data from Hacker News

Ask HN: Why would you ever use C++ for a new project over Rust?

news.ycombinator.com

31–40 of 42 posts

Re: Ask HN: Why would you ever use C++ for a new project over Rust?

#31

I've personally stumbled upon two - obscure hardware and GUIs. It's really difficult to evaluate a hardware product with only a C(++) SDK using only Rust. There are of course ways around this but those are a significant amount of effort. In terms of GUIs - there's simply no "Qt-Rust" that would work in a Rust-y way without causing massive headaches. Handling all that state is incredibly difficult in Rust, at least fo…

Did you get a chance to check https://slint.dev?

Disclaimer: I work for Slint

Re: Ask HN: Why would you ever use C++ for a new project over Rust?

#32
post #7

The best way to think of Rust as essentially the new Java, which sort of "won" over C++ due to its more strict syntax with mandatory OOP and code patterns. Rust enhances this by running most of the checks in the compiler so you get native code, with very few runtime additions for type safety. But just like Java, its almost useless to code in it for personal or smaller projects. For almost all of my projects where I n…

Interesting, haven’t heard this viewpoint before of Rust being a drop in replacement for Java. From my limited experience with Rust it felt like the learning curve was way steeper than when I was learning Java for my previous job. Good point on C though, one of my old CS instructors would always call C his swiss army knife since its so small he had practically the entire syntax in his head.

Rust is not a drop in replacement right now in the sense that it does require more learning curve, but for example if colleges switched to teaching everything in Rust, then you would see its use on the same level as Java.

Re: Ask HN: Why would you ever use C++ for a new project over Rust?

#33

The best way to think of Rust as essentially the new Java, which sort of "won" over C++ due to its more strict syntax with mandatory OOP and code patterns. Rust enhances this by running most of the checks in the compiler so you get native code, with very few runtime additions for type safety. But just like Java, its almost useless to code in it for personal or smaller projects. For almost all of my projects where I n…

> But just like Java, its almost useless to code in it for personal or smaller projects. That's entirely the opposite from my experience. Rust is a pleasure to code in for personal projects once you're familiar with the language, especially compared to C/C++. Managing dependencies is more straightforward, and there are a lot of crates out there to make writing your project easier.

It honestly depends on what you work on for your argument.

In general, think about the general use case for all types of development. For example, I have a bunch of finance code. I host it on a Jupyter Lab server in notebooks, so I can run/edit it from anywhere.

If I want something that is fast (which in this case is rare to see outside of using pytorch), I can write a C extension quite easily - the amount of effort that it takes me to set up boilerplate code is the same amount of effort as it takes thinking about Rust memory semantics. The code will be quite isolated from the rest of the system (unless you purposefully try to break Python), and you don't really have to even do dynamic memory if you are trying to do processing. I did this at work with fast json parsing and data extraction, and it was super easy to do.

Then there is the whole ML aspect, which is first and foremost python before anything else. Especially in the whole data sets, with the fact that you can easily generate training data in Python, whereas other languages require a lot of custom code.

Re: Ask HN: Why would you ever use C++ for a new project over Rust?

#34

>> is there ever a case for doing a project in C++ (outside of being forced by the platform you’re working on or anything outside your control)? No. That is part of the reason why so many big companies (Google, Microsoft, Amazon, etc.)[1][3][4] are pushing ahead on Rust adoption and large government agencies[5][6] are recommending memory safe languages over C and C++. Google did a study and found that their Rust deve…

Yes, this is all very interesting, I've found golang is significantly simpler to get up to speed on from a c-family based education (c/c++/java) so I'm curious if these teams were both proficient before starting the projects. (And 3rd party package comparisons come into play). Either way enough to keep an ear out as I'm sure with the wealth of python & js developers the language of choice will be promoted by their ex…

Go is great, but it has garbage collection (you don't manage memory directly) whereas c++ and rust do not.

It is apples and oranges, in that regard. Some node guy isn't going to just go and pick up rust/c++ because they're used for quite different purposes.

As a general purpose language, Go is amazing. In fact, it is what I use day to day for all my needs. For my current business needs it is what all our services are written in. They are fast, and the go concurrency model honestly makes it pretty easy for me to forego a lot of extra add-on technologies that are not yet required at my stage and KISS.

For anything like super high perf, systems programming, embedded, etc. you will want to use c++ or rust.

Re: Ask HN: Why would you ever use C++ for a new project over Rust?

#35

I've personally stumbled upon two - obscure hardware and GUIs. It's really difficult to evaluate a hardware product with only a C(++) SDK using only Rust. There are of course ways around this but those are a significant amount of effort. In terms of GUIs - there's simply no "Qt-Rust" that would work in a Rust-y way without causing massive headaches. Handling all that state is incredibly difficult in Rust, at least fo…

Did you get a chance to check https://slint.dev ? Disclaimer: I work for Slint

I like it in theory but the small demos I've played with lack a lot of the details that GUI toolkits have converged upon. Small behavioural things ingrained in usage patterns that have to be reimplemented.

First two that come to mind are tab/shift-tab navigation and being able to adjust sliders roughly with arrow keys.

Re: Ask HN: Why would you ever use C++ for a new project over Rust?

#39

If you want to create any real-time graphics application (video games, game engines, CAD software, visualization, etc.), or do any sort of scientific computing / HPC. The graphics ecosystem in Rust is still too undeveloped to see adoption (for the graphics API people are converging towards WebGPU, but it's still no match to Vulkan / DX12 / Metal), same goes for any GPGPU computing. Rust is also currently lacking in d…

A note: EGUI is nice for GUI dev in Rust. I agree on WGPU being limiting for 3D graphics. For GPGPU, you can use a CUDA binding, where you write the shaders in C++, and call that from Rust.

Re: Ask HN: Why would you ever use C++ for a new project over Rust?

#40

If your project depends heavily on general purpose GPU programming, you might start one in C++. This was the case for a project I am working on that was started in the last year. The interop features in rust (and other languages) are simply not as reliable as writing kernels directly in CUDA or HIP or even DPC++. You _can_ attempt to write the GPU code in C++ and call to this from $LANG via ffi, but if you want to pr…

I concur re not being able to share data structures. I've been using `cudarc` for FFI (Shaders in C++; CPU code in rust), but that would be a nice perk.
Post reply on HN