upvote
> You just got a tiny taste of what Rust enthusiasts have been doing to every C++ related submission

Which is what C++ enthusiasts have done to C enthusiasts and C enthusiasts have done to assembly enthusiasts.

reply
If people would just take the time to actually learn and appreciate the Analytical Engine they could bypass _all_ that noise...
reply
I’m rather partial to Plankalkül actually
reply
Now that LLMs are writing 300% of the code, it makes sense to do it in the safest language, not the most human friendly one.

I suspect that Rust will start taking over as a dominant LLM output language.

I also suspect that in short order we'll have entirely new languages that are engineered to be ideal languages for LLMs to generate. Perhaps even safer than Rust.

The models are shockingly good at writing Rust. You don't even need to have familiarity with Rust to start using it now. You'll learn the language as you interact with the LLMs.

reply
Rust is one of the safer languages, but saying that it is "the safest language" is just a baseless exaggeration.

Decades before Rust and long before the simplified language that was C, there were safe programming languages, where all invalid operations, numeric overflows or out-of-bounds accesses generated exceptions and where use-after-free was impossible, because either garbage collectors or reference counts were used.

Rust is much safer than C compiled with its bad default compilation options, but it did not bring much in comparison with other languages.

Even in C++, with appropriate rules, restrictions and discipline you can write programs that are guaranteed to be at least as safe as any Rust program, but unfortunately very few use C++ in this way, i.e. by strictly avoiding the features that are obsolete or unsafe.

reply
I am not a huge Rust fan but the language did bring a few practical and useful innovations, while also keeping a focus on practice.

And no, C++ just doesn't make the same things easy or clean.

And no, "discipline and appropriate rules" were never enough.

reply
The practical and useful innovations were invented else, Rust made them mainstream.
reply
Yes.

The biggest innovation of Rust is bringing some of the good ideas from functional programming to low level programming. I'd also say that partially exposing data flow analysis to a proframmer is new.

Rust package management is quite good, and also not by any means an invention.

I am still not a fan of all the ugly macro programming systems and verbose syntax in the language.

reply
Macros in Rust are really ergonomically terrible. Zig's approach here is way better.

The language I really want is somewhere inbetween those two languages.

reply
The borrow checker in Rust is frankly novel. Cyclone had something somewhat similar, but not the same.

The broader ML-like type system in Rust is not novel, but the integration of the borrow checker -- and its move semantics more broadly -- with it in its form honestly is an innovation. And one I'd have a hard time living without at this point.

reply
> Even in C++, with appropriate rules, restrictions and discipline you can write programs that are guaranteed to be at least as safe as any Rust program

If by discipline, you mean running something akin to the borrow checker in your head, that's essentially tautologically true. The issue with that is that it's mentally draining and/or you will still make mistakes sometimes.

reply
No, I mean by using only custom types for things like arrays, strings and pointers, which do access checks and automatic memory release, and not using unsafe features like the built-in arrays, strings and pointers, or the incorrect integer type conversions inherited from C.

For maximum safety, beyond what Rust offers by default, in C++ it is easy to replace the built-in integer types with custom integer types, which check for overflows and allow only the correct type conversions. It is also easy to define distinct types for various kinds of physical quantities, for increased safety.

You do not need to run anything in your head. With appropriate type definitions, a C++ compiler will do anything that is required.

The problem is that because of the requirement for backwards compatibility, C++ is a huge junk collection. I think that more than half of C++ consists of obsolete features, which should never be used in new programs, and this is a serious difficulty for newbies. There are various C++ style guides, but in my opinion even most of those are not very inspired.

Despite of its defects, C++ still has the advantage of extreme customizability. It is easy to write programs that appear to be written in a language that has no resemblance with C++ (inclusively by having different keywords and what appears to be a different syntax), but nonetheless they are valid C++ programs.

Such a customized C++ variant can mimic any safer language.

reply
No. C++ doesn't have a garbage collector, and it doesn't have a borrowck, as a result any reference types are subject to ordinary human error because it can't garbage collect the target objects and it doesn't know when to destroy them otherwise.

The work to try to address this for C++ 29, half-finished and untried as it is - is extremely restrictive, you'd likely hate it, and that's just to solve this, the relatively easy problem.

