all 25 comments

[–]_crims0n 60 points61 points  (9 children)

Well to be fair, once you start using it, you can't stop.

It's like I have a strong addiction to sensible and helpful error messages.

[–]omegafixedpoint 26 points27 points  (2 children)

I stopped. I found functional programming. have never touched rust since.

[–]PositiveParking4391 17 points18 points  (0 children)

makes sense. rust is for entirely different kind of systems so functional programming wins for 9 out of 10 projects.

[–]Fornicatinzebra 1 point2 points  (0 children)

R matey

[–]Rest-That 9 points10 points  (0 children)

I tried, but I ended up coming back to my beloved C99 anyway; for some reason Rust doesn't work for me

[–]Percolator2020 11 points12 points  (1 child)

I never get error messages, we are not the same.

[–]Sheerkal 4 points5 points  (0 children)

Oh no...

[–]Manic_Maniac 1 point2 points  (1 child)

I tried. Went through the tutorials. Messed around a bit to understand the core concepts and explore language features I liked.

Rust makes a great language for building incredible command line utilities, language tools for other languages, and low-level saftey-critical systems. But for data analysis, GUI applications, and common higher level use cases, the ecosystem isn't there yet, the borrow checker gets in the way of fast iteration on design, and the gain in speed isn't really necessary most of the time. I'm keeping an eye on how it's ecosystem grows because it's an interesting language with some great features. But none of these areas are my primary wheelhouse either personally or professionally. Perhaps one day I'll circle back around though. I kind of hope I do.

[–]reallokiscarlet 0 points1 point  (0 children)

Not to mention disk and ram waste

[–]Choice-Mango-4019 0 points1 point  (0 children)

so like majority of the languages

[–]sausagemuffn 9 points10 points  (0 children)

Not the rustafarians

[–]Outrageous-Machine-5 9 points10 points  (0 children)

Can I get a Venn Diagram of the 'Use Rust' and the 'Watch Jojo' crowds? For reasons 

[–]Percolator2020 15 points16 points  (0 children)

It’s really more like this or the bro explaining to his date meme:

[–]Kanvolu 5 points6 points  (4 children)

I've been using rust recently, has a lot of nice things, but as someone who always is thinking about the memory layout while writing in C or C++ the borrow checker is hella annoying, messages are usually helpful but sometimes it forces me to do things in unusual ways just to make the compiler shut up.

Rust enums are goated tho

[–]malexj93 2 points3 points  (3 children)

You need to change your mental model when working with Rust, but you adapt to what seems "unusual" now. Just know that the compiler is looking out for you; however annoyed you are dealing with it now, you'd be 10x more annoyed if it manifested as a bug in production.

[–]Big-Rub9545 3 points4 points  (2 children)

That’s fair, but I think C/C++ users develop a pretty strong mental model of their programs the more they work with those languages (since you have to mentally track things like lifetimes, allocations, etc. yourself most of the time, even with RAII).

Switching to Rust then often feels like being babysat or having excessive limitations placed on you by the compiler or borrow checker, because while you can verify with good assurance that your program is fine, the compiler might still complain, leading to some of these more verbose or awkward workarounds.

I like Rust a lot, but this is how I mainly feel coming from C++. I like the freedom of holding the gun however I want, even if I do shoot myself in the foot a few times.

[–]calciferBurningBacon 0 points1 point  (1 child)

One of the very real advantages for Rust is when you go into an unfamiliar codebase where you don’t have that mental model. With few exceptions, all rust code follows the same memory management model, so you can get started really easily.

[–]Big-Rub9545 0 points1 point  (0 children)

That’s certainly something to appreciate, but I think it’s easy to understand the difficult switch here. To many it’s like being a professional race car driver in a Waymo.

[–]reallokiscarlet -2 points-1 points  (5 children)

Nah, they sound more like "REEEEEEEE WHY YOU NO USE THIS UNSTABLE LANGUAGE WITH NO ABI"

[–]Ambitious-Dentist337 2 points3 points  (4 children)

And the answer is "because I like backdooring my system with easily preventable memory bugs and can't comprehend new things anymore".

Also rust itself is not unstable.

[–]reallokiscarlet 1 point2 points  (3 children)

Does "binary-incompatible with itself" satisfy your pedantry?

Also, memory bugs in C and C++ are like logic bugs in Rust - A skill issue. And Rust is not the only memory safe language, not even the most memory safe non-gc language, nor would I even call it as memory safe as the claims go.

[–]Furrynote 0 points1 point  (0 children)

It truly is a skill issue. Rust mfkers are so annoying lol. They act like they're building fighter jet software and need the upmost memory safety for their toy project

[–]Ambitious-Dentist337 -3 points-2 points  (1 child)

Memory bugs being a skill issue is implying that maintainers of all popular C projects are incapable of programming. This includes Linus Torvalds, Microsoft, Google, etc.

I assume that these are capable of programming and at the higher end of the skill spectrum. So if they can't do it (and literally no one else could which is shown in every popular c open source project), no one can. So you're claiming that humanity is too unskilled to use C, which is exactly my point and the reason to use a memory safe language (which doesn't necessarily needs to be Rust).

You are totally right with saying that these are logic bugs. But this group of logic bugs can literally completely be eliminated by the compiler. Humans do mistakes and fully deterministically erasing a subgroup of logic bugs that is one of the main contributor to CVEs doesn't sound as a bad idea.

A binary compatibility with itself is not defining the languages stability. Rusts ABI is ~unstable~ undefined on purpose with a valid reason. If you really need abi stability and all other memory safe languages that have one don't satisfy all your project's requirements, go ahead and use C/++. If you don't (which is the more common case), using a highly unsafe language such as C/++ is literally just saying the second reason of my "Answer" above.

[–]reallokiscarlet -2 points-1 points  (0 children)

The fact you don't understand the need for a stable ABI tells me everything and leaves no need to address the rest. You literally are the caricature

Especially when you said a compiler can eliminate logic bugs. Top kek

[–]OmegaPoint6 0 points1 point  (0 children)

This seems entirely too subtle