Skip to main content


People who don't like #Rust: why specifically don't you like it?

I'm in the process of learning it now. There are definitely some things about the language that I can see some as finding irritating (i.e.: the borrowing system). Personally though, I'd rather have a dozen complie-time errors than a single runtime error. This is the reason I tend to gravitate towards Haskell, for instance.

It's certainly not the right language for everything, but if you want better safety in code that needs to be highly efficient, it seems a reasonable alternative to C/C++.

#rust

reshared this

in reply to Jonathan Lamothe

That said, I haven't written anything major in Rust yet, so these opinions may be subject to change in the Real World.
in reply to Jonathan Lamothe

Found my first point of irritation. Crates.io requires a GitHub account.

I have one, but I don't like to use it.

That said, creating a crates.io account seems optional-ish...

in reply to Jonathan Lamothe

Have you seen this (locked as too heated!) issue which describes the current, long-standing state of affairs? github.com/rust-lang/crates.io…
in reply to Jonathan Lamothe

We are in the same boat. I don't like the current state of having a single authentication option with Github.
But the good thing is that Github is only required for authentication. The code of all my published crates on crates.io is hosted on Codeberg 😁

They are open to contributions to implement authentication via email, but sadly it is not a priority.

in reply to Jonathan Lamothe

I kinda like Rust, but the community is highly irritating:

Incredible amounts of zealotry, usually paired with a poor understanding of the subject matter, the design space, and possible alternatives.

Discussing technical topics with Rust people is simply not a good use of time.

in reply to soc

@soc Ah. I've had little to no interaction with the community at this point. My evaluation thus far has been on its perceived technical merits alone.

That said, I don't know enough about it yet to have a well-informed opinion on even that yet.

Edit: To clarify, community is important, and having to deal with a toxic one would be a deal-breaker.

Edit 2: typo

@soc
in reply to Jonathan Lamothe

As a #Scheme hacker, #Rust has nothing I need:

Exploratory, interactive programming, with a REPL.

Dynamic types, I can do an (assert (Foo? x)) if needed, but having to write Foo x, or Foo<T:Bar> x, everywhere sucks.

My errors are never caught by strict typing or borrow checking. I make much higher-level logic errors.

Garbage collection or ARC equivalent is the only way to safely manage memory. STOP manually doing it. Even in C, you can use Boehm GC!

Scheme compiles to fast binaries.

This entry was edited (8 months ago)

screwlisp reshared this.

in reply to Digital Mark λ ☕️ 🕹 🙄

There's also the problem of the Rust Evangelism Task Force, the Moonies of the Internet, but that's aside from the language itself being of zero interest.
in reply to Digital Mark λ ☕️ 🕹 🙄

@mdhughes In practice I never used found the use for it (execpt when I tested it of course), but Rust can use REPL in jupyter notebook with [evcxr](github.com/evcxr/evcxr). It even seems to be integrated in [Rust Rover](jetbrains.com/help/rust/2023.2…)
in reply to Digital Mark λ ☕️ 🕹 🙄

@Digital Mark λ ☕️ 🕹 Z? It's all about what you're looking for in a language. I don't have much Rust experience yet, but I can tell you that Haskell's type system has saved me from making errors on multiple occasions (most frequently when a function can return some sort of error (including null (or equivalent)) and I forget to check for it).

At the end of the day, if Scheme works for you, then that's the language you should use. That's totally valid.

Edit: paren balancing

in reply to Digital Mark λ ☕️ 🕹 🙄

@mdhughes I'm honestly questioning how many people actually have errors fixed by strict tuping and borrow checking or if they just think it makes errors harder and so keep desiring it, a placebo if you may. In my time writing #Python and #Scheme, I've never ran into a situation in which improper passing of variables or mixing of types was an issue, I've far more often ran into logic errors that wouldn't have been caught by either of those anyway
in reply to Jonathan Lamothe

If you gravitate towards Haskell, Rust is definitely for you.

