3 ms·
I think I kinda disagree? This is hard (and likely the reason it's not happened) but I think we need, in some ways more code. We need the right code. (And there
by deathanatos 3y ago
I think I kinda disagree? This is hard (and likely the reason it's not happened) but I think we need, in some ways more code. We need the right code. (And there-in is the rub.)
For example, today I was trying to … put a link into Slack. And it is very clear, as a user of Slack, that Slack utterly lacks a parser and is almost without a doubt simply tossing some regexes at the problem. A parser might be "more code" … but it would simply work, whereas I often find valid markdown getting mangled by … whatever is attempting to "parse" it, but probably isn't.
We have a script that renews certs with certbot. If I get enough free time, I'm going to be replacing it with a Rust program, as certbot is just too difficult to get automated. It wants to prompt users with questions (do you want to upgrade to EC? No, no, I just want to renew) and regularly fails (it attempts to wait for DNS propagation, but it does so too simplistically; this is made doubly hard on its part that Cloudflare will gladly ack a write in their API … but their DNS is apparently not read-your-writes.)
Even the Rust replacement, which is in a prototype, has to re-implement part of ACME, as the ACME library doesn't expose the part I need. I'd rather not … but missing code.
I want to parse .deb files to walk their dependency tree, but .deb files use an artisanal format. They're old, so I sort of get it, but it's nonetheless annoying.
Read-your-writes is the single biggest reason I have to do inane amounts of retry logic around APIs that ack writes and then gaslight me on subsequent requests dependent on that write.
I've hacked around Cython failing to accurately transpile Python. I've hacked around Azure APIs just … not doing what they're paid to do. I've written scripts to make Docker API calls that … could have been exposed in a CLI tool, but just weren't, because tough cookies.
The WASM people were fighting about whether strings should be forced to be valid, or not. Think about it: every future WASM program might have to deal with SomeNotQuiteAStringType, for the rest of time, all just to make interop with JavaScript "easier". Hopefully, in Rust, we'll get a WasmString with a `.to_string() -> Result<String, Ffs>`, but that's still an fallible path that didn't need to be.
People still think CSV is a decent format.
left-pad, widely derided as "one of those dependencies that is so simple you don't need it", failed to correctly implement the function! Then when the ragefest about it broke out the broken function was standardized.
Go for the longest time didn't have a round function, and the bug report where it was requested got a "it's so simple just implement it yourself" and it took commenters like 6 or 7 attempts to get it right. round()! (Thankfully, Go saw the light and eventually added it to the stdlib.)
In many ways, quality engineers who know what they're doing and write good, high quality systems would go a long ways. But SWE companies are, AFAICT, penny wise and pound foolish in that department, and have traded paying devs for quality with devs dealing with low-quality systems for all of eternity.