Live data from Hacker News

What it means that Ubuntu is using Rust

smallcultfollowing.com

191–200 of 312 posts

Re: What it means that Ubuntu is using Rust

#191

Earlier quoted context omitted.

That would be great, but Rust relies on compile-time monomorphization for efficiency (very much like C++, if you consider templates polymorphic functions/classes). This means that any Rust ABI would have to cater for link-time specialization. I think this should be doable, but it would require a solution that's better than just to move the code generation into the linker. Instead, one would need to carefully consider…

I wonder if we look at it from a too narrow perspective. We use the C ABI because it's the only game in town. We should be aiming for a safe cross language ABI. I'd love to make Rust, C, PHP, Swift, Java and Python easily talk to each other inside 1 process. It should extend the C ABI with things like strings, arrays, objects with a way to destruct them, and provide some safety guarantees. As an example, the windows…

> It should extend the C ABI with things like strings, arrays, objects with a way to destruct them, and provide some safety guarantees.

> As an example, the windows world has COM, which is at the core pretty reasonable for its design constraints, even if gnarly sometimes.

Yeah, and we had CORBA. Gnome was originally not a DE - the acronym stood for Gnu Network Object Model Environment or similar.

I programmed in CORBA in the 90s. Other than being slower than a snail on weed, I liked it just fine. Maybe it's time for a resurgence of something similar, but without requiring that calls work across networks.

Re: What it means that Ubuntu is using Rust

#192
post #20

I've been a fan of all rust-based utilities that I've used. I am worried that 20+ (??) years of bug fixes and edge-case improvements can't be accounted for by simply using a newer/better code-base. A lot of bug fixes/exploits are _CAUSED_ by the C+ core, but still... Tried & true vs new hotness?

> years of bug fixes and edge-case improvements can't be accounted for by simply using a newer/better code-base. Partially is in fact true: Just because the Rust use a better type system (after ML) + better resource model (aka borrow checker), and if you are decently good, you eliminate, forever!, tons of problems. It can't solve things that arise by complex interactions or just lack of port subtle details like in pa…

> but is true that changing the language in fact solve tons of things.

*so long as you dont use unsafe rust

**unsafe rust required for systems programming

***rust is a systems language

****does changing a default actually solve anything?

Re: What it means that Ubuntu is using Rust

#193

Here's the chasm I want to see Rust cross: Dynamic linking with a safe ABI, where if you change and recompile one library then the outcome has to obey some definition of safety, and ABI stability is about as good as C or Objective-C or Swift. Until that happens, it'll be hard to adopt Rust in a lot of C/C++ strongholds where C's ABI and dynamic linking are the thing that enables the software to get huge.

> Here's the chasm I want to see Rust cross: That's not important. What I want to see is the Rewrite-it-in-Rust movement move towards GPL. GPL is pro-user. MIT is pro-business. In their zeal to convert, they are happily replacing pro-user software with pro-business software. Their primary goal is to convert, not to safeguard. If they shifted their goal from spreading Rust to protecting users, I'd be a lot happier abo…

> In their zeal to convert, they are happily replacing pro-user software with pro-business software.

This is one of the two main reasons I'm not using Rust. Second reason is being addressed by gccrs team, so I have no big gripes there, since they are progressing well.

Re: What it means that Ubuntu is using Rust

#194
post #37

Here's the chasm I want to see Rust cross: Dynamic linking with a safe ABI, where if you change and recompile one library then the outcome has to obey some definition of safety, and ABI stability is about as good as C or Objective-C or Swift. Until that happens, it'll be hard to adopt Rust in a lot of C/C++ strongholds where C's ABI and dynamic linking are the thing that enables the software to get huge.

C++ ABI stability is the main reason improvements to the language get rejected. You cannot change anything that would affect the class layout of something in the STL. For templated functions where the implementation is in the header, ODR means you can't add optimizations later on. Maybe this was OK in the 90s when companies deleted the source code and laid off the programmers once the software was done, but it's not…

I think the way to fix this is:

1. Have the stable ABI be opt-in similarly to how the C ABI is opt-in in Rust (`#[repr(stable)]` or similar)

2. Have the stable ABI be versioned. So it would actually be `#[repr(stable_2026)]` or whatever

Re: What it means that Ubuntu is using Rust

#195
post #56

Earlier quoted context omitted.

AI has made it exceptionally easy to program with. I've switched to using Rust from Python simply because of AI development

Indeed. With AI lifting legacy code bases into Rust got a whole lot easier, and purging the blight of C from the world, excepting the most deeply embedded of applications, got a whole lot closer.

> With AI lifting legacy code bases into Rust got a whole lot easier, and purging the blight of C from the world, excepting the most deeply embedded of applications, got a whole lot closer.

You probably don't realise this, but AI written Rust (or any language) will have much more undefined behaviour than human-written C.

AI coding brings non-determinism to every language; with AI, now every language can have Undefined Behaviour.

Re: What it means that Ubuntu is using Rust

#196

Also, Ubuntu using a non-GPL licensed userland means they can pull all kinds of tricks to allow more TiVoization in the Linux ecosystem. Combine this with what Amutable (systemd guys) are building, and you can have monolithic, closed source, non-user-modifiable Linux distributions or flavors. Ubuntu and companies which embed Linux into their products will love this from a business perspective. Consider: An end to end…

> Also, Ubuntu using a non-GPL licensed userland means they can pull all kinds of tricks to allow more TiVoization in the Linux ecosystem.

Can we stop this conspiracy nonsense? They have explicitly stated that licensing was not a motivation, and even if you think they're lying it wouldn't make any sense anyway! No Tivoization is foiled by Coreutils being GPL. That's ridiculous for so many reasons, not least you can just use the BSD versions, as Apple does (and they still release the source code!).

Re: What it means that Ubuntu is using Rust

#197
post #142

Earlier quoted context omitted.

Oh, well yeah, statically linked binaries have that downside. I guess I don't think that's a big deal, but I could maybe imagine on some devices that are heavily constrained that it could be? IDK. Compression is insanely effective.

If Rust and static linking were to become much more popular, Linux distros could adopt some rsync/zsync like binary diff protocol for updates instead of pulling entire packages from scratch.

Yeah I'm not really convinced that this matters at all tbh

Re: What it means that Ubuntu is using Rust

#198

Earlier quoted context omitted.

How much overhead is that? Also, why would that have much overhead? Things deduplicate in memory.

They dedup at the page level. This isn’t that kind of duplication.

I thought they were suggesting the stdlib be dynamically linked or something, at which point it would be. But for static linking, no.

Re: What it means that Ubuntu is using Rust

#199

Also, Ubuntu using a non-GPL licensed userland means they can pull all kinds of tricks to allow more TiVoization in the Linux ecosystem. Combine this with what Amutable (systemd guys) are building, and you can have monolithic, closed source, non-user-modifiable Linux distributions or flavors. Ubuntu and companies which embed Linux into their products will love this from a business perspective. Consider: An end to end…

Sure, but util-linux and the BSDs won't suddenly cease to exist. If you don't like what Ubuntu is doing, just don't use it.

Upstream debian has been much more stable for as long as Ubuntu has existed...

Re: What it means that Ubuntu is using Rust

#200

Earlier quoted context omitted.

To be fair, no one should be using Ubuntu. They are the free CD people from the 2000s. They are the Apple of Linux, marketing wins, but low quality. They used outdated linux (Debian-family) because its lower cost to maintain. All around, never use debian-family outside servers. Fedora is the future. Maybe OpenSUSE too. (Note these are not Arch or related to Arch)

> They used outdated linux (Debian-family) because its lower cost to maintain. Ubuntu forks Sid, and evolves from there. They don't downstream Debian Stable. > All around, never use debian-family outside servers. Fedora is the future. Maybe OpenSUSE too. (Note these are not Arch or related to Arch) Daily driving Debian stable on servers and Testing on desktops for more than two decades. Testing is a rolling distribut…

other than systems, that is
Post reply on HN