Thing is, Rust wasn't content just to solve that easy problem. (Safe) Rust also doesn't have data races. The C++ standard doesn't say very much about data races, can't help you ensure they don't happen - it just explains that if they do that's Undefined Behaviour, game over.

reply
> with appropriate rules, restrictions and discipline

This completely misses the point.

reply
The rules can be enforced by a static code checker.

That is really not very different of rules enforced by the Rust compiler.

For someone who does a fresh start, using a Rust compiler may ensure safer programs out of the box, but that does not mean that the same results cannot be achieved by alternative means when using other languages, when the use of those languages makes sense for other reasons, and it is worthwhile to invest resources in making appropriate libraries and tooling.

In general, I recommend against the use of C++ in new projects, but I see much too often claims about things that are supposedly difficult or impossible to do in C++, which are just false.

reply
> I suspect that Rust will start taking over as a dominant LLM output language.

I doubt it. I think most people will become more entrenched in their favored ecosystem.

> I also suspect that in short order we'll have entirely new languages that are engineered to be ideal languages for LLMs to generate.

This is already happening. A couple months ago I came across this language that is engineered for AI and human consumption https://www.moonbitlang.com/

reply
I tried that, but the Rust build process was too painful, and agents seemed to burn a lot of tokens guessing how to get the code to compile. I rewrote my project in Elixir and it’s been going much more smoothly
reply
Elixir is great, and I have recently started using it myself, but its not a substitute for Rust. Try writing device driver in Elixir, or anything CPU intensive.
reply
GP said nothing of what they were building. Seems pretty probable it was a web service/application rather than a device driver.
reply
You mean your LLMs had an easier time with Elixir. Do you actually know either of the two yourself?
reply
Rust will never be the dominant output by a country mile. It will be python and typescript.
reply
> It will be python and typescript.

A waste.

This code will be high-defect and slow.

All of your LLM outputs should be Rust.

reply
> rust? Ya it is the community
reply
You mean ADA? I'd agree, at least gcc can compile it so it's not limited to the very few architectures that rust supports.
reply
> not limited to the very few architectures that rust supports

Of all the complaints about rust, this strikes me as one of weirdest. How much code do you actually write for architectures outside the Tier 3 support list?

reply
0 because it's not supported.

However I did write ADA and C for those.

reply
> However I did write ADA and C for those.

Ok, but recently? I too wrote code for obscure platforms once upon a time, but not in, say, the last 15 years.

Now that PCs, game consoles, and mobile devices are basically all either amd64 or ARM, there's just not such a long tail of weird platforms to develop for.

(the embedded world I will grant you, still lots of bespoke toolchains running around in that space)

reply
Why are Rust people so insufferable?

We get it. You like Rust. It's not a panacea.

reply
The entire concept of publicity as a competition is baffling to me. Who gives a shit?
reply
More Rust users = more Rust libraries = more Rust jobs = more places to do what you enjoy and get paid for it.
reply
That seems like a train of thought so thin as to be anorexic. I think that many erm coding enthusiasts simply have issues with emotional regulation.
reply
By that definition, Javascript is by far the bestest language in the world ;)
reply
It is! It just happens to be one of the worst languages in the world too.
reply
Not trying to derail the discussion, but the reason for me to leave the Rust ecosystem in favor of Go was also the implied culture.

Experienced Go devs that stay inside the ecosystem try to write their libraries as "pure go" libraries with zero dependencies other than the upstream core libraries (or golang.org/x if needbe), which results in a very low maintenance ecosystem. This combined with the strong toolchain makes it joyful to work with.

I still don't agree with a lot of design choices of the language, but I realize that I can be more efficient if I am setting aside my opinion.

And that's exactly the thing that somehow never happened in the Rust ecosystem. I always joke that the Rust ecosystem has more OpenGL bindings than developers, because there's just so many low quality bindings or wrappers out there that the ecosystem in result got too noisy to maintain.

I don't want to write more (verbose) code. I want to write less.

I kind of already know that my comment goes to shit in terms of downvotes, but that's what I expect while writing this. How dare I criticized Rust as a language? How dare I, a fulltime noob, do this? Rust is better, always!

...the Rust ecosystem is just so effing toxic. I am glad that I left it. I just got tired of being angry at random online things all the time. Go is my happy place where my annoyances are reduced to Cgo, maps, and the unsafe package <3

