6 ms·
People always assume people who like Rust and are a bit more hesitant about C++ are just hype driven haters. I'm mostly exposed to C++ through my hobbies in cr
by __jem 4y ago
People always assume people who like Rust and are a bit more hesitant about C++ are just hype driven haters. I'm mostly exposed to C++ through my hobbies in creative coding, graphics programming, etc., and I would like to be a better C++ developer and be more comfortable with those projects. But every time I have to set up a new project it feels like death by a thousand cuts, and the fun art project I was about to work on just becomes a painful chore. I never, ever feel this way with Rust, even though it's significantly more immature in this space.
Maybe I'm just one of those spoiled younger developers who expects great DX on all my tools, but it makes me really reluctant to invest more time into learning C++ when I could be contributing to open source Rust and improving the ecosystem. Getting better with C++ just feels like learning an endless series of sharp edges.
- vvanders 4y agoThis was something that Microsoft did really well back in the Visual Studio days. That said Rust really raised the bar not just on tooling but the whole end-to-end experience and with cross-platform being table stakes now it really makes for a compelling choice.
- pjmlp 4y agoWell, it is no surprise given their C++ investment, that Microsoft keeps briging more Rust like experience into Visual C++ then. They are adopting Rust in some small spots like Azure Sphere, and Rust/WinRT, yet WinDev, XBox, Office, .NET (for the runtime), DirectX aren't getting rid of their C++ code anytime soon. Rust experience is compeling if one doesn't need to rewrite the world, e.g. doing CUDA in C++ versus Rust.
- brundolf 4y agoSeconded. I can have fun using Rust, I can't have fun using C++, so Rust is what I've spent the past ~4 years getting more and more familiar with. Now I'm at a point where I could apply to Rust jobs, but certainly not C++ jobs
- vintermann 4y agoConsidering this is a volunteer driven open source project with a high "for the heck of it" factor (Wikipefia: "Fish is considered an exotic shell since it does not rigorously adhere to POSIX shell standards"), I don't think the having fun argument is quite as bad as all the serious people say.
- brundolf 4y agoYeah, but I was also making a further point: if everyone uses the enjoyable language in their spare time, and nobody wants to use the miserable one unless they have to, you get a gradual brain-drain. More and more people have more and more experience with the fun one, and over time it gets easier to hire for (or find contributors for) Of course it's sticky- someone who's already an expert in the miserable language may not choose to totally re-skill themselves (and anyway, once you know something that well it tends to become less miserable). But the new generations will heavily favor the thing that's welcoming to them, not the thing that's prickly
- simplotek 4y ago> But every time I have to set up a new project it feels like death by a thousand cuts Which part of the following example is hard: program(mynewproject LANGUAGES CXX) add_library(libfoo STATIC foo.cpp ) add_executable(bar bar.cpp main.cpp ) target_link_libraries(bar libfoo ) Edit: and this message was downvoted? Seriously?
- lifthrasiir 4y agoYou completely ignored dependencies, which in my experience everyone seems to handle differently (and definitely not in a declarative way). Differently put: a phrase "metabuild system" has both a lexical sense and an idealized sense. The lexical sense would be something that generates an input to build systems. The idealized sense would be something that does everything else not possible or difficult in build systems. CMake was definitely far from that ideal [1]; it was often simpler to make a configure script in your favorite language (and, for god's sake, not in M4) than using CMake. [1] Was using a present tense but edited after realizing that I don't know much about recent changes to CMake. Still enough to justify my (and others') criticism.
- simplotek 4y ago> You completely ignored dependencies Not really. When people talk about setting up a new project, they talk about starting a hello world project and build up from there. Anyway, I'll bite. What would it take to add a dependency? If it exports a cmake config file which exports targets, all it takes is this: find_package(MyDependency), target_link_libraries(bar MyDependency::targetA MyDependency::targetB ... MyDependency::targetZ ) If it doesn't and it is instead a system library then you can even pass the library instead. add_library(bar systemlibrary ) If the library exports no cmake config and you have anything exotic you can put together your own cmake find modules, and proceed to follow step A. Alternatively, you can even bolt on something like Conan and just follow step A all the time. > Differently put: a phrase "metabuild system" has (...) Sorry, but do you actually have any concrete example of any difficulty setting up a C++ project?
- 4y ago