I really enjoyed learning functional concepts in Haskell last semester after knowing Rust. There are many similarities, but (sorry Haskell fans) Rust is practical ;)

About borrowing being irritating: This is normal at the beginning, but the theory is well explained in the official Rust book.

BTW, could you please use the RustLang tag? 🥰
Background: fosstodon.org/@mo8it/112056453…

in reply to Mo :ferris: :tux:

@Mo :ferris: :tux: Oh, I understand perfectly well why it exists. It makes the kind of checks I had to do myself back in my C/C++ days. The difference is, as a human, I can fail to look for these things.

I actually appreciate the borrow checker. It gives me similar safety guarantees to Haskell without the runtime costs. I just also understand why some would find it irritating.

in reply to Jonathan Lamothe

My impression with language-whose-name-is-a-financial-asset-I-don't-control evangelism is that there's a mixture of glossing over deep issues that do matter and pitching of deep issues that don't matter. So Why (not) That Language conversations are pre-sabotaged, by that language.
This entry was edited (8 months ago)
Unknown parent

Probably, you'd have to be careful with PG's free rules, but Boehm can be per library.

But you know what's really great? Whataboutism by randos who don't care about the conversation, they're just RETF 🦞
(I should note, I'm not *saying* that's you, just… implying it from the weird edge case.)

This entry was edited (8 months ago)
Unknown parent

@veer66 VM systems have their own problems, but at least memory can't be used after free. There are a lot of good languages which run on those even if the main languages aren't that nice, Kawa Scheme, Armed Bear CL, etc.
in reply to Jonathan Lamothe

the borrow checker is such a big part of the language it's not just slightly irritating, it's like having a non-consentual finger up the ass every time you open some Rust code in your editor

And the fact Rust is always staticallly linked and lacks any sort of reproducible builds don't help, even the compiler itself only compiles with an n-2 version of the compiler, if you skip updating the compiler for a while and want or have to keep using sources then have fun compiling every version since you last updated the compiler

Its type system is also like a borrow checker: non-consentual fist up the ass, want to add an u8 to an u32? Nope, can't, have to manually cast everything because that's why we do programming languages instead of writing Assembly, to do all the fucking busy work ourselves

Oh, and Cargo is its own can of rotten worms

in reply to Reid

@Reiddragon > And the fact Rust is always staticallly linked and lacks any sort of reproducible builds don't help

That is excusable in languages where source-only distribution is normal and expected. (Indeed, compilation should be a transparent caching step and artifacts of such shouldn't be commonly shared.)

That is not the case for Rust.

> even the compiler itself only compiles with an n-2 version of the compiler

That's also a problem, Rust's bootstrap story sucks.

Ada's might suck as much, I'm not sure, I have found a few interpreters when I last looked...

> I'd rather have a dozen complie-time errors than a single runtime error. This is the reason I tend to gravitate towards Haskell, for instance.

There should be no meaningful difference between runtime and dev-time for the majority of devs. Dead languages aren't necessary. And punchcard retrocompatibility can be preserved without prioritizing a development process that is optimized for that workflow.

As for typing static vs dynamic, there's a thing called "gradual typing", and it is very possible to tie the type-checker into a REPL.

@Reid
in reply to Jonathan Lamothe

I've got a few things with Rust that make me dislike it a bit -- note that that doesn't mean that I think it's generally a bad language. (They're all good langs, Brent.) But here we go:

Another single implementation standard-less language. No solid standard library, everything done by downloading the internet. Very un-Turbo-Pascal-ish compile times and memory usage. Annotations. BCPL-ish syntax with too much line noise (and hey, I used to program Perl). Tied a lot to the worst things in IT (browser engines, crypto). Fanatical community. Overly complex async to save me from writing threads. Both functional purists and micro-optimizers. The word "Rustaceans" alone.

It's not a language that I'd like to use recreationally, but I wouldn't quit jobs if I have to do more work with it at work.

This website uses cookies. If you continue browsing this website, you agree to the usage of cookies.