reply
> And that's exactly the thing that somehow never happened in the Rust ecosystem. I always joke that the Rust ecosystem has more OpenGL bindings than developers, because there's just so many low quality bindings or wrappers out there that the ecosystem in result got too noisy to maintain.

Rust seems to attract a lot of horizontal programming. I have done mainly that so far and I LOVE Rust for it.

AIUI, horizontal programming is fully building out each abstraction before you start building on top of it, as opposed to vertical programming, which generally seeks to accomplish the task as directly and straightforwardly as possible, and only abstract if needed.

This leads to things like the proliferation of bindings, abstraction layers, frameworks etc. with little downstream users to show for it. And often little influence from experience using them. Sometimes very technically impressive but otherwise not always fleshed out to the point of being practically usable.

I am sure there's tons of toxicity all over the place too but I chalk it up to differing mindsets / patterns of development.

reply
As much as I'm put away by the dependency horror I've seen in many Rust projects, this is an interesting observation.
reply
There are many dependency horrors of Rust, especially in larger projects, but I will say I've never been particularly put off by community-maintained crates that are free to make breaking changes for correctness or flexibility. Things like `temporal-rs` feel like a huge win, even given the long tail of crates with outdated dependencies (or overly-rigid APIs, etc.), and I tend to agree with Rust's smaller standard library.

For example, std's linked list seems rarely useful for anything but scripting, and could've easily been a crate. I don't think it's egregious or anything, it's just a bit meh. I don't really use Rust for scripting though (I usually use zsh or TypeScript), so maybe it's super valuable in specific cases.

reply
There is also many compile to Go languages today, that add many befefits from the MLs with still 100% Go interrop. I would say lisette is probably the one that has most momentum right now.
reply
Seriously. Yesterday there was a thread about a use-after-free bug in OpenBSD and despite BSD predating Rust by decades there were still people chiding the project for not using Rust (as though Rust would even protect you from all memory errors in a kernel project where you'd inevitably need to write unsafe Rust anyways!). Rust might be a fine language but it has the most toxic evangelist culture, bar none.
reply
> there were still people chiding the project for not using Rust

Please provide a link to this comment.

Someone asked an honest question and got reasonable responses that were informative. At no point did anyone chide the project for not using Rust.

> Rust might be a fine language but it has the most toxic evangelist culture, bar none.

Nah, people complaining about the supposed toxic community are noisier than the supposed toxic community.

reply
[flagged]
reply
You need to write some unsafe code in a kernel, but most of the code does not have to be, which allows you to eliminate memory unsafety from almost all code and give more scrutiny to the parts the compiler cannot guarantee for you. I don’t know though if the affected code in openbsd would have needed to be unsafe. Moving towards rust is a possible way for kernels as Linux has shown, but I guess for OpenBSD the pros and cons are different, as it’s striving for a more minimal system and has been affected far less by memory unsafety issues.
reply
You have an awful low bar for what is considered chiding, damn

Then again, your very username implies an indulgence in viewing technology through the lens of fandoms which is... weird

reply
I read the comment that they were referring to and it wasn't even constructive conversation in the thread.

It was basically a complete derail to backdoor in a conversation about why they think everything should be in Rust.

OpenBSD still uses CVS, C and Make because that's what works for them. They will continue to keep using C, Make and CVS but that enables them to be productive with the contributors that they have. Moving things to other languages will not increase their productivity. That's the biggest thing that the largely-fanatical Rust evangelists completely fail to understand.

reply
“A complete derail” is doing some heavy lifting there.

This is a wide ranging discussion board, not the OpenBSD forums. That shit is fair game even if you don’t like it.

(It’s annoying, sure - because dev tribalism is the most played out thing in this industry - but overall the topic can be an interesting discussion point)

reply
there's plenty of Rust posts to talk about Rust.

I come to an OpenBSD post to talk about OpenBSD. Rust isn't even really tangentially related.

reply
It's easy to hate on LLM slop code but it seems that using it for analysis only could give a C codebase a much stronger security posture. Running fable and friends could give rust-like security with C portability and familiarity.
reply
[flagged]
reply
You're ascribing an entire community's reputation to a single person. I can find objectionable people in every community....
reply
[flagged]
reply