esa
I generally agree, but
- People who haven’t used a package before likely aren’t interested in release candidates.
- Axum is one of the few pretty well-known Rust libraries. I’m willing to give that a pass on describing what it is for an RC, much like I’d do the same for FastAPI in a Python community. (But a little default blurb about what they are would be nice anyway to people who are new to the language and/or ecosystem.)
Still remains to be seen if a potential rust ABI can avoid becoming a chain to the wall the way the C++ ABI seems to have become. When a lot of C++ers apparently agree with “I’m tired of paying for an ABI stability I’m not using” it’s not so clear it would really be a boon to Rust.
That said no_std
appears to be what people go to for the lean Rust.
And a lot of us are happy not having to juggle shared dependencies, but instead having somewhat fat but self-contained binaries. It’s part of the draw of Go too; fat binaries come up as a way to avoid managing e.g. Python dependencies across OS-es. With Rust and Go you can build just one binary per architecture/libc and be done with it.
The name is constructed from two parts:
ls
: listusb
: usb
It lists usb devices that your machine (/kernel) knows has been connected; they may not necessarily be usable.
E.g. I have some sound output device connected via USB to one machine. On most of my machines I’ve switched from pulseaudio to pipewire¹, and I figured I’d bring that machine closer to the others so there’s less variance. Unfortunately the sound output device didn’t want to work with pipewire. The problem manifested as no sound and pipewire not listing the device. lsusb
helped me know that the machine at the very least recognized the device, but wasn’t currently able to use it. (It did actually also show up as an error in dmesg -H
, but reinstating pulseaudio let the device work again as normally. So now I just have to live with a situation where some machines use pipewire because bluetooth and others use pulseaudio because … usb?¹)
¹ There’s a memory of ALSA vs OSS I didn’t want to be reminded of
There are also a bunch of proposed 2025H1 goals. Depending on how things pan out, 2025H1 might have us see not only Rust 2024 edition, but also the new trait solver ready for general use, and new borrowchecker on nightly.
I mean, the fact that more than half-century-old COBOL continues to be maintained does speak to the fact that it is maintainable. That might also be part of what makes COBOL painful to the average developer: You’re not only dealing with a language that first appeared in 1959, designed for machines that were very different than modern computers; you’re also dealing with over a half century of legacy code, including all that means for Hyrum’s law.
Unfortunately maintainable and pleasant to work with are rather distinct concepts.
The serious answer here likely has several components:
- Some people and businesses have invested a lot in languages that governments are now trying to deprecate. When someone is told that their assets may be stranding, and please move on to
, they’re likely to get … grumpy. Both they and the government may be correct here, even if they’re at odds—they have different scopes and concerns.
- Differing values. See e.g. Cantrill’s “Platform as a reflection of values”.
- Rust highly values correctness, which will feel like a straitjacket to a lot of people.
- It also moves as much error detection as it can to the compilation stage, which won’t sit well with people who want to get something out the door ASAP and then find the bugs as they happen.
- So it also encourages tackling complexity early rather than kicking the can down the road, which again isn’t to everyone’s preference.
Eevee’s heteroglot entry for COBOL is interesting, coming from … practically anything else.
There’s also someone doing AOC in ABAP (basically SAP COBOL) who posts over in the AOC subreddit. I’ve looked at them and … mhm, I know some of these words!
And even with a “please keep your feet on the floor” sign right next to them.
I think my usecase of curl
is entirely covered by hyper
(I just use it for http/s with a small handful of flags); but I also have absolutely no idea what goes on inside curl
or how my distro chooses to build it.
Rebuilding curl
to use Rust here and there (it still supports rustls and quiche) seems like an interesting undertaking, but yeah, I suspect most curl
users don’t build it themselves and have no idea what experimental features it could be built with. Guessing the curl survey has data for that.
Stenberg seems like a cool dude and this seems like an amicable split.