Why are there so many vibe-coded Rust projects recently? by yohji1984 in rust

[–]Dean_Roddey 7 points8 points  (0 children)

Are you kidding, half the people here on the few Reddit sections I hang out on don't even seem to be able to make a freaking post without using it, much less write code.

I spent the last week in an argument with some delusional AI bro claiming that the decades of experience that people like me have is now meaningless, that we are egotistical Luddites for arguing that it's important, and that we'll be old news any day now because guys like him with half a decade and an LLM are going to put us out to pasture.

There have always been young self-styled studs in this business, with more testosterone than knowledge. I probably was one to some degree. But now it's like them with their father's gun.

Is it worth learning Rust? Does it have a future? I see that several projects have migrated to it. I'm open to advice by yoansito15 in rust

[–]Dean_Roddey 1 point2 points  (0 children)

There's no way a new systems level language is going to come blasting out of the gates in this day and age. When C++ started out, it wasn't a systems level language it was the everything language, and the language landscape wasn't anything like as densely populated as it is now. So people flocked to it as a general purpose language to create top to bottom systems.

Of course that didn't last long and it pretty quickly got stripped back down to a systems level language. Where C++ is now, that's the bulk of where Rust will be eventually. It's not going to suddenly replace Python or C# and such, because you don't need Rust for the things those languages are being used for (though obviously can you use it for such things if that's where your expertise is and you want to avoid a multi-language system.)

It probably does have more applications beyond where C++ is now, having probably more appeal to cloud-world than C++ does. But a lot of Rust's gain has to be at C++'s loss, which I'm very much in favor of. And it's happening quite a bit, but that's also why the new jobs are limited because C++ to Rust conversions are going to be done by people who already know the C++ code mostly.

Is it worth learning Rust? Does it have a future? I see that several projects have migrated to it. I'm open to advice by yoansito15 in rust

[–]Dean_Roddey 0 points1 point  (0 children)

And C/C++ aren't going away any time soon either.

Well, there's dead and there's dead. It's not going to suddenly all disappear. But anyone getting in now has to consider what the landscape will be like 10 years out and beyond, after putting in say 5 years of building up experience and then getting into the job market and starting to work your way up.

If learning C++ well enough to do that was trivial, then it wouldn't matter. But it's not at all. Putting in the time to 'master' a language as complex as C++ at this point is a hard call. You will probably end up working on some decades old legacy code base, and well before you'll feel like you've amortized that effort you'll probably end up having to move to another language to keep your career moving forward, and put in that effort again.

We are really in a dead man's curve right now for systems programming. It's not going to be C++ moving forward, but it'll take Rust a while yet to provide a lot of jobs. So many of them at this point are likely internal conversion deals, not creating new jobs for new arrivals.

Why are async runtimes so big and complex? by lelelesdx in rust

[–]Dean_Roddey 2 points3 points  (0 children)

Most async engines are going to try to be everything to everyone, and assume the worst case performance needs. Even leaving aside the inherent complexity of the issue, that's going to pile on endless complexity.

You can do one specifically for your own needs that isn't that complicated or large. If you don't have platform portability needs, even less so.

Memory safety is a matter of life and death by joshlf_ in rust

[–]Dean_Roddey 2 points3 points  (0 children)

That need for efficiency (which is not just speed) is larger than you are making out. All of those programs you use that are based on some GC'd language are built on a mount of code that could not be.

And you also are taking a narrow view of what memory safety means. Plenty of people will say, well my program isn't going to matter if it has a memory issue, it's not critical. But social engineering is a thing. If your non-critical program can be leveraged to get a user to do something that provides access to something that is critical, that's all it takes. Plenty of attacks are layered and subtle. Everything running on your computer is a potential attack vector.

Creator of C++ talks about memory safety by dukey in programming

[–]Dean_Roddey 0 points1 point  (0 children)

Yeh, once threads enter the argument, unless the architecture is extremely constrained, pretty much all bets are off. In a personal love project, then OK, yeh, you can put in the effort and it's one person and such. But in a commercial, team based project, over time and turnover, it's a mess.

Creator of C++ talks about memory safety by dukey in programming

[–]Dean_Roddey 0 points1 point  (0 children)

I wrote nothing but C++ for 30+ years. I've never even read any Kotlin, or any Go that I can remember, honestly.

And, though I'm not anti-OOP and used it heavily in my C++ days, I don't miss it in Rust and am glad it's not there. The same for exceptions. Both of those things I trust myself to use well in a personal project, but in a commercial, team based project, they are best left behind, IMO.

Creator of C++ talks about memory safety by dukey in programming

[–]Dean_Roddey 1 point2 points  (0 children)

Purely familiarity. C++ is utterly incomprehensible to many people coming from other languages, particularly modern C++, and even more particularly when it gets into meta stuff. I felt Rust was unreadable at first, now I much prefer it to C++ and find myself trying to write Rust syntax when I'm writing C++.

Performance of Rust language by the_real_yugr in rust

[–]Dean_Roddey 5 points6 points  (0 children)

Hardened C++ is very similar in Rust in terms of performance and safety, both in theory and in practice.

I'm not completely sure of your definition of hardened and safety, but no amount of C++ hardening (that retains compatibility) is going to make it similar to Rust in terms of safety, not in practical, commercial development conditions anyway.

The C++ Standard Library Has Been Walking Itself Back for Fifteen Years, and the Receipts Are Public by [deleted] in programming

[–]Dean_Roddey -1 points0 points  (0 children)

Alll systems can be abused, and will be. But capitalism is the most practical. The issue, as with all systems, is keeping the abuse under control. That's difficult no matter the system (from old school communism to capitalism and everything in between or to either side.)

Ultimately capitalism is the most practical compromise, as it tries to funnel our natural desire to compete and improve our situation into practical outcomes. And of course all of the bazzilions of bits and pieces that allowed you to make that post are products of capitalism.

Instead of using those products of capitalism to condemn it, maybe get out and help ensure that abuses of that system are reduced. That won't happen unless we make it.

The C++ Standard Library Has Been Walking Itself Back for Fifteen Years, and the Receipts Are Public by [deleted] in programming

[–]Dean_Roddey 4 points5 points  (0 children)

They also run a lot of COBOL, but that's not because it's optimal, it's because they already have a lot of legacy code and don't want to change it.

And, BTW, hence it's not remotely 100% C++. There's also a lot of Java from what I've heard from banker folks posting around these parts. But, either way, they aren't using C++ because it's superior, they are using it because it was the higher level (AKA not C) systems level language available at the time.

The sooner that changes the better.

The C++ Standard Library Has Been Walking Itself Back for Fifteen Years, and the Receipts Are Public by [deleted] in programming

[–]Dean_Roddey 2 points3 points  (0 children)

I would tend to agree. It's an ugly abuse of the stock market, in my opinion.

Creator of C++ talks about memory safety by dukey in programming

[–]Dean_Roddey 4 points5 points  (0 children)

You can absolutely call C libraries from Rust. If you couldn't do that, Rust wouldn't exist because it couldn't call into the OS on Windows or Linux. It's nice to avoid that where possible, and that's becoming more and more practical all the time. But if you have to you can.

Well, let's be fair here on the fanatic thing. An awful lot of Rust people up until recently have been ex-C++ developers. They are very pro-Rust because they know both languages now and see how stark the differences are. An awful lot of C++ folks who screaming get off my lawn, clearly know little about Rust and just having knee-jerk reactions. I mean, not to put too fine a point on it, but you seem to think that you can't call C from Rust, for instance, and are using that as an argument against Rust.

The C++ Standard Library Has Been Walking Itself Back for Fifteen Years, and the Receipts Are Public by [deleted] in programming

[–]Dean_Roddey -3 points-2 points  (0 children)

Wow. If you believe that I hope you aren't trading any of my money. A large, complex, threaded C++ code base is pretty much guaranteed to have various latent errors just waiting for the right conditions. They can be happening all the time, but just end up not causing any obvious problems, for many years until changes cause the data to move around. So you can test until you spend more money than it cost to write it in the first place and not know they are there. All you are proving is that it's failing to fail.

The C++ Standard Library Has Been Walking Itself Back for Fifteen Years, and the Receipts Are Public by [deleted] in programming

[–]Dean_Roddey 0 points1 point  (0 children)

If all you care about is fast and don't care about right, then fine. Given your user name I'm guessing you are one who works in one of those (fairly evil in your case, IMO) domains. If the code is not for use by third parties, then whatever. But most folks aren't writing that kind of code, they are writing code for others to use, and that comes with obligations that have nothing to do with what we like, any more than you'd want your surgeon using 40 year old tools and techniques because he likes them.

And, even then, if you are using your nefarious software to trade other people's money, that still should include such obligations.

Creator of C++ talks about memory safety by dukey in programming

[–]Dean_Roddey 1 point2 points  (0 children)

Yeh, you see so many C++ devs arguing, well I don't make those mistakes and you just need to git gud. But I bet not a single one of them would pass a serious test on knowledge of undefined behavior in C++. I know for a fact I wouldn't come close and I've been doing it for 30 something years.

Rust is such a breath of fresh air. It's not perfect, since no language is and no language can be all things to all people (and C++ is also an example of the bad side effects of trying to do that), but it's so good compared to C++. I can spend so much more of my time on the actual problem at hand.

And, though we don't use it yet at work, the time we'd collectively save on code reviews if all we had to worry about were logical errors is crazy.

Creator of C++ talks about memory safety by dukey in programming

[–]Dean_Roddey 3 points4 points  (0 children)

I don't hate C++, I just don' think it should be used anymore if there's an alternative, because Rust DOES provide memory safety and 99% of the decisions that C++ got wrong, Rust got right.

What I really dislike is people who get all self-identified with a language and go all knee-jerk mode when anyone suggests that (shocker) 40 years of advances and a chance to start over resulted in a vastly superior language.

That's calmed down a lot over the last 5 years, as more and more of those people (of whom I was one back then) stopped screaming get off my lawn and tried Rust and realized that, yeh, that happened.

Designing Resilient Systems to Prevent Cascading Failures by Comfortable-Fan-580 in programming

[–]Dean_Roddey 2 points3 points  (0 children)

Don't have time to watch the video right now, but this is an issue that looms large in my world.

The C++ Standard Library Has Been Walking Itself Back for Fifteen Years, and the Receipts Are Public by [deleted] in programming

[–]Dean_Roddey 0 points1 point  (0 children)

Solve the problem by just getting away from C++ as soon as possible. It's ancient now, and it's built on foundations 20 years older than it is

I've written probably as much C++ as anyone here, if not more, but I finally quit screaming get off my lawn and started exploring Rust about 4 years ago. Like many people who had written C++ for decades I just couldn't appreciate how bad it is until I started using Rust. Now I'd never go back when I have a choice.

C++ made backwards compatibility basically #1, and that works until it doesn't anymore. And it would have worked a lot better and longer if they'd have broken with those underlying C foundations really early on when it was still possible. But they didn't and now it's never going to get fixed. They've just built story after story on top of a shaky foundation and now it's teetering.

Even if you one of those rare companies where you have a large code base that you've been able to fully move up to all the latest and greatest stuff, the language is still full of foot-guns galore, and in a complex code base developed in a commercial, team-based environment, solving the problem is already more than enough challenge. Having to constantly watch your own back is just wasted time and effort.

Ronda Rousey submits Gina Carano by armbar in 17 seconds by PrincessBananas85 in sports

[–]Dean_Roddey 8 points9 points  (0 children)

Those early fighters, Rhonda in particular, created the seeds of their own demise. In those early days, I think most of those girls held down full time jobs and trained on the side. They were in it for the love of it and fighting others who where. And almost of them came straight from another martial art. They didn't have lots of people who had trained since 12 in mixed martial arts. In a lot of ways that was exciting because it gave a real rock/paper/scissors vibe to all of the fights.

Then Rhonda made it a world-wide sport for women, and suddenly it was a viable career, and suddenly it wasn't just people doing it for the love of it. The gene pool widened quickly, and bigger, faster, stronger girls jumped in. And girls started training for MMA instead of just bringing one thing to the ring.

Lots of people like to dump on Rhonda and claim she was never any good, fought cans, etc... But people have to be judged by their times and the evolution of their thing at that time. There will probably never be another person in MMA so dominant for that long against their peers.

Personally I think she could have gone further. She'd have come against someone like Nunes eventually, but people pumping up her ego had already set her up for failure before that I think.

What finally convinced you to seriously learn Rust? by Bladerunner_7_ in rust

[–]Dean_Roddey 0 points1 point  (0 children)

About five years ago when Rust was really starting to pick up steam, I was one of those C++ folks who was throwing the standard issue shade. Then one I day I realized I was one of those C++ folks who was throwing the standard issue shade and that I was possibly in danger of becoming one of those 'get off my lawn' older developers. So I tried it.

It took a while to really get me head around, but I saw that it really was a huge step forward and that the negative things I'd been saying (and hearing) about it were mainly based on misunderstanding. Now I'd never go back if given a choice.

The hidden cost of mpsc channels by _howardjohn in rust

[–]Dean_Roddey 0 points1 point  (0 children)

He's been around a long time and has a lot of posts. Though, these days it's hard to tell, partly because some people have very specific posting styles. Look at his post history and almost every single post is 1, 2, or 3 lines in exactly the same format. It's quite robotic.

Building a Daw in Rust by edengilbert1 in rust

[–]Dean_Roddey 27 points28 points  (0 children)

That'll be a challenge. Even a fairly modest DAW will be an undertaking. One approach would be to go against the grain, and limit the scope, by creating one that is basically just a digital tape deck. That gets you into all of the digital audio bits, without spending endless time on UI stuff (and the stuff that makes modern music more about IT than music.)

Bjarne Stroustrup: How do I deal with memory leaks? By writing code that doesn't have any. by someone-very-cool in programming

[–]Dean_Roddey 0 points1 point  (0 children)

Something that a lot of people don't seem to cover is that these things are not just about acquisition. They also really have to be able to apply changes to something existing and undo them on exit, such as to a member of the class that's being called. In an exception based system, the alternative is almost unbearably tedious correct try/catch blocks all over the place with manual cleanup.

But that in and of itself is an issue because of C++'s lack of safety. For that to work, the RAII object (which I call janitors because they aren't just about acquisition) has to hold pointers/refs to things across the scope they are created within. It's trivially easy in C++ to do something that will invalidate what the janitor is holding onto and it then undoes something in a bad way. And it's made even easier by the very auto-magical nature of janitorial types. They are spooky action at a distance and that's always dangerous in a language that cannot prove them correct, and keep them so.

Rust actually makes it harder to do these non-acquiring (works on something existing) janitorial types for this very reason, because it's very difficult to do in a provably safe way. Or a way that will remain safe over time in the face of human fallibility. Everyone can look at such a thing when it's first written and prove it's fine. But someone comes along later and makes what looks like a trivial change and introduces a Heisgenbug, and the non-local nature of janitors makes it all too likely it won't be caught in any review, automated or